国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于i—vector聲紋識別上課點名系統(tǒng)的設(shè)計與實現(xiàn)

2017-05-08 13:45王偉韓紀慶鄭鐵然鄭貴濱
智能計算機與應用 2016年6期

王偉++韓紀慶++鄭鐵然++鄭貴濱++周星宇++金聲

摘要: 當今課堂教學過程中存在著學生曠課、老師需要經(jīng)常檢查課堂出勤情況等問題。本系統(tǒng)著眼于課堂教學的實際需要,旨在方便任課老師了解學生上課出席情況,以及防止冒名頂替等不公正現(xiàn)象的發(fā)生,開發(fā)了基于i-vector聲紋識別技術(shù)的上課點名系統(tǒng),不僅在說話人識別的研究領(lǐng)域有探索意義,而且在方便老師課堂管理方面有著重要的實踐意義。

關(guān)鍵詞:上課點名系統(tǒng); 聲紋識別; 跨平臺交互

中圖分類號: TP391

文獻標志碼: A

文章編號: 2095-2163(2016)06-0108-03

0引言

聲紋識別(voice print recognition)也稱為說話人識別[1](speaker recognition),是通過對說話人語音信號特征的分析處理,識別說話人身份的過程。與語音識別不同,說話人識別側(cè)重于說話人的身份而非說話的內(nèi)容。按照說話內(nèi)容的類型,可分為文本有關(guān)和文本無關(guān)。前者要求說話人在訓練與識別階段說相同的內(nèi)容,而后者無此要求。所以,文本無關(guān)說話人識別應用將更為廣泛,但識別難度也必然更大。

對說話人識別的研究始于 20 世紀 30 年代,早期主要進行有關(guān)人耳聽辨方面的研究。而對說話人自動識別的研究則需上溯自60年代。在語音特征提取方面,1962 年Kesta提出使用語譜圖進行說話人識別的方法[2],1969年Luck等人將倒譜技術(shù)首度應用于說話人識別[3],1976 年 Atal等人進一步提出線性預測倒譜系數(shù) [4]。而在說話人識別模型方面,60及70年代初期,主要采用的是模板匹配方法。70 年代后期,動態(tài)時間規(guī)整和矢量量化技術(shù)相應地已然成為研究和發(fā)展重點[5-7]。

80 年代后,Davis 等人提出了 Mel 頻率倒譜系數(shù)(Mel Frequency Cepstrum Coefficient,簡稱MFCC)[8]。由于MFCC考慮了人耳的聽覺感知機理,表現(xiàn)出良好的識別效果和噪聲魯棒性,從而成為說話人識別中使用的基礎(chǔ)評判參數(shù)。與此同時,人工神經(jīng)網(wǎng)絡(luò)和隱馬爾可夫模型[9]也在語音識別領(lǐng)域獲得了成功與廣泛的應用,由此晉升為說話人識別中的核心技術(shù)。90年代后,高斯混合模型憑借其簡單、靈活、有效以及出眾的魯棒性,迅速演進成為目前與文本無關(guān)的說話人識別中的主流技術(shù)[10]。進入21世紀以后,Reynolds等人提出 GMM-UBM(Gaussian Mixture Model with Universal Background Model) 模型用于文本無關(guān)說話人識別,使得訓練GMM的樣本數(shù)量要求減少,文本無關(guān)的說話人識別開始從實驗室走向了廣闊現(xiàn)實應用[11]。

2006 年,Campbell等人在GMM-UBM基礎(chǔ)上提出高斯超向量概念,并與支持向量機融合為高斯混合超向量-支持向量機模型用于文本無關(guān)說話人識別,由此突破性地發(fā)展成為目前國內(nèi)外文本無關(guān)說話人識別的熱點關(guān)鍵實用技術(shù)[12]。近年來,學者們又在高斯超向量基礎(chǔ)上,提出了聯(lián)合因子分析 [13]、鑒別性向量(i-vector)[14]等模型,使得文本無關(guān)說話人識別系統(tǒng)的性能取得了顯著的改進與提升。本系統(tǒng)是基于i-vector構(gòu)建的聲紋識別系統(tǒng)。i-vector說話人建模技術(shù)[15]的基本思想可大致描述為:信道和會話的影響均包含在總體變化子空間中,通過對包含說話人信息和信道信息的GMM均值超矢量在低秩的總體變化子空間上進行投影,得到只包含說話人信息的低維矢量。基于聲紋識別的上課點名系統(tǒng)為教師課堂出勤管理提供了一整套行之有效的解決方案,從而大大提高了上課點名系統(tǒng)的性能。

