《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 業界動態 > 基于嵌入式多核SoPC平臺的說話人識別系統應用研究

基于嵌入式多核SoPC平臺的說話人識別系統應用研究

2008-07-02
作者:何 偉,胡又文,張 玲,陳方

??? 摘 要: 針對當前基于DSP、ARM等硬核處理器設計的嵌入式說話人識別" title="說話人識別">說話人識別系統訓練和辨認時間長等缺陷,根據MFCC提取過程的特點與遺傳聚類" title="聚類">聚類算法中適應度計算的原理,提出一種基于SoPC平臺與矢量量化" title="矢量量化">矢量量化原理的說話人識別系統" title="說話人識別系統">說話人識別系統實現方案。經測試,該實現方案在保證識別率前提下,可有效提高訓練與識別速度。

??? 關鍵詞: 說話人識別 ?矢量量化 ?遺傳算法" title="遺傳算法">遺傳算法 ?適應度 ?SOPC

?

??? 說話人識別(Speaker Recognition)又稱話者識別,是指根據特定說話人語音波形中反映生理和行為等特征的語音參數來對說話人身份進行識別[1]。說話人識別技術作為一種非接觸性識別技術,在保安、司法、軍事和信息服務等領域都有廣泛的應用前景。
??? 文本無關的說話人識別方法是當前說話人識別技術的研究重點。常用的識別算法有:基于矢量量化VQ(Vector Quantization)的方法[2]、基于HMM的方法、基于ANN的方法等。其中,基于VQ的說話人識別方法無需考慮復雜的統計模型和時間歸整問題,運算過程簡單,在說話人識別領域被廣泛應用。
??? 基于VQ的說話人識別通常采用MFCC參數,因為MFCC是一種基于人耳對語音頻率的非線形感知特征的描述參數[3],在說話人識別中,其性能優于LPC、LPCC等參數。
??? SoPC技術是一種基于FPGA解決方案的SoC,由美國ALTERA公司于2000年提出[4]。基于SoPC平臺的開發結合了FPGA靈活可編程與片上NiosII軟核處理器的用戶可配置等特點。在實現某功能時,可編寫C/C++程序運行于NiosII處理器實現,也可設計硬件模塊實現,不占用CPU,起到了硬件加速效果。本系統綜合兩種實現思路,采用高性價比的Cyclone II 2C35系列FPGA實現。經驗證,該說話人識別系統識別率高,實時性優于硬核處理器系統,應用前景良好。
1 基于矢量量化的說話人識別算法
??? 說話人識別中,先需要建立表征用戶語音特征的碼書,碼書由從用戶的訓練語音中提取的MFCC聚類而成。識別階段,系統先采集一段測試者的語音,提取出MFCC,再與用戶VQ碼書匹配,如果失真測度達到一定范圍,則可認為測試者即為碼書表征的用戶。
??? 建立碼書時,先由系統采集一段用戶語音,經分幀與MFCC提取后可得到N M 維原始矢量On={o1,o2,?
oM}(n=1,2,3…,N ),其中每一矢量相當于M維空間中的一點。然后將N 個原始矢量在M 維空間作K聚類,得到的聚類結果即是表征說話人語音特征的K容量碼書。其中,用于構建碼書的N幀M維MFCC稱為訓練序列。
??? 根據實驗驗證并綜合考慮系統資源與識別性能,參數設定總幀數M一般取256或512,碼書大小K取64,M取12或16(若加上差分參數可擴至24、36等)。由于是在高維空間聚類,普通聚類方法易導致結果陷入局部最優點,因而選擇具有全局搜索性能的遺傳算法進行聚類,可得到最優碼書。針對說話人識別設計的算法,具體細節如下:
??? 群體規模:30
??? 編碼方式:二進制編碼
??? 交叉變異:無回放隨機選擇策略選擇單點交叉,交叉概率PC =90%,變異概率PM =10%
??? 遷移間隔:每運行2代遷移一次
??? 選擇(替換) 輪盤賭方式+10%最優個體保存
??? 個體適應度計算公式為:

