摘 要:主要介紹一種基于定點數(shù)字信號處理器DSP芯片(TMS320VC5402)的小詞表實時語音識別系統(tǒng)。該系統(tǒng)體積小,成本低,可擴展性好,方便應(yīng)用于許多特定場合,如:門禁控制系統(tǒng)等,對于100詞以內(nèi)的特定人語音,識別的準確率超過95%。<!--摘要CH(結(jié)束)←-->
<!--→關(guān)鍵CH(開始)--> 關(guān)鍵詞:語音識別;(DSP)定點運算;線性預(yù)測編碼(LPC);ADPCM算法;動態(tài)時間歸整(DTW)<!--關(guān)鍵CH(結(jié)束)←--><!--→標題EN(開始)-->
1 引言
語音識別技術(shù)的研究與應(yīng)用已有相當長的時間了,語音識別技術(shù)關(guān)系到多學(xué)科的研究領(lǐng)域,不同領(lǐng)域上的研究成果都對語音識別的發(fā)展做出了貢獻。由于不同的說話人、不同的說話速度、不同的說話內(nèi)容以及不同的環(huán)境條件等都使機器識別語音產(chǎn)生某種程度不同的困難。這是由語音信號本身的特點所造成的。這些特點包括多變性、,動態(tài)性、瞬時性和連續(xù)性等。一個完整的語音識別系統(tǒng)可大致分為4個部分:
(1)語音特征提取 其目的是從語音波形中提取出隨時間變化的語音特征序列。
(2)建立聲學(xué)模型 通常將獲取的語音特征通過學(xué)習(xí)算法產(chǎn)生。
(3)模板匹配(識別算法) 在識別時將輸入的語音特征同聲學(xué)模型進行比較,得到最佳的識別結(jié)果。
(4)語言模型與語言處理 由識別語音命令構(gòu)成的語法網(wǎng)絡(luò),可以進行語法、語義分析。對小詞表語音識別系統(tǒng),往往不需要語言處理部分。
通常在以計算機為語音識別處理平臺的系統(tǒng)中,一般采用隱含馬可夫(Markov)模型(HMM)進行語音識別,該算法由于允許模板匹配中時間不定長,所以系統(tǒng)的適應(yīng)性強,且識別階段計算量也不大,但是需要進行大量的前期訓(xùn)練工作,需要系統(tǒng)具有較高的運算速度和龐大的系統(tǒng)存儲資源。這對于那些需要識別的語音命令不多的特定應(yīng)用場合,無疑是很不經(jīng)濟的,使用起來也不方便。利用廉價的定點數(shù)字信號處理器(DSP)芯片構(gòu)成的小詞表實時語音識別模塊便能很好地解決這一矛盾。下面分別介紹該系統(tǒng)的硬件和軟件結(jié)構(gòu)。
2 系統(tǒng)的硬件構(gòu)成
系統(tǒng)核心硬件構(gòu)成框圖如圖1所示。

2.1 DSP芯片的選擇
合理選擇DSP芯片對于本應(yīng)用系統(tǒng)的設(shè)計是非常重要的。只有選定了DSP芯片才能進一步設(shè)計外圍電路和系統(tǒng)的其他電路。DSP芯片的選擇應(yīng)根據(jù)實際的應(yīng)用系統(tǒng)需要而確定。
TMS320VC5402[1]是TI 公司生產(chǎn)的從屬于TMS320C54x系列的一個工作靈活、高速、具有較高性價比、低功耗的16b定點通用DSP芯片。其主要特點包括:采用改進的哈佛結(jié)構(gòu),1條程序總線(PB),3條數(shù)據(jù)總線(CB,DB,EB)和4條地址總線(PAB,CAB,DAB,EAB),帶有專用硬件邏輯CPU(40b算術(shù)邏輯單元(ALU),包括一個40b桶形移位器和2個40b累加器;一個17×17乘法器和一個40b專用加法器,允許16b帶或不帶符號的乘法),片內(nèi)存儲器(8個輔助寄存器及一個軟件棧),片內(nèi)外專用的指令集,允許使用業(yè)界最先進的定點DSPC語言編譯器。TMS320VC5402含4 kB的片內(nèi)ROM和16kB的雙存取 RAM,1個HPI(HostPortInterface)接口,2個多通道緩沖單口MCBSP(Multi-Channel Buffered Serial Port),單周期指令執(zhí)行時間10ns,帶有符合IEEE1149.1標準的JTAG邊界掃描仿真邏輯。
TMS320VC5402采用雙電源(1.8V和3.3V)供電,其中I/O采用3.3V電源供電,芯片的核采用1.8V電源供電。由于實際系統(tǒng)使用 5 V電源,所以必須采用電源轉(zhuǎn)換芯片。選用TPS7301和TPS7333兩塊電源轉(zhuǎn)換芯片(他們都是TI公司為配合DSP而設(shè)計的電源轉(zhuǎn)換芯片),分別接上少量的外圍電路,即可調(diào)整兩塊芯片的輸出電壓分別為3.3V和1.8V。
2.2 語音輸入輸出模擬前端的選擇
TLC320AD50C是TI公司生產(chǎn)的一款集成ADC和DAC于一體的模擬接口電路,并且與DSP接口簡單,高性能,低功耗,已成為當前語音處理的主流產(chǎn)品。16b數(shù)據(jù)結(jié)構(gòu)、音頻范圍(采樣頻率為2~22.05kHz)、內(nèi)含抗混疊濾波器和重構(gòu)濾波器的模擬接口芯片,他有一個能與許多DSP芯片相連的同步串行通信接口。TLC320AD50C片內(nèi)還包括一個定時器(調(diào)整采樣率和幀同步延時)和控制器(調(diào)整編程放大增益、鎖相環(huán)PLL、主從模式)。 TLC320AD50C有28腳的塑料SOP封裝(帶DW后綴)和48腳的塑料扁平封裝(帶PT后綴),體積較小,適應(yīng)于便攜設(shè)備。
TLC320AD50C的工作溫度范圍是0~70℃,單一5V電源供電或5V和3.3 V聯(lián)合供電,工作時的最大功耗為120mW。
TLC320AD50C與TMS320VC5402的硬件連接如圖2所示。

2.3 其他功能模塊的選擇
(1)外掛程序存儲單元 采用一片27C512作為程序存儲器,系統(tǒng)復(fù)位后,程序自動由EPROM中加載進入DSP的片內(nèi)程序存儲區(qū)運行。
(2)語音模板存儲單元 采用一片AT29C020作為模板和語音存儲器,通過BDMA接口與TMS320VC5402相連!
(3)系統(tǒng)復(fù)位與電源適配 電源復(fù)位、適配和監(jiān)視電路由MAX705,TPS7301和TPS7333實現(xiàn)。
另外,采用74HC574做輸出識別接口,這就構(gòu)成了基本的語音識別模塊。加上鍵盤、LCD顯示接口和相應(yīng)的譯碼電路,即可構(gòu)成完整的控制器。
3 系統(tǒng)的軟件設(shè)計
3.1 TLC320AD50C與TMS320VC5402的接口設(shè)計
(1)TMS320VC5402串口的初始化 首先將DSP串口1復(fù)位,再對串口1的16個寄存器進行編程,使DSP串口工作在以下狀態(tài):以SPI模式運行,每幀一段,每段一個字,每字16b,采樣率發(fā)生器由DSP內(nèi)部產(chǎn)生,幀同步信號和移位時鐘信號由外部產(chǎn)生。DSP給AD50C編程用查詢方式,接收 A/D轉(zhuǎn)換的D信號和發(fā)送D/A轉(zhuǎn)換的D信號用DMA方式。
(2)TLC320AD50C的初始化 首先由TMS320VC5402的同步串口發(fā)送兩串16b數(shù)字信息到TLC320AD50C。第一串為0000 0000 0000 0001B,最低有效位(bits0=1)說明下一個要傳輸?shù)臄?shù)據(jù)字屬于二次通信[2]。第二個數(shù)據(jù)值用來對TLC320AD50C的4個數(shù)據(jù)寄存器的某一個進行配置。Bits15~11位為0,Bits10~8位為所選寄存器地址值, Bits7~0位為所選中寄存器的編程值。并且使TLC320AD50C工作在以下狀態(tài):選擇INP/INM為工作模擬輸入,15+1位ADC和15+1 位DAC模式,采樣頻率為8 kHz,模擬信號輸入和輸出放大增益均為0dB。
3.2 語音信號的端點檢測
語音信號的端點檢測就是從含噪聲的環(huán)境中檢測出說話人的語音命令。由于每個人說話的語音特征是相對不變的,就可以利用語音信號的在特定時段內(nèi)的能量和進行端點檢測。語音信號的采樣頻率為8kHz(僅適合于簡單語句的識別),樣本區(qū)間為10ms,共80個采樣點。每隔10ms計算一次短時能量和及過零點數(shù)。短時能量和:
其中:n為一個樣本區(qū)間語音的采樣點數(shù)(80),A(k)為一維語音信號的離散函數(shù),W(k)為窗函數(shù)。當采樣得到的短時能量和大于一定閾值時,就認定此時語音已經(jīng)開始。只要短時能量和低于平均能量的1/20就可以認定此時已經(jīng)是語音信號的終點了。
3.3 語音特征參數(shù)的提取和計算
輸入的模擬語音信號首先通過TLC320AD50C內(nèi)的抗混迭濾波器,然后由TLC320AD50C內(nèi)的ADC采樣和量化,接下來很重要的一環(huán)就是特征參數(shù)的提取。
對特征參數(shù)的要求:能有效地代表語音特征,且具有很好的區(qū)分性;各階參數(shù)之間有良好的獨立性;以及特征參數(shù)要計算方便等,以保證語音識別的實時實現(xiàn)。本系統(tǒng)選擇線性預(yù)測倒譜系數(shù)(LPCC)作為語音識別的參數(shù)。線性預(yù)測編碼(LPC)[3]是目前眾多特征提取方法中的一種, 主要特點是運算簡單,易于實現(xiàn)代碼的優(yōu)化,運算速度快。
定義線性預(yù)測模型為:
為輸入信號的Z變換)則其中a1~am即為系統(tǒng)所求的特征矢量。該系統(tǒng)為每樣本區(qū)間信號計算出12階LPCC系數(shù),加上短時能量和作為以后的識別參數(shù)。以上算法是用TMS320VC5402的匯編語言實現(xiàn)的定點算法,可以在560μs內(nèi)完成,滿足系統(tǒng)實時性的需求。
3.4 語音的壓縮編碼與解碼
本系統(tǒng)對語音信號采用8 kHz采樣頻率,精度為16b,數(shù)據(jù)傳輸率為128 kb/s的方式處理。因而采用ADPCM算法[4]實現(xiàn)對語音的編碼和解碼非常方便,IMA-ADPCM(ADPCM,Adaptive DifferentialPulse Code Modulation),是一種針對16b聲音波形數(shù)據(jù)的一種有損壓縮算法,他將聲音流中每次采樣的16b數(shù)據(jù)以4b存儲,所以壓縮比為1∶4。而壓縮/ 解壓縮算法非常的簡單,所以是一種低空間消耗,高質(zhì)量聲音獲得的好途徑。將采集到的語音樣本壓縮到32 kb/s,可以保持清晰的音質(zhì),同時大大降低存儲需求。
3.5 參數(shù)模板的管理
經(jīng)上述處理后的語音參數(shù)和ADPCM編碼保存在芯片AT29C020當中,芯片AT29C020為ATM公司生產(chǎn)的一款2-megabit 256k×8b的Flash Memory,是非易失存儲器。這樣做的目的是為了使系統(tǒng)能脫離PC機獨立工作。為了合理利用這有限的存儲資源,同時實現(xiàn)快速的模板搜索,采用以扇區(qū)為單位的管理系統(tǒng),每扇區(qū)的格式固定,采用了順序表的方法進行管理。
3.6 模式識別動態(tài)時間歸整(DTW)[5]
本系統(tǒng)采用動態(tài)時間歸整(DTW)算法完成模板的匹配。動態(tài)時間歸整(DTW)算法和隱含馬可夫模型(HMM)是目前應(yīng)用的比較廣泛的兩種模式識別算法。 DTW算法是一種模板匹配的算法,在孤立詞語音識別中,他是最為簡單有效的算法?紤]了個人說話時間上的差別,即對于同一個詞,不同人在不同時刻說的時間長度上的不同做了考慮,解決了發(fā)音長短不一的匹配問題,是語音識別中出現(xiàn)較早,較為經(jīng)典的一種算法。
設(shè)參考模板特征矢量序列為A={a1,a2,…,aj},輸入語音特征矢量序列為B={b1,b2,…,bk},j≠k。DTW算法就是要尋找一個最佳的時間規(guī)整函數(shù),使得語音輸入B的時間軸k映射到參考模板A的時間軸j上總的累計失真最小。本系統(tǒng)的DTW算法也是用定點匯編程序?qū)崿F(xiàn),所以運算速度較快。
3.7 語音模板的訓(xùn)練
能否獲得精確可靠的模板是運用DTW算法進行正確語音識別的關(guān)鍵。模板的好壞,直接影響系統(tǒng)的識別能力。系統(tǒng)為每個語音命令設(shè)置3個模板的預(yù)留空間,每個命令可以有3個模板參與識別。識別結(jié)果取其中的最接近者或平均值,這樣可以盡量適應(yīng)說話人語氣語調(diào)的變化,大大提高了一次識別率。
4 結(jié)語
以本系統(tǒng)為基礎(chǔ),成功地開發(fā)了一種智能聲控門禁實驗系統(tǒng)。經(jīng)過大量試驗表明,該系統(tǒng)穩(wěn)定可靠,正確識別率超過95%,系統(tǒng)平均響應(yīng)時間小于0.5s。系統(tǒng)成本低,是一種實用的語音識別裝置。
<!--→參考文獻CH(開始)-->