[BT4]1系統(tǒng)的整體架構(gòu)

上課點名系統(tǒng)總體架構(gòu)分為PC端和移動端,兩者通過無線網(wǎng)絡(luò)相連。系統(tǒng)呈現(xiàn)C/S結(jié)構(gòu),在整體架構(gòu)上可分為4層:最底層由無線網(wǎng)絡(luò)、PC和手機來提供支撐;第二層包含網(wǎng)絡(luò)TCP/IP協(xié)議和Socket;第三層由聲紋識別算法、數(shù)據(jù)庫和Android系統(tǒng)的API構(gòu)成;最頂層即由系統(tǒng)各功能模塊組成。綜上可知,以上4層構(gòu)成了完整的上課點名系統(tǒng)。

上課點名系統(tǒng)分為5大模塊,具體可表述為:PC端的訓練模塊、點名模塊、統(tǒng)計模塊、移動端的點名模塊和本地錄音模塊。PC端承載了大運算量的識別任務(wù),而移動端只負責語聲的錄音、簡單轉(zhuǎn)換和發(fā)送工作。PC端點名模塊設(shè)計為主控整體的點名過程,移動端的點名模塊則實施完成每個學生的點名工作。

[BT5]1.1訓練模塊

訓練模塊是上課點名系統(tǒng)的核心模塊之一。訓練過程一般由管理員控制并完成,模型訓練后即可分發(fā)給教師使用。訓練模塊有如下的功能:

1)訓練參數(shù)設(shè)置。訓練參數(shù)設(shè)置包括MFCC參數(shù)設(shè)置、UBM和TV參數(shù)設(shè)置和默認路徑設(shè)置。其中,MFCC參數(shù)設(shè)置項包括幀長、幀移、Mel濾波器個數(shù)、MFCC維數(shù)、是否加入Δ、是否加入ΔΔ、預加重系數(shù)和提升系數(shù)。UBM和TV參數(shù)設(shè)置項包括UBM混合數(shù)和i-vector維數(shù)。

2)模型訓練。模型訓練包括MFCC特征提取、UBM模型訓練、TV模型訓練、i-vector提取和模型存儲等過程。

3)模型載入。模型載入包括UBM模型載入和TV模型載入。

[BT5]1.2點名模塊

點名模塊是上課點名系統(tǒng)的關(guān)鍵模塊,主要由教師負責上課的點名工作。教師利用此模塊可進行以下操作:

1)教師在自己教授課程中選擇當前課程。

2)查看當前課程的所有學生。

3)靈活設(shè)定點名策略。例如:點名策略可采用學號尾號策略、學號倍數(shù)策略和限定人數(shù)策略等。

4)可以選擇自由點名(無順序,學生可在任何情況下答到)或順序點名(學生只能在被點名時答到)。

5)可以控制點名進度,例如暫停或繼續(xù)本次點名。

6)可以設(shè)置判定閾值。

7)在系統(tǒng)自動化判斷的基礎(chǔ)上,可手動更改結(jié)果。

8)保存點名結(jié)果。

如果從移動端與PC端交互來看,將可展開如下步驟:

1)PC端開啟Server,等待移動端連接。

2)移動端成功連接PC,顯示已連接狀態(tài)。

3)PC端發(fā)出點名請求,移動端準備錄音。

4)移動端錄音完畢,并發(fā)送到PC端。

5)PC端接收錄音,顯示已接受狀態(tài)。

6)PC端調(diào)用模型測試,并顯示判斷結(jié)果。

7)(可選)教師修正判斷結(jié)果。

如果從學生點名來看,則可表述為如下4種狀態(tài):

1)未登錄。此時表示該學生并沒有登陸主機??赡軟]有來教室或已來教室但手機還未登錄。

2)已登陸。此時該學生手機已登錄上主機,準備答到。

3)已答到。此時該學生已通過登陸手機進行答到。

4)已判定。系統(tǒng)已經(jīng)通過內(nèi)部算法給出識別結(jié)果。