????

?

??? X 為訓練序列,Y 為個體,d(XjYi)是訓練序列中某點Xj與個體中某點Yi之間的歐氏距離。
停止條件為當遺傳代數達到規定閾值或最近三代最優個體適應度比值達一定閾值。
??? 同時,在遺傳過程中可每隔若干代執行一次K-means聚類以加快收斂速度。遺傳結束后,最末代得到的最優適應度個體即為用戶的VQ語音碼書。
??? 識別階段,系統先采集一段測試者的語音,提取出MFCC,稱為測試序列,然后與用戶VQ碼書比較。如果匹配度達到一定范圍,則可認為測試者即為碼書表征的用戶。
2 系統方案與實現
??? 說話人識別系統主要有四項任務:(1)說話人語音采集與有效語音提取;(2)語音幀MFCC提取;(3)通過遺傳算法計算得到說話人語音VQ碼書;(4)在說話人識別時實時采集測試者語音并提取MFCC,然后與已有碼書進行匹配并作出決策。
??? SoPC設計中,根據需要可在單FPGA內配置多CPU。本系統配置了雙CPU,兩塊CPU均以同一片SDRAM為運行內存,由Avalon總線模塊提供仲裁機制實現雙CPU對SDRAM的分時訪問。系統除含有必要的儲存器與語音輸入接口外,還外接PS2鍵盤與LCD、VGA顯示器等人機交互設備,整體設計框圖如圖1所示。

?

?????????????????????????

?


2.1 語音采集與有效語音提取
??? 語音A/D轉換由WOLFSON公司的WM8751語音芯片實現。系統上電后,FPGA內的用戶制定配置模塊以I2C時序配置該芯片工作模式為8kHz采樣頻率與16bit采樣深度,采樣得到的語音數據以I2S時序串行傳輸到FPGA芯片中。
??? 語音數據由采樣芯片傳至FPGA芯片端口后,由用戶制定硬件采集模塊負責接收,該模塊還負責計算本次收到數據的前向差值與平方值,然后將接收的數據、前向差值和平方值通過Avalon總線傳至SRAM。這樣,該模塊在實現數據采集的同時,完成部分過零率與短時能量計算的工作。SRAM中有兩塊地址固定的數據存儲區A與B。當采樣模塊采集滿A區并通知CPU讀數后,如果語音芯片繼續傳來數據,采樣模塊將接收的數據存儲到B區中,這樣CPU讀A區不會與模塊寫B區產生沖突,B區寫滿后模塊與CPU以相同方式工作。
??? CPU采集到語音數據后進一步作分幀處理與靜音檢測,經檢測為有效語音的數據幀予以保留。每一語音幀根據式(2)、式(3)計算短時能量與過零率,然后通過雙門限法檢測該段數據是否為有效語音。式(2)、式(3)中,N為每幀采樣點數。由于每個采樣點的前向差值與平方值已由數據接收模塊算出,CPU只需提出這些值按幀累加即可。檢測為有效語音的數據幀放入SDRAM中的循環緩沖區中,當有效語音數據足量后,CPU停止采集模塊工作。
??? ???

?

2.2 語音MFCC參數運算
??? 語音采集與檢測過程中,若采用筆者設計的主-從CPU幀流水MFCC提取結構(圖2),可使語音和MFCC提取在雙CPU上同步進行,從而提高系統效率。雙CPU結構中,主CPU完成采集與檢測,從CPU實現MFCC提取。該結構工作過程如下:

??????

??????????????????????????

?


