王偉++韓紀慶++鄭鐵然++鄭貴濱++周星宇++金聲
摘要: 當今課堂教學過程中存在著學生曠課、老師需要經常檢查課堂出勤情況等問題。本系統著眼于課堂教學的實際需要,旨在方便任課老師了解學生上課出席情況,以及防止冒名頂替等不公正現象的發生,開發了基于i-vector聲紋識別技術的上課點名系統,不僅在說話人識別的研究領域有探索意義,而且在方便老師課堂管理方面有著重要的實踐意義。
關鍵詞:上課點名系統; 聲紋識別; 跨平臺交互
中圖分類號: TP391
文獻標志碼: A
文章編號: 2095-2163(2016)06-0108-03
0引言
聲紋識別(voice print recognition)也稱為說話人識別[1](speaker recognition),是通過對說話人語音信號特征的分析處理,識別說話人身份的過程。與語音識別不同,說話人識別側重于說話人的身份而非說話的內容。按照說話內容的類型,可分為文本有關和文本無關。前者要求說話人在訓練與識別階段說相同的內容,而后者無此要求。所以,文本無關說話人識別應用將更為廣泛,但識別難度也必然更大。
對說話人識別的研究始于 20 世紀 30 年代,早期主要進行有關人耳聽辨方面的研究。而對說話人自動識別的研究則需上溯自60年代。在語音特征提取方面,1962 年Kesta提出使用語譜圖進行說話人識別的方法[2],1969年Luck等人將倒譜技術首度應用于說話人識別[3],1976 年 Atal等人進一步提出線性預測倒譜系數 [4]。而在說話人識別模型方面,60及70年代初期,主要采用的是模板匹配方法。70 年代后期,動態時間規整和矢量量化技術相應地已然成為研究和發展重點[5-7]。
80 年代后,Davis 等人提出了 Mel 頻率倒譜系數(Mel Frequency Cepstrum Coefficient,簡稱MFCC)[8]。由于MFCC考慮了人耳的聽覺感知機理,表現出良好的識別效果和噪聲魯棒性,從而成為說話人識別中使用的基礎評判參數。與此同時,人工神經網絡和隱馬爾可夫模型[9]也在語音識別領域獲得了成功與廣泛的應用,由此晉升為說話人識別中的核心技術。90年代后,高斯混合模型憑借其簡單、靈活、有效以及出眾的魯棒性,迅速演進成為目前與文本無關的說話人識別中的主流技術[10]。進入21世紀以后,Reynolds等人提出 GMM-UBM(Gaussian Mixture Model with Universal Background Model) 模型用于文本無關說話人識別,使得訓練GMM的樣本數量要求減少,文本無關的說話人識別開始從實驗室走向了廣闊現實應用[11]。
2006 年,Campbell等人在GMM-UBM基礎上提出高斯超向量概念,并與支持向量機融合為高斯混合超向量-支持向量機模型用于文本無關說話人識別,由此突破性地發展成為目前國內外文本無關說話人識別的熱點關鍵實用技術[12]。近年來,學者們又在高斯超向量基礎上,提出了聯合因子分析 [13]、鑒別性向量(i-vector)[14]等模型,使得文本無關說話人識別系統的性能取得了顯著的改進與提升。本系統是基于i-vector構建的聲紋識別系統。i-vector說話人建模技術[15]的基本思想可大致描述為:信道和會話的影響均包含在總體變化子空間中,通過對包含說話人信息和信道信息的GMM均值超矢量在低秩的總體變化子空間上進行投影,得到只包含說話人信息的低維矢量。基于聲紋識別的上課點名系統為教師課堂出勤管理提供了一整套行之有效的解決方案,從而大大提高了上課點名系統的性能。
[BT4]1系統的整體架構
上課點名系統總體架構分為PC端和移動端,兩者通過無線網絡相連。系統呈現C/S結構,在整體架構上可分為4層:最底層由無線網絡、PC和手機來提供支撐;第二層包含網絡TCP/IP協議和Socket;第三層由聲紋識別算法、數據庫和Android系統的API構成;最頂層即由系統各功能模塊組成。綜上可知,以上4層構成了完整的上課點名系統。
上課點名系統分為5大模塊,具體可表述為:PC端的訓練模塊、點名模塊、統計模塊、移動端的點名模塊和本地錄音模塊。PC端承載了大運算量的識別任務,而移動端只負責語聲的錄音、簡單轉換和發送工作。PC端點名模塊設計為主控整體的點名過程,移動端的點名模塊則實施完成每個學生的點名工作。
[BT5]1.1訓練模塊
訓練模塊是上課點名系統的核心模塊之一。訓練過程一般由管理員控制并完成,模型訓練后即可分發給教師使用。訓練模塊有如下的功能:
1)訓練參數設置。訓練參數設置包括MFCC參數設置、UBM和TV參數設置和默認路徑設置。其中,MFCC參數設置項包括幀長、幀移、Mel濾波器個數、MFCC維數、是否加入Δ、是否加入ΔΔ、預加重系數和提升系數。UBM和TV參數設置項包括UBM混合數和i-vector維數。
2)模型訓練。模型訓練包括MFCC特征提取、UBM模型訓練、TV模型訓練、i-vector提取和模型存儲等過程。
3)模型載入。模型載入包括UBM模型載入和TV模型載入。
[BT5]1.2點名模塊
點名模塊是上課點名系統的關鍵模塊,主要由教師負責上課的點名工作。教師利用此模塊可進行以下操作:
1)教師在自己教授課程中選擇當前課程。
2)查看當前課程的所有學生。
3)靈活設定點名策略。例如:點名策略可采用學號尾號策略、學號倍數策略和限定人數策略等。
4)可以選擇自由點名(無順序,學生可在任何情況下答到)或順序點名(學生只能在被點名時答到)。
5)可以控制點名進度,例如暫停或繼續本次點名。
6)可以設置判定閾值。
7)在系統自動化判斷的基礎上,可手動更改結果。
8)保存點名結果。
如果從移動端與PC端交互來看,將可展開如下步驟:
1)PC端開啟Server,等待移動端連接。
2)移動端成功連接PC,顯示已連接狀態。
3)PC端發出點名請求,移動端準備錄音。
4)移動端錄音完畢,并發送到PC端。
5)PC端接收錄音,顯示已接受狀態。
6)PC端調用模型測試,并顯示判斷結果。
7)(可選)教師修正判斷結果。
如果從學生點名來看,則可表述為如下4種狀態:
1)未登錄。此時表示該學生并沒有登陸主機。可能沒有來教室或已來教室但手機還未登錄。
2)已登陸。此時該學生手機已登錄上主機,準備答到。
3)已答到。此時該學生已通過登陸手機進行答到。
4)已判定。系統已經通過內部算法給出識別結果。
[BT5]1.3統計模塊
統計模塊是上課點名系統的必要模塊。具體來說,就是在教師登陸后可選擇進入統計界面,在設計上每個教師只能看到自己所教課程學生的統計信息,教師利用該模塊可方便了解學生的出勤情況,或者依此來計算平時成績中對應的出勤部分結果。現實運作時,模塊將通過條件查找和篩選,快捷優勢獲得想要的信息,這就極大減輕了教師們的實際日常負擔。統計模塊可完成如下的功能:
1)能查看自己所教課程的點名記錄。
2)能對點名記錄進行篩選工作(比如只看被點到過的)。
3)能查看某一學生的個人詳細記錄。
4)能手動更改某一學生的某一記錄。
[BT5]1.4移動端點名模塊
移動端點名模塊也是支撐該系統的關鍵模塊之一。PC端的點名模塊需要移動端點名模塊的配合才能完成整個實時點名工作。移動端點名模塊是學生用于答到的功能途徑,因為需要與主機處于同一內網中,就會使得在教室范圍外無法進行答到,這樣也避免了“遠程答到”現象的發生。同時,待答到的學生也必須身處該教室中才能知道自己是否需要答到,或者知道自己正在被點名。綜上的這種雙重設計使得作弊現象勢將完全根絕。
移動端點名模塊有如下的功能:
1)與PC端主機連接的功能,即登陸主機端功能。
2)傳送語音數據的功能。
3)對語音進行初步處理的功能,比如轉換成wav文件。
移動端點名模塊功能實現的操作步驟具體如下:
1)登陸主機。包括建立連接和發送學生信息等。用戶進入登錄界面后,輸入主機IP和學號即可登錄,登錄的同時系統即會自動將信息發送到PC端。登錄成功后轉至點名界面。
2)錄音傳送。包括語音錄制、語音轉換和語音傳送等。在點名界面下,按住語音鍵可進行錄音,語音錄制的同時系統則自動將其轉換成wav格式(該系統目前只支持wav格式的錄音),松開鍵后語音就會通過網絡傳送到PC端。
[BT5]1.5移動端本地錄音模塊
移動端本地錄音模塊是上課點名系統的輔助模塊,主要是為了方便學生自己采集語音,通過組織層次(如按班收集),最終提交給管理員進行總體訓練。另外,由于學生訓練和測試均采用同一信道,使得因信道差異而造成的對識別率的干擾也降至最低,從而提高了點名準確率。移動端本地錄音模塊中最為重要的功能就是本地錄音,具體則包括語音錄制、語音轉換和保存錄音等。
[BT4]2聲紋識別算法的設計與實現
說話人識別技術[16]是上課點名系統研究開發中選用的專業核心技術,同時這也是影響和決定該系統各項性能以及可用性的重點實現部分。從PC端成功接收移動端發送的語音信息開始,直到PC端顯示結果前,由說話人識別/確認模塊進行智能處理和模式識別,從而判斷出話者的身份(是否為同一人)。一個完整的說話人識別過程通常可分為2個階段:訓練階段與識別階段。從功能上,則可以分為3個功能模塊:特征提取、模型訓練和模型打分。
[JP2]在宏觀思維上,文本無關說話人識別可分為說話人辨識和說話人確認。其中,說話人辨識是判定說話人是一群說話人中哪一個,而說話人確認則是確定說話人是不是某一個說話人。具體推斷可知,上課點名系統可明確歸至說話人確認。在訓練階段,首先在PC端由特征提取模塊實現對輸入語音的參數提取,然后再經由模型訓練模塊得到相應的說話人模型,模型是對說話人特征的進一步抽象。而在識別階段,對移動端傳來的測試語音進行特征提取后,將利用模型給測試語音來完成打分,并經過不同的判決準則,由此得到最終的判決結果。[JP]
[BT4]3系統關鍵任務實現
[BT5]3.1跨平臺網絡交互實現
由于該系統橫跨兩大平臺Windows桌面平臺和Android移動平臺,即使得兩者間通過網絡的交互和數據的準確傳送就顯得尤為重要。首先,需要重點考慮是選用HTTP協議還是較為底層的TCP/IP協議。就現實方便而言,HTTP協議相應地要更為占優,對于HTTP消息的解析工具和API均已臻至完善。但是由于HTTP協議直接針對應用層部分,每一個數據包中都含帶了許多冗余的參數信息,在效率上將略差于采用底層的TCP協議。而且該系統對實時性要求很高,尤其是聲音文件的傳送更需要做到盡量地快捷、快速,雖然在編程工作量方面TCP比HTTP要顯現劣勢,但是綜合考慮性能,本研究決定選用較為底層的TCP協議進行編程。
其次,是PC端與移動端兩大平臺間消息格式的設定,其設定的好壞將直接關系到數據能否實現穩定快速的傳送。研究中,系統采用了自定義TLV(Tag-Length-Value)編碼,該方式以標簽頭+內容長度+內容的方式進行編碼,如此既保證了數據發送接收的一致性,又提高了整體運行效率。在此,給出這一信息編碼格式如圖1所示。
當TAG=1時,表示內容為JSON格式編碼。當TAG=2時,表示對應內容為二進制編碼(該系統一般為語音文件)。由于平臺和編程語言的不同(PC端為C++、Android端為JAVA),在實現方式上又將各有差異。
[BT5]3.2計算繁重任務的多線程實現
在訓練和測試中,由于數據量大,運行時間長,若單線程運行會出現“假死”的現象,所以多線程操作也就成了必然。QT中的多線程采用繼承QThread類,通過實現run函數來構建完成。多線程運行的同時,還需要并行與主線程消息的通訊,如主線程需要獲知模型訓練的進度等。這個時候就可以采用QT獨有的Signal-Slot機制,利用異步性質,使得多線程的消息傳遞簡單可靠。
[BT4]4結束語
基于i-vector聲紋識別技術的上課點名系統為教師課堂出勤管理提供了一整套行之有效的解決方案,減輕了教師上課點名的負擔,減少了冒名頂替等不誠信、不公正現象的發生。系統在PC端使用QT5和C++實現,在移動端使用JAVA和Android SDK實現,完成了從PC端到移動端完整清晰、連貫一體的系統;該系統具備簡潔實用的特性,訓練時既可采用默認設置一鍵訓練,也可自己調整參數手動訓練;點名時既可采取無管控、無順序的自由點名,也可采用模擬傳統方式的順序點名。與此同時,聲紋識別的最新技術研究必然對該領域的創新研究有啟發性作用。
[HS1*2][HT5H]參考文獻:[HT]
[WTBZ][ST6BZ][HT6SS][1] [ZK(#〗
[HJ*2]
CAMPBELL J P. Speaker recognition: a tutorial[J]. Proceedings of the IEEE, 1997, 85(9): 1437-1462.
[2] KERSTA L G. VoiceprintIdentification infallibility[J]. The Journal of the Acoustical Society of America, 1962, 34(12): 1978.
[3] LUCK J E. Automatic speaker verification using cepstral measurements[J]. The Journal of the Acoustical Society of America, 1969, 46(4B): 1026-1032.
[4] ATAL B S. Automatic recognition of speakers from their voices[J]. Proceedings of the IEEE, 1976, 64(4): 460-475.
[5] SOONG F K, ROSENBERG A E, JUANG B H, et al. A vector quantization approach to speaker recognition[J]. AT&T technical journal, 1987, 66(2): 14-26.
[6] RABINER L R, PAN K C, SOONG F K. On the performance of isolated word speech recognizers using vector quantization and temporal energy contours[J]. AT & T Bell Laboratories Technical Journal, 1984, 63(7):1245-1260.
[7] SAKOE H, CHIBA S. Dynamic programming algorithm optimization for spoken word recognition[J]. IEEE Transactions on Acoustics, Speech and Signal Processing, 1978, 26(1): 43-49.
[8] DAVIS S, MERMELSTEIN P. Comparison of parametric representations for monosyllabic word recognition in continuously spoken sentences[J]. IEEE Transactions on Acoustics, Speech and Signal Processing, 1980, 28(4): 357-366.
[9] RABINER L. A tutorial on hidden Markov models and selected applications in speech recognition[J]. Proceedings of the IEEE, 1989, 77(2): 257-286.
[10]REYNOLDS D A, ROSE R C. Robust textindependent speaker identification using Gaussian mixture speaker models[J]. IEEE Transactions on Speech and Audio Processing, 1995, 3(1): 72-83.
[11]REYNOLDS D A, QUATIERI T F, DUNN R B. Speaker verification using adapted Gaussian mixture models [J]. Digital signal processing, 2000, 10(1): 19-41.
[12][JP3]CAMPBELL W M, STURIM D E, REYNOLDS D A, et al. SVM based speaker verification using a GMM supervector kernel and NAP variability compensation[C]// IEEE International Conference on Acoustics, Speech and Signal Processing. Toulouse: IEEE, 2006: 97-100.[JP]
[13]KENNY P, BOULIANNE G, OUELLET P, et al. Speaker and session variability in GMM-based speaker verification[J]. IEEE Transactions on Audio, Speech, and Language Processing, 2007, 15(4): 1448-1460.
[14]DEHAK N, KENNY P, DEHAK R, et al. Frontend factor analysis for speaker verification[J]. IEEE Transactions on Audio, Speech, and Language Processing, 2011, 19(4): 788-798.
[15]栗志意, 何亮, 張衛強. 基于鑒別性 i-vector局部距離保持映射的說話人識別[J]. 清華大學學報(自然科學版), 2012, 52(5): 598-601.
[16]酆勇, 李宓, 李子明. 文本無關的說話人識別研究[J]. 數字通信, 2013, 40(4): 48-52.