[BT5]1.3統(tǒng)計模塊

統(tǒng)計模塊是上課點名系統(tǒng)的必要模塊。具體來說,就是在教師登陸后可選擇進入統(tǒng)計界面,在設(shè)計上每個教師只能看到自己所教課程學生的統(tǒng)計信息,教師利用該模塊可方便了解學生的出勤情況,或者依此來計算平時成績中對應的出勤部分結(jié)果?,F(xiàn)實運作時,模塊將通過條件查找和篩選,快捷優(yōu)勢獲得想要的信息,這就極大減輕了教師們的實際日常負擔。統(tǒng)計模塊可完成如下的功能:

1)能查看自己所教課程的點名記錄。

2)能對點名記錄進行篩選工作(比如只看被點到過的)。

3)能查看某一學生的個人詳細記錄。

4)能手動更改某一學生的某一記錄。

[BT5]1.4移動端點名模塊

移動端點名模塊也是支撐該系統(tǒng)的關(guān)鍵模塊之一。PC端的點名模塊需要移動端點名模塊的配合才能完成整個實時點名工作。移動端點名模塊是學生用于答到的功能途徑,因為需要與主機處于同一內(nèi)網(wǎng)中,就會使得在教室范圍外無法進行答到,這樣也避免了“遠程答到”現(xiàn)象的發(fā)生。同時,待答到的學生也必須身處該教室中才能知道自己是否需要答到,或者知道自己正在被點名。綜上的這種雙重設(shè)計使得作弊現(xiàn)象勢將完全根絕。

移動端點名模塊有如下的功能:

1)與PC端主機連接的功能,即登陸主機端功能。

2)傳送語音數(shù)據(jù)的功能。

3)對語音進行初步處理的功能,比如轉(zhuǎn)換成wav文件。

移動端點名模塊功能實現(xiàn)的操作步驟具體如下:

1)登陸主機。包括建立連接和發(fā)送學生信息等。用戶進入登錄界面后,輸入主機IP和學號即可登錄,登錄的同時系統(tǒng)即會自動將信息發(fā)送到PC端。登錄成功后轉(zhuǎn)至點名界面。

2)錄音傳送。包括語音錄制、語音轉(zhuǎn)換和語音傳送等。在點名界面下,按住語音鍵可進行錄音,語音錄制的同時系統(tǒng)則自動將其轉(zhuǎn)換成wav格式(該系統(tǒng)目前只支持wav格式的錄音),松開鍵后語音就會通過網(wǎng)絡(luò)傳送到PC端。

[BT5]1.5移動端本地錄音模塊

移動端本地錄音模塊是上課點名系統(tǒng)的輔助模塊,主要是為了方便學生自己采集語音,通過組織層次(如按班收集),最終提交給管理員進行總體訓練。另外,由于學生訓練和測試均采用同一信道,使得因信道差異而造成的對識別率的干擾也降至最低,從而提高了點名準確率。移動端本地錄音模塊中最為重要的功能就是本地錄音,具體則包括語音錄制、語音轉(zhuǎn)換和保存錄音等。

[BT4]2聲紋識別算法的設(shè)計與實現(xiàn)

說話人識別技術(shù)[16]是上課點名系統(tǒng)研究開發(fā)中選用的專業(yè)核心技術(shù),同時這也是影響和決定該系統(tǒng)各項性能以及可用性的重點實現(xiàn)部分。從PC端成功接收移動端發(fā)送的語音信息開始,直到PC端顯示結(jié)果前,由說話人識別/確認模塊進行智能處理和模式識別,從而判斷出話者的身份(是否為同一人)。一個完整的說話人識別過程通??煞譃?個階段:訓練階段與識別階段。從功能上,則可以分為3個功能模塊:特征提取、模型訓練和模型打分。

[JP2]在宏觀思維上,文本無關(guān)說話人識別可分為說話人辨識和說話人確認。其中,說話人辨識是判定說話人是一群說話人中哪一個,而說話人確認則是確定說話人是不是某一個說話人。具體推斷可知,上課點名系統(tǒng)可明確歸至說話人確認。在訓練階段,首先在PC端由特征提取模塊實現(xiàn)對輸入語音的參數(shù)提取,然后再經(jīng)由模型訓練模塊得到相應的說話人模型,模型是對說話人特征的進一步抽象。而在識別階段,對移動端傳來的測試語音進行特征提取后,將利用模型給測試語音來完成打分,并經(jīng)過不同的判決準則,由此得到最終的判決結(jié)果。[JP]

[BT4]3系統(tǒng)關(guān)鍵任務(wù)實現(xiàn)

[BT5]3.1跨平臺網(wǎng)絡(luò)交互實現(xiàn)

由于該系統(tǒng)橫跨兩大平臺Windows桌面平臺和Android移動平臺,即使得兩者間通過網(wǎng)絡(luò)的交互和數(shù)據(jù)的準確傳送就顯得尤為重要。首先,需要重點考慮是選用HTTP協(xié)議還是較為底層的TCP/IP協(xié)議。就現(xiàn)實方便而言,HTTP協(xié)議相應地要更為占優(yōu),對于HTTP消息的解析工具和API均已臻至完善。但是由于HTTP協(xié)議直接針對應用層部分,每一個數(shù)據(jù)包中都含帶了許多冗余的參數(shù)信息,在效率上將略差于采用底層的TCP協(xié)議。而且該系統(tǒng)對實時性要求很高,尤其是聲音文件的傳送更需要做到盡量地快捷、快速,雖然在編程工作量方面TCP比HTTP要顯現(xiàn)劣勢,但是綜合考慮性能,本研究決定選用較為底層的TCP協(xié)議進行編程。

其次,是PC端與移動端兩大平臺間消息格式的設(shè)定,其設(shè)定的好壞將直接關(guān)系到數(shù)據(jù)能否實現(xiàn)穩(wěn)定快速的傳送。研究中,系統(tǒng)采用了自定義TLV(Tag-Length-Value)編碼,該方式以標簽頭+內(nèi)容長度+內(nèi)容的方式進行編碼,如此既保證了數(shù)據(jù)發(fā)送接收的一致性,又提高了整體運行效率。在此,給出這一信息編碼格式如圖1所示。

當TAG=1時,表示內(nèi)容為JSON格式編碼。當TAG=2時,表示對應內(nèi)容為二進制編碼(該系統(tǒng)一般為語音文件)。由于平臺和編程語言的不同(PC端為C++、Android端為JAVA),在實現(xiàn)方式上又將各有差異。

[BT5]3.2計算繁重任務(wù)的多線程實現(xiàn)

在訓練和測試中,由于數(shù)據(jù)量大,運行時間長,若單線程運行會出現(xiàn)“假死”的現(xiàn)象,所以多線程操作也就成了必然。QT中的多線程采用繼承QThread類,通過實現(xiàn)run函數(shù)來構(gòu)建完成。多線程運行的同時,還需要并行與主線程消息的通訊,如主線程需要獲知模型訓練的進度等。這個時候就可以采用QT獨有的Signal-Slot機制,利用異步性質(zhì),使得多線程的消息傳遞簡單可靠。

[BT4]4結(jié)束語

基于i-vector聲紋識別技術(shù)的上課點名系統(tǒng)為教師課堂出勤管理提供了一整套行之有效的解決方案,減輕了教師上課點名的負擔,減少了冒名頂替等不誠信、不公正現(xiàn)象的發(fā)生。系統(tǒng)在PC端使用QT5和C++實現(xiàn),在移動端使用JAVA和Android SDK實現(xiàn),完成了從PC端到移動端完整清晰、連貫一體的系統(tǒng);該系統(tǒng)具備簡潔實用的特性,訓練時既可采用默認設(shè)置一鍵訓練,也可自己調(diào)整參數(shù)手動訓練;點名時既可采取無管控、無順序的自由點名,也可采用模擬傳統(tǒng)方式的順序點名。與此同時,聲紋識別的最新技術(shù)研究必然對該領(lǐng)域的創(chuàng)新研究有啟發(fā)性作用。

[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]栗志意, 何亮, 張衛(wèi)強. 基于鑒別性 i-vector局部距離保持映射的說話人識別[J]. 清華大學學報(自然科學版), 2012, 52(5): 598-601.

[16]酆勇, 李宓, 李子明. 文本無關(guān)的說話人識別研究[J]. 數(shù)字通信, 2013, 40(4): 48-52.