機電之家資源網(wǎng)
單片機首頁|單片機基礎(chǔ)|單片機應用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓信息
贊助商
基于嵌入式多核SoPC平臺的說話人識別系統(tǒng)應用研究
基于嵌入式多核SoPC平臺的說話人識別系統(tǒng)應用研究
 更新時間:2008-8-3 15:46:30  點擊數(shù):6
【字體: 字體顏色

 


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

 

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

      

                          

 


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

 

                       

 

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

 

                        


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

 

                       


參考文獻
[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] 張軍英.說話人識別的現(xiàn)代方法與技術(shù)[M].西安:西北大學出版社,1994.
[4] 任愛峰,初秀琴,常存,等.基于FPGA的嵌入式系統(tǒng)設(shè)計[M].西安:西安電子科技大學出版社,2004.
[5] BORNHOLDT S,GRAUDENZ D.General asymmetric neural networks and structure design by genetic algorithm.Neural Networks,1992,5(2):327-334.
 



  • 上一篇: 基于MSP430單片機的多功能、高精度數(shù)據(jù)采集系統(tǒng)
  • 下一篇: 基于CPLD的高速數(shù)據(jù)采集系統(tǒng)的設(shè)計與實現(xiàn)
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設(shè)備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責信息內(nèi)容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學會
    中國行業(yè)電子商務100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1