??? 當主CPU采集到一段原始語音數據后,對該段數據進行分幀與檢測,然后將有效語音數據按幀寫至緩沖區A2B,并通過郵箱通知從CPU。若主CPU在下一段原始語音數據到來前通過郵箱得知緩沖區B2A有從CPU處理完成的MFCC,則將其讀出至主CPU內存中。由于主CPU對MFCC的接收是查詢,對語音數據的接收是中斷,故收發數據不會產生沖突。由郵箱消息啟動從CPU,一旦獲悉有新語音數據到來,即從緩沖區A2B中讀取數據到從CPU內存。當從CPU運算出MFCC,將MFCC寫至B2A緩沖區,然后發送信息至郵箱。從CPU的內存區內設有MFCC緩沖區,若B2A內的數據未被主CPU讀完,而新MFCC已經提取完成,則從CPU將新MFCC暫存在緩沖區中,待B2A中的數據被讀完后再將新MFCC寫入。主從CPU進行通信的郵箱由硬件邏輯資源構成,雙CPU可通過該郵箱同時收發信息。
??? 主-從CPU流水結構串行處理語音數據可有效加速MFCC參數的提取,相當于數據在雙CPU系統中以幀為單位作流水處理,使語音采集與MFCC參數提取同步進行。
2.3 適應度計算硬件結構及遺傳算法實現
??? MFCC參數提取完成,設得到N幀M維MFCC。根據前面討論,碼書容量選擇為F=64,若取M=12并加上一階差分參數,N=512,遺傳個體T=30;根據式(1)估算,執行一代群體適應度計算至少需作(2M)×N × T × F =23592960≈24M次乘法和48M次加減法,加上遺傳動作,執行一代遺傳的總步驟更遠遠超過運算次數。實驗可知,遺傳收斂代數大約為40~150,因此直接用軟件程序實現必導致耗時過長。
??? 根據適應度計算的算法特點,在設計中采用并行流水結構實現適應度計算,可大大減少耗時。根據式(1),K維空間中兩點之間距離的計算可采用K路并行運算器實現,得到的K路輸出并行進入K輸入加法器,再作開方處理即得到兩點距離,然后通過比較得到式(1)中的最短距離值 并累加,再將此距離累加便可得到適應度的倒數。這一系列計算可通過流水硬件結構實現。
??? 根據該思路設計的適應度計算的硬件結構框圖如圖3所示。由圖3可知,CPU將訓練序列與單個個體通過地址分配單元按維寫入K路數據存儲與運算單元,由選擇與控制單元啟動運算,K路并行運算的結果通過K輸入加法器與距離運算單元得到兩點歐氏距離,選擇與控制單元輸出結果進行比較,搜索 并累加,經過N次處理后,得到該個體適應度的倒數,并由控制與選擇單元以中斷方式將該值返回給CPU,完成一個個體的適應度運算。CPU處理完這個個體的適應度值后,再將下一個個體寫入存儲單元并重復上述過程,直至求出最佳個體。

?

???????????????????????

?

??? 該適應度運算并行流水結構由硬件實現,執行一代群體適應度計算僅需時鐘周期數為:(F + 1)×N ×T +(2M ×T×F)=1044480≈1M,遠優于軟件實現。
??? 在嵌入式系統中實現遺傳算法,為降低運算量,通常要對適應度函數作各種簡化,如穩態方式[5],通過限制每一代發生變化的個體數量來減少運算,但是這些改進一定程度上限制了算法的隨機性。SoPC系統采用硬件資源設計的適應度計算硬件結構加速了適應度運算,克服了算法實現上的難點。
??? 遺傳聚類算法中,交叉和變異等遺傳操作主要是對存儲器的讀寫與位操作,采用硬件加速效果提升不大,因此這部分功能由軟件在處理器上實現。總體而言,系統設計中,將運算量小但步驟繁雜的部分通過軟件完成,運算量大的部分通過硬件模塊實現,體現了SoPC設計的靈活性能。
2.4 實現說話人識別
??? 說話人識別階段是針對說話人的辯識過程,通過VQ特征提取與遺傳算法操作得到的說話人模板的1個64容量的碼書,其值表征某用戶的個人語音特征。識別階段,先采集一定量測試者語音并提取MFCC,由主CPU執行測試者語音MFCC和用戶碼書的匹配操作,匹配度計算公式與適應度計算公式相同。當得到的匹配度大于經驗閾值,則測試者為合法用戶,小于閾值則測試者被拒絕。
3 實驗分析與結論
??? VQ說話人識別中,參數的選擇對系統性能有一定影響。主要可選參數有訓練序列長度與MFCC維數;被影響的性能參數有誤識率,FPGA資源消耗與訓練識別時間。
??? 實驗測試環境為普通實驗室,參與實驗者共24人(男15人,女9人),測試語音時長不低于5秒。實驗中,隨機選不同人員語音生成用戶碼書,然后全體人員參與測試。
??? 表1為不同參數設置下系統性能與資源耗用情況。根據表1可知:在相同的訓練語音時長(即訓練序列幀數)基礎上,使用MFCC+差分參數的系統識別率優于單純使用MFCC,但帶來的數據處理量、存儲單元和邏輯單元的消耗也相應增大;同時,訓練序列幀數對識別率的影響比提高維數更加重要。這是因為在訓練語音幀數有限的情況下,訓練語音時長對用戶碼書的修正效果更加明顯,使碼書更能反映用戶的語音特征。但是這樣也帶來大量存儲單元的消耗與訓練時間的增加。

?

????????????????????????


??? 此外,還進行了不同平臺上相同算法的耗時比較實驗,結果如圖4所示。圖4中DSP平臺采用C5502,PC平臺為主頻1.6GHz的AMD處理器,縱軸表示完成訓練過程的用時。可見,采用適應度計算模塊的SoPC系統速度性能遠遠優于硬處理器系統。

?

???????????????????????


參考文獻
[1] O′SHAUGHNESSY D.Speaker recognition.IEEE Acoustic. Speech and Signal Processing Magazine,1986,3(4):4-7.
[2] SOONG F K.Vector quantization approach to speaker?recognition.ProcICASSP85,1985:387~390.
[3] 張軍英.說話人識別的現代方法與技術[M].西安:西北大學出版社,1994.
[4] 任愛峰,初秀琴,常存,等.基于FPGA的嵌入式系統設計[M].西安:西安電子科技大學出版社,2004.
[5] BORNHOLDT S,GRAUDENZ D.General asymmetric neural networks and structure design by genetic algorithm.Neural?Networks,1992,5(2):327-334.
?

?

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 99在线国产视频 | 中文字幕在线导航 | 天天色天天碰 | 亚洲一区在线视频 | 国产成人18黄网站免费网站 | 欧美很黄视频在线观看 | 国产精品自产拍视频观看 | 中文字幕亚洲区 | 午夜在线视频 | 天天摸夜夜摸爽爽狠狠婷婷97 | 中国毛片网 | 久久精品视频3 | 一级特级毛片 | 日本一二区视频 | 日韩欧美中文字幕一区 | 黄色网页在线观看 | 天天射天天干天天 | 黄色片中文字幕 | 99九九99九九九视频精品 | 一级毛片免费观看不卡视频 | 白丝挠脚心tk调教vk | 亚洲欧美中文字幕在线网站 | 日韩精品一区二区三区中文版 | 亚洲欧美影视 | 日日艹夜夜 | 一级特黄录像免费播放中文版 | 成人小视频在线观看 | 午夜小影院 | 精品国产自在现线看久久 | 亚洲码和乱人伦中文一区 | 在线免费观看黄网站 | 欲漫涩漫画禁漫成人入口 | 我亲爱的朋友们免费看 | 香蕉茄子视频 | 俄罗斯一级毛片免费播放 | 日本一本在线播放 | 人人舔人人插 | 福利网站导航 | 免费高清a级毛片在线播放 免费高清欧美一区二区视频 | 久久国产精品1区2区3区网页 | 欧美亚洲国产另类 |