王偉++韓紀(jì)慶++鄭鐵然++鄭貴濱++周星宇++金聲
摘要: 當(dāng)今課堂教學(xué)過程中存在著學(xué)生曠課、老師需要經(jīng)常檢查課堂出勤情況等問題。本系統(tǒng)著眼于課堂教學(xué)的實(shí)際需要,旨在方便任課老師了解學(xué)生上課出席情況,以及防止冒名頂替等不公正現(xiàn)象的發(fā)生,開發(fā)了基于i-vector聲紋識(shí)別技術(shù)的上課點(diǎn)名系統(tǒng),不僅在說話人識(shí)別的研究領(lǐng)域有探索意義,而且在方便老師課堂管理方面有著重要的實(shí)踐意義。
關(guān)鍵詞:上課點(diǎn)名系統(tǒng); 聲紋識(shí)別; 跨平臺(tái)交互
中圖分類號(hào): TP391
文獻(xiàn)標(biāo)志碼: A
文章編號(hào): 2095-2163(2016)06-0108-03
0引言
聲紋識(shí)別(voice print recognition)也稱為說話人識(shí)別[1](speaker recognition),是通過對(duì)說話人語音信號(hào)特征的分析處理,識(shí)別說話人身份的過程。與語音識(shí)別不同,說話人識(shí)別側(cè)重于說話人的身份而非說話的內(nèi)容。按照說話內(nèi)容的類型,可分為文本有關(guān)和文本無關(guān)。前者要求說話人在訓(xùn)練與識(shí)別階段說相同的內(nèi)容,而后者無此要求。所以,文本無關(guān)說話人識(shí)別應(yīng)用將更為廣泛,但識(shí)別難度也必然更大。
對(duì)說話人識(shí)別的研究始于 20 世紀(jì) 30 年代,早期主要進(jìn)行有關(guān)人耳聽辨方面的研究。而對(duì)說話人自動(dòng)識(shí)別的研究則需上溯自60年代。在語音特征提取方面,1962 年Kesta提出使用語譜圖進(jìn)行說話人識(shí)別的方法[2],1969年Luck等人將倒譜技術(shù)首度應(yīng)用于說話人識(shí)別[3],1976 年 Atal等人進(jìn)一步提出線性預(yù)測(cè)倒譜系數(shù) [4]。而在說話人識(shí)別模型方面,60及70年代初期,主要采用的是模板匹配方法。70 年代后期,動(dòng)態(tài)時(shí)間規(guī)整和矢量量化技術(shù)相應(yīng)地已然成為研究和發(fā)展重點(diǎn)[5-7]。
80 年代后,Davis 等人提出了 Mel 頻率倒譜系數(shù)(Mel Frequency Cepstrum Coefficient,簡(jiǎn)稱MFCC)[8]。由于MFCC考慮了人耳的聽覺感知機(jī)理,表現(xiàn)出良好的識(shí)別效果和噪聲魯棒性,從而成為說話人識(shí)別中使用的基礎(chǔ)評(píng)判參數(shù)。與此同時(shí),人工神經(jīng)網(wǎng)絡(luò)和隱馬爾可夫模型[9]也在語音識(shí)別領(lǐng)域獲得了成功與廣泛的應(yīng)用,由此晉升為說話人識(shí)別中的核心技術(shù)。90年代后,高斯混合模型憑借其簡(jiǎn)單、靈活、有效以及出眾的魯棒性,迅速演進(jìn)成為目前與文本無關(guān)的說話人識(shí)別中的主流技術(shù)[10]。進(jìn)入21世紀(jì)以后,Reynolds等人提出 GMM-UBM(Gaussian Mixture Model with Universal Background Model) 模型用于文本無關(guān)說話人識(shí)別,使得訓(xùn)練GMM的樣本數(shù)量要求減少,文本無關(guān)的說話人識(shí)別開始從實(shí)驗(yàn)室走向了廣闊現(xiàn)實(shí)應(yīng)用[11]。
2006 年,Campbell等人在GMM-UBM基礎(chǔ)上提出高斯超向量概念,并與支持向量機(jī)融合為高斯混合超向量-支持向量機(jī)模型用于文本無關(guān)說話人識(shí)別,由此突破性地發(fā)展成為目前國(guó)內(nèi)外文本無關(guān)說話人識(shí)別的熱點(diǎn)關(guān)鍵實(shí)用技術(shù)[12]。近年來,學(xué)者們又在高斯超向量基礎(chǔ)上,提出了聯(lián)合因子分析 [13]、鑒別性向量(i-vector)[14]等模型,使得文本無關(guān)說話人識(shí)別系統(tǒng)的性能取得了顯著的改進(jìn)與提升。本系統(tǒng)是基于i-vector構(gòu)建的聲紋識(shí)別系統(tǒng)。i-vector說話人建模技術(shù)[15]的基本思想可大致描述為:信道和會(huì)話的影響均包含在總體變化子空間中,通過對(duì)包含說話人信息和信道信息的GMM均值超矢量在低秩的總體變化子空間上進(jìn)行投影,得到只包含說話人信息的低維矢量?;诼暭y識(shí)別的上課點(diǎn)名系統(tǒng)為教師課堂出勤管理提供了一整套行之有效的解決方案,從而大大提高了上課點(diǎn)名系統(tǒng)的性能。
[BT4]1系統(tǒng)的整體架構(gòu)
上課點(diǎn)名系統(tǒng)總體架構(gòu)分為PC端和移動(dòng)端,兩者通過無線網(wǎng)絡(luò)相連。系統(tǒng)呈現(xiàn)C/S結(jié)構(gòu),在整體架構(gòu)上可分為4層:最底層由無線網(wǎng)絡(luò)、PC和手機(jī)來提供支撐;第二層包含網(wǎng)絡(luò)TCP/IP協(xié)議和Socket;第三層由聲紋識(shí)別算法、數(shù)據(jù)庫和Android系統(tǒng)的API構(gòu)成;最頂層即由系統(tǒng)各功能模塊組成。綜上可知,以上4層構(gòu)成了完整的上課點(diǎn)名系統(tǒng)。
上課點(diǎn)名系統(tǒng)分為5大模塊,具體可表述為:PC端的訓(xùn)練模塊、點(diǎn)名模塊、統(tǒng)計(jì)模塊、移動(dòng)端的點(diǎn)名模塊和本地錄音模塊。PC端承載了大運(yùn)算量的識(shí)別任務(wù),而移動(dòng)端只負(fù)責(zé)語聲的錄音、簡(jiǎn)單轉(zhuǎn)換和發(fā)送工作。PC端點(diǎn)名模塊設(shè)計(jì)為主控整體的點(diǎn)名過程,移動(dòng)端的點(diǎn)名模塊則實(shí)施完成每個(gè)學(xué)生的點(diǎn)名工作。
[BT5]1.1訓(xùn)練模塊
訓(xùn)練模塊是上課點(diǎn)名系統(tǒng)的核心模塊之一。訓(xùn)練過程一般由管理員控制并完成,模型訓(xùn)練后即可分發(fā)給教師使用。訓(xùn)練模塊有如下的功能:
1)訓(xùn)練參數(shù)設(shè)置。訓(xùn)練參數(shù)設(shè)置包括MFCC參數(shù)設(shè)置、UBM和TV參數(shù)設(shè)置和默認(rèn)路徑設(shè)置。其中,MFCC參數(shù)設(shè)置項(xiàng)包括幀長(zhǎng)、幀移、Mel濾波器個(gè)數(shù)、MFCC維數(shù)、是否加入Δ、是否加入ΔΔ、預(yù)加重系數(shù)和提升系數(shù)。UBM和TV參數(shù)設(shè)置項(xiàng)包括UBM混合數(shù)和i-vector維數(shù)。
2)模型訓(xùn)練。模型訓(xùn)練包括MFCC特征提取、UBM模型訓(xùn)練、TV模型訓(xùn)練、i-vector提取和模型存儲(chǔ)等過程。
3)模型載入。模型載入包括UBM模型載入和TV模型載入。
[BT5]1.2點(diǎn)名模塊
點(diǎn)名模塊是上課點(diǎn)名系統(tǒng)的關(guān)鍵模塊,主要由教師負(fù)責(zé)上課的點(diǎn)名工作。教師利用此模塊可進(jìn)行以下操作:
1)教師在自己教授課程中選擇當(dāng)前課程。
2)查看當(dāng)前課程的所有學(xué)生。
3)靈活設(shè)定點(diǎn)名策略。例如:點(diǎn)名策略可采用學(xué)號(hào)尾號(hào)策略、學(xué)號(hào)倍數(shù)策略和限定人數(shù)策略等。
4)可以選擇自由點(diǎn)名(無順序,學(xué)生可在任何情況下答到)或順序點(diǎn)名(學(xué)生只能在被點(diǎn)名時(shí)答到)。
5)可以控制點(diǎn)名進(jìn)度,例如暫停或繼續(xù)本次點(diǎn)名。
6)可以設(shè)置判定閾值。
7)在系統(tǒng)自動(dòng)化判斷的基礎(chǔ)上,可手動(dòng)更改結(jié)果。
8)保存點(diǎn)名結(jié)果。
如果從移動(dòng)端與PC端交互來看,將可展開如下步驟:
1)PC端開啟Server,等待移動(dòng)端連接。
2)移動(dòng)端成功連接PC,顯示已連接狀態(tài)。
3)PC端發(fā)出點(diǎn)名請(qǐng)求,移動(dòng)端準(zhǔn)備錄音。
4)移動(dòng)端錄音完畢,并發(fā)送到PC端。
5)PC端接收錄音,顯示已接受狀態(tài)。
6)PC端調(diào)用模型測(cè)試,并顯示判斷結(jié)果。
7)(可選)教師修正判斷結(jié)果。
如果從學(xué)生點(diǎn)名來看,則可表述為如下4種狀態(tài):
1)未登錄。此時(shí)表示該學(xué)生并沒有登陸主機(jī)。可能沒有來教室或已來教室但手機(jī)還未登錄。
2)已登陸。此時(shí)該學(xué)生手機(jī)已登錄上主機(jī),準(zhǔn)備答到。
3)已答到。此時(shí)該學(xué)生已通過登陸手機(jī)進(jìn)行答到。
4)已判定。系統(tǒng)已經(jīng)通過內(nèi)部算法給出識(shí)別結(jié)果。
[BT5]1.3統(tǒng)計(jì)模塊
統(tǒng)計(jì)模塊是上課點(diǎn)名系統(tǒng)的必要模塊。具體來說,就是在教師登陸后可選擇進(jìn)入統(tǒng)計(jì)界面,在設(shè)計(jì)上每個(gè)教師只能看到自己所教課程學(xué)生的統(tǒng)計(jì)信息,教師利用該模塊可方便了解學(xué)生的出勤情況,或者依此來計(jì)算平時(shí)成績(jī)中對(duì)應(yīng)的出勤部分結(jié)果。現(xiàn)實(shí)運(yùn)作時(shí),模塊將通過條件查找和篩選,快捷優(yōu)勢(shì)獲得想要的信息,這就極大減輕了教師們的實(shí)際日常負(fù)擔(dān)。統(tǒng)計(jì)模塊可完成如下的功能:
1)能查看自己所教課程的點(diǎn)名記錄。
2)能對(duì)點(diǎn)名記錄進(jìn)行篩選工作(比如只看被點(diǎn)到過的)。
3)能查看某一學(xué)生的個(gè)人詳細(xì)記錄。
4)能手動(dòng)更改某一學(xué)生的某一記錄。
[BT5]1.4移動(dòng)端點(diǎn)名模塊
移動(dòng)端點(diǎn)名模塊也是支撐該系統(tǒng)的關(guān)鍵模塊之一。PC端的點(diǎn)名模塊需要移動(dòng)端點(diǎn)名模塊的配合才能完成整個(gè)實(shí)時(shí)點(diǎn)名工作。移動(dòng)端點(diǎn)名模塊是學(xué)生用于答到的功能途徑,因?yàn)樾枰c主機(jī)處于同一內(nèi)網(wǎng)中,就會(huì)使得在教室范圍外無法進(jìn)行答到,這樣也避免了“遠(yuǎn)程答到”現(xiàn)象的發(fā)生。同時(shí),待答到的學(xué)生也必須身處該教室中才能知道自己是否需要答到,或者知道自己正在被點(diǎn)名。綜上的這種雙重設(shè)計(jì)使得作弊現(xiàn)象勢(shì)將完全根絕。
移動(dòng)端點(diǎn)名模塊有如下的功能:
1)與PC端主機(jī)連接的功能,即登陸主機(jī)端功能。
2)傳送語音數(shù)據(jù)的功能。
3)對(duì)語音進(jìn)行初步處理的功能,比如轉(zhuǎn)換成wav文件。
移動(dòng)端點(diǎn)名模塊功能實(shí)現(xiàn)的操作步驟具體如下:
1)登陸主機(jī)。包括建立連接和發(fā)送學(xué)生信息等。用戶進(jìn)入登錄界面后,輸入主機(jī)IP和學(xué)號(hào)即可登錄,登錄的同時(shí)系統(tǒng)即會(huì)自動(dòng)將信息發(fā)送到PC端。登錄成功后轉(zhuǎn)至點(diǎn)名界面。
2)錄音傳送。包括語音錄制、語音轉(zhuǎn)換和語音傳送等。在點(diǎn)名界面下,按住語音鍵可進(jìn)行錄音,語音錄制的同時(shí)系統(tǒng)則自動(dòng)將其轉(zhuǎn)換成wav格式(該系統(tǒng)目前只支持wav格式的錄音),松開鍵后語音就會(huì)通過網(wǎng)絡(luò)傳送到PC端。
[BT5]1.5移動(dòng)端本地錄音模塊
移動(dòng)端本地錄音模塊是上課點(diǎn)名系統(tǒng)的輔助模塊,主要是為了方便學(xué)生自己采集語音,通過組織層次(如按班收集),最終提交給管理員進(jìn)行總體訓(xùn)練。另外,由于學(xué)生訓(xùn)練和測(cè)試均采用同一信道,使得因信道差異而造成的對(duì)識(shí)別率的干擾也降至最低,從而提高了點(diǎn)名準(zhǔn)確率。移動(dòng)端本地錄音模塊中最為重要的功能就是本地錄音,具體則包括語音錄制、語音轉(zhuǎn)換和保存錄音等。
[BT4]2聲紋識(shí)別算法的設(shè)計(jì)與實(shí)現(xiàn)
說話人識(shí)別技術(shù)[16]是上課點(diǎn)名系統(tǒng)研究開發(fā)中選用的專業(yè)核心技術(shù),同時(shí)這也是影響和決定該系統(tǒng)各項(xiàng)性能以及可用性的重點(diǎn)實(shí)現(xiàn)部分。從PC端成功接收移動(dòng)端發(fā)送的語音信息開始,直到PC端顯示結(jié)果前,由說話人識(shí)別/確認(rèn)模塊進(jìn)行智能處理和模式識(shí)別,從而判斷出話者的身份(是否為同一人)。一個(gè)完整的說話人識(shí)別過程通??煞譃?個(gè)階段:訓(xùn)練階段與識(shí)別階段。從功能上,則可以分為3個(gè)功能模塊:特征提取、模型訓(xùn)練和模型打分。
[JP2]在宏觀思維上,文本無關(guān)說話人識(shí)別可分為說話人辨識(shí)和說話人確認(rèn)。其中,說話人辨識(shí)是判定說話人是一群說話人中哪一個(gè),而說話人確認(rèn)則是確定說話人是不是某一個(gè)說話人。具體推斷可知,上課點(diǎn)名系統(tǒng)可明確歸至說話人確認(rèn)。在訓(xùn)練階段,首先在PC端由特征提取模塊實(shí)現(xiàn)對(duì)輸入語音的參數(shù)提取,然后再經(jīng)由模型訓(xùn)練模塊得到相應(yīng)的說話人模型,模型是對(duì)說話人特征的進(jìn)一步抽象。而在識(shí)別階段,對(duì)移動(dòng)端傳來的測(cè)試語音進(jìn)行特征提取后,將利用模型給測(cè)試語音來完成打分,并經(jīng)過不同的判決準(zhǔn)則,由此得到最終的判決結(jié)果。[JP]
[BT4]3系統(tǒng)關(guān)鍵任務(wù)實(shí)現(xiàn)
[BT5]3.1跨平臺(tái)網(wǎng)絡(luò)交互實(shí)現(xiàn)
由于該系統(tǒng)橫跨兩大平臺(tái)Windows桌面平臺(tái)和Android移動(dòng)平臺(tái),即使得兩者間通過網(wǎng)絡(luò)的交互和數(shù)據(jù)的準(zhǔn)確傳送就顯得尤為重要。首先,需要重點(diǎn)考慮是選用HTTP協(xié)議還是較為底層的TCP/IP協(xié)議。就現(xiàn)實(shí)方便而言,HTTP協(xié)議相應(yīng)地要更為占優(yōu),對(duì)于HTTP消息的解析工具和API均已臻至完善。但是由于HTTP協(xié)議直接針對(duì)應(yīng)用層部分,每一個(gè)數(shù)據(jù)包中都含帶了許多冗余的參數(shù)信息,在效率上將略差于采用底層的TCP協(xié)議。而且該系統(tǒng)對(duì)實(shí)時(shí)性要求很高,尤其是聲音文件的傳送更需要做到盡量地快捷、快速,雖然在編程工作量方面TCP比HTTP要顯現(xiàn)劣勢(shì),但是綜合考慮性能,本研究決定選用較為底層的TCP協(xié)議進(jìn)行編程。
其次,是PC端與移動(dòng)端兩大平臺(tái)間消息格式的設(shè)定,其設(shè)定的好壞將直接關(guān)系到數(shù)據(jù)能否實(shí)現(xiàn)穩(wěn)定快速的傳送。研究中,系統(tǒng)采用了自定義TLV(Tag-Length-Value)編碼,該方式以標(biāo)簽頭+內(nèi)容長(zhǎng)度+內(nèi)容的方式進(jìn)行編碼,如此既保證了數(shù)據(jù)發(fā)送接收的一致性,又提高了整體運(yùn)行效率。在此,給出這一信息編碼格式如圖1所示。
當(dāng)TAG=1時(shí),表示內(nèi)容為JSON格式編碼。當(dāng)TAG=2時(shí),表示對(duì)應(yīng)內(nèi)容為二進(jìn)制編碼(該系統(tǒng)一般為語音文件)。由于平臺(tái)和編程語言的不同(PC端為C++、Android端為JAVA),在實(shí)現(xiàn)方式上又將各有差異。
[BT5]3.2計(jì)算繁重任務(wù)的多線程實(shí)現(xiàn)
在訓(xùn)練和測(cè)試中,由于數(shù)據(jù)量大,運(yùn)行時(shí)間長(zhǎng),若單線程運(yùn)行會(huì)出現(xiàn)“假死”的現(xiàn)象,所以多線程操作也就成了必然。QT中的多線程采用繼承QThread類,通過實(shí)現(xiàn)run函數(shù)來構(gòu)建完成。多線程運(yùn)行的同時(shí),還需要并行與主線程消息的通訊,如主線程需要獲知模型訓(xùn)練的進(jìn)度等。這個(gè)時(shí)候就可以采用QT獨(dú)有的Signal-Slot機(jī)制,利用異步性質(zhì),使得多線程的消息傳遞簡(jiǎn)單可靠。
[BT4]4結(jié)束語
基于i-vector聲紋識(shí)別技術(shù)的上課點(diǎn)名系統(tǒng)為教師課堂出勤管理提供了一整套行之有效的解決方案,減輕了教師上課點(diǎn)名的負(fù)擔(dān),減少了冒名頂替等不誠(chéng)信、不公正現(xiàn)象的發(fā)生。系統(tǒng)在PC端使用QT5和C++實(shí)現(xiàn),在移動(dòng)端使用JAVA和Android SDK實(shí)現(xiàn),完成了從PC端到移動(dòng)端完整清晰、連貫一體的系統(tǒng);該系統(tǒng)具備簡(jiǎn)潔實(shí)用的特性,訓(xùn)練時(shí)既可采用默認(rèn)設(shè)置一鍵訓(xùn)練,也可自己調(diào)整參數(shù)手動(dòng)訓(xùn)練;點(diǎn)名時(shí)既可采取無管控、無順序的自由點(diǎn)名,也可采用模擬傳統(tǒng)方式的順序點(diǎn)名。與此同時(shí),聲紋識(shí)別的最新技術(shù)研究必然對(duì)該領(lǐng)域的創(chuàng)新研究有啟發(fā)性作用。
[HS1*2][HT5H]參考文獻(xiàn):[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)強(qiáng). 基于鑒別性 i-vector局部距離保持映射的說話人識(shí)別[J]. 清華大學(xué)學(xué)報(bào)(自然科學(xué)版), 2012, 52(5): 598-601.
[16]酆勇, 李宓, 李子明. 文本無關(guān)的說話人識(shí)別研究[J]. 數(shù)字通信, 2013, 40(4): 48-52.