鄭 微,李正周,田 蕾
(重慶大學(xué)通信工程學(xué)院,重慶 400030)
語音識別技術(shù)始于20世紀(jì)50年代,經(jīng)過幾十年的發(fā)展,在技術(shù)上已經(jīng)相當(dāng)成熟。如IBM公司推出的ViaVoic軟件識別系統(tǒng),可以實現(xiàn)對英語、漢語、德語等多種語言的識別。又如Nuance Communications公司推出的Naturally Speaking語音識別軟件也得到了廣大用戶的認(rèn)可。我國的語音識別工作起步相對較晚,但近年來發(fā)展較為迅速。目前,我國在語音識別方面的水平也基本上與國外同步,并且取得了一系列相應(yīng)的成果。如清華大學(xué)電子工程系研制的非特定人漢語數(shù)碼串連續(xù)語音識別系統(tǒng),中國科學(xué)院自動化所研制的“天語”中文語音系列產(chǎn)品等。
在語音信號的處理過程中,由于數(shù)據(jù)運(yùn)算量比較龐大、算法較為復(fù)雜,傳統(tǒng)的微處理器(如,單片機(jī)、PLC等)已經(jīng)無法滿足在實時性很高的條件下對于語音信號的處理。另外,傳統(tǒng)微處理器的結(jié)構(gòu)單一也在一定程度上限制了整個人機(jī)交互系統(tǒng)的功能,使得最終的產(chǎn)品功能單調(diào),集中性不強(qiáng)?;谝陨蠋c(diǎn),本文探索利用DSP芯片設(shè)計語音命令智能交互系統(tǒng),以實現(xiàn)與遠(yuǎn)程智能設(shè)備的交互[1,2]。
整個系統(tǒng)硬件結(jié)構(gòu)框圖如圖1所示,主要包括TMS320VC5509 DSP、晶振、電源、JTAG 接口、鍵盤、LCD 顯示模塊、數(shù)據(jù)存儲器SDRAM、程序存儲器FLASH、音頻編解碼芯片TLV320AIC23B、無線收發(fā)模塊PTR2000(nRF401)。核心處理芯片采用TI公司TMS320VC5509芯片,該芯片具有低功耗、高速率、高性價比等優(yōu)點(diǎn),廣泛應(yīng)用于語音處理、便攜式設(shè)備終端信號處理等領(lǐng)域。語音編解碼芯片TLV320AIC23B,采用了先進(jìn)的Sigma-Delta過采樣技術(shù),可以在8~96 kHz采樣率范圍內(nèi)提供16位、20位、24位和32位采樣,ADC和DAC的信噪比分別可達(dá)90 dB和100 dB。該芯片已廣泛地應(yīng)用于各種音頻信號處理領(lǐng)域。無線部分采用基于nRF401無線通信芯片設(shè)計的PTR2000模塊,該模塊發(fā)射功耗低、靈敏度高、外圍接口簡單,是目前低功耗無線電傳輸?shù)睦硐脒x擇[3,4]。
系統(tǒng)上電之后,首先測試人員通過麥克風(fēng)或線性輸入的方式將語音信號傳遞給音頻編解碼芯片TLV320AIC23B,并通過MCBSP串口傳送給系統(tǒng)核心處理芯片(DSP)。然后,DSP在接收到語音控制信號之后采用相應(yīng)的算法進(jìn)行分析,識別出語音控制命令。最后,系統(tǒng)將識別出的結(jié)果一部分傳遞給LCD顯示模塊以便觀察,另一部分傳遞給無線收發(fā)模塊,以實現(xiàn)與智能設(shè)備的遠(yuǎn)程交互。此外,通過鍵盤可以查詢系統(tǒng)的工作狀態(tài),并控制顯示電路進(jìn)行顯示,以達(dá)到實時監(jiān)控系統(tǒng)工作的目的。
圖1 系統(tǒng)硬件結(jié)構(gòu)圖Fig 1 Hardware structure of the system
目前常用的語音識別算法有動態(tài)時間規(guī)整(DTW)技術(shù)、矢量量化(VQ)技術(shù)、隱馬爾可夫模型(HMM)、基于人工神經(jīng)網(wǎng)絡(luò)(ANN)的識別方法[5]。在孤立詞語的識別中,最為簡單有效的方法是采用DTW算法,該算法成功地運(yùn)用動態(tài)規(guī)劃思想解決了發(fā)音長短不一的模板匹配問題。在孤立詞語的識別方面與其他算法的識別效果相差很小,而且由于DTW算法計算量較小,無需前期的長期訓(xùn)練,便于算法的移植,并且易于在微處理器上實現(xiàn)并保證其實時性[7]。本設(shè)計采用DTW算法實現(xiàn),其識別原理圖如圖2所示。
圖2 語音識別原理圖Fig 2 Principle diagram of voice recognition
預(yù)處理部分主要包括:分幀和預(yù)加重兩部分。分幀主要是利用語音信號短時間內(nèi)頻譜的平穩(wěn)特性,將一段語音信號劃分為若干連續(xù)的時間小段來進(jìn)行處理。預(yù)加重的主要目的是消除低頻干擾,對有用的高頻部分進(jìn)行加強(qiáng),一般常用一個高通濾波器進(jìn)行預(yù)加重。
對于特征提取部分主要包括:端點(diǎn)檢測和MFCC系數(shù)生成。利用式(1)~式(3)實現(xiàn)對于語音信號的端點(diǎn)檢測
公式(1)表示相鄰2個時間點(diǎn)的語音信號的幅度值經(jīng)過零值,公式(2)表示相鄰的語音信號幅值之差大于某固定門限(這里delta取經(jīng)驗值為語音信號最大幅值的0.02),公式(3)實現(xiàn)對于語音信號短時能量的累加,以上的整個檢測過程稱為端點(diǎn)檢測。利用公式(4)生成MFCC系數(shù),公式中bmel表示mel濾波器組系數(shù),bDCT表示其DCT系數(shù)。
對于語音識別部分,采用比較模板特征與輸入語音的特征的相似程度來實現(xiàn)。根本思想是尋找一個最佳函數(shù)?(in),使得該函數(shù)滿足模板特征與輸入語音的特征的累積距離最短[7],如公式(5)所示
其中,(d(T(in),R(?(in))表示待測矢量第in幀與訓(xùn)練模板中第in幀之間的距離。
整個系統(tǒng)的軟件實現(xiàn)流程框圖如圖3所示。首先系統(tǒng)使用片上支持庫初始化語音編解碼芯片、存儲器、無線收發(fā)模塊、時鐘等片上資源。然后打開多通道緩沖串口完成對語音信號的采集,并將采集到的信號傳遞給DSP芯片,以完成語音信號的端點(diǎn)檢測、訓(xùn)練模板生成等操作。在訓(xùn)練模板生成之后,通過DSP的EMIF口將訓(xùn)練模板存儲到存儲器中,然后利用MCBSP串口實現(xiàn)對于語音信號的再次采樣、特征提取等操作。之后將訓(xùn)練模板中的特征分量與本次采樣的結(jié)果進(jìn)行比較,以達(dá)到語音命令識別的目的[8]。
語音編解碼芯片TLV320AIC23芯片與DSP通過I2C總線互聯(lián)。系統(tǒng)啟動語音芯片時,首先利用I2C總線完成對于語音芯片控制寄存器的配置,例如:設(shè)置語音采樣速率、音量調(diào)節(jié)、增益倍數(shù)等。在程序的具體實現(xiàn)中DSP主要采用CSL片上支持庫來完成對于語音芯片的配置。然后通過MCBSP串口完成對于語音編解碼芯片的讀寫操作。
同步動態(tài)存儲器大小為4M×16 bit,通過DSP的EMIF口與DSP實現(xiàn)雙向通信,可尋址范圍為0x40 000~0x7fffff。主要實現(xiàn)對于訓(xùn)練模板的存儲。對于擴(kuò)展存儲器的接口配置方法與AIC類似,這里不贅述。
無線收發(fā)模塊采用的是PTR2000模塊,它是一種超小型、低功耗、高速率的無線收發(fā)數(shù)據(jù)傳輸模塊,使用的是nRF401無線通信芯片作為內(nèi)核芯片。整體是一個封裝好的模塊結(jié)構(gòu),不需要進(jìn)行具體的配置,使用起來極其簡單方便。整個模塊有:VCC電源引腳、GND電源地、PWR低功耗控制、TXEN收發(fā)模式切換、CS頻道選擇引腳、DO/DI數(shù)據(jù)輸入輸出共7個引腳。使用時僅需要簡單地通過DSP的IO口設(shè)置其收發(fā)方式、頻道等簡單的配置引腳就可以保證其正常工作。
整個軟件設(shè)計流程的片上外設(shè)均采用DSP片上支持庫來編寫,使用了一組標(biāo)準(zhǔn)化的方法來訪問和控制片上資源,整個系統(tǒng)的可裁剪性較好,易于移植。軟件流程如圖3。
圖3 系統(tǒng)的軟件實現(xiàn)流程框圖Fig 3 Flow chart of system software realization
如圖4所示為輸入語音命令和模板信號動態(tài)波形??梢钥吹秸Z音信號的兩次比較結(jié)果是有很大差異的,然而,利用語音信號在短時時間內(nèi)的語音頻譜的平穩(wěn)性和不同發(fā)音在信號頻譜分析中出現(xiàn)的先后順序,是可以有效地將待測信號檢測出來的。表1是系統(tǒng)檢測仿真實驗結(jié)果,可以看出:數(shù)字2對應(yīng)著2號檢測結(jié)果,8對應(yīng)著8號檢測結(jié)果。這里取差異最小的檢測值所對應(yīng)的模板信號為檢測結(jié)果。實驗結(jié)果證明了此方法的可行性。
圖4 輸入信號與模板信號動態(tài)波形圖Fig 4 Dynamic waveforms of input sygnal and template signal
表1 待測信號實驗檢測結(jié)果Tab 1 Experimental results of the tested signal
在實際應(yīng)用中,利用語音命令來實現(xiàn)與設(shè)備的交互,讓機(jī)器根據(jù)人的指令完成相應(yīng)的操作有著廣泛的實用意義。智能人機(jī)交互系統(tǒng)可以克服在一些比較復(fù)雜的環(huán)境下,人們無法與設(shè)備直接接觸來控制設(shè)備的情況,可以很好地滿足復(fù)雜工業(yè)現(xiàn)場的需要。整個系統(tǒng)的設(shè)計基于DSP強(qiáng)大的實時運(yùn)算功能和豐富的片上外設(shè)資源,采用片上支持庫(CSL)方便地實現(xiàn)對于液晶顯示、AIC、外部擴(kuò)展存儲器、無線收發(fā)等模塊的控制,完成對于語音命令的采集、處理,以達(dá)到與遠(yuǎn)程智能設(shè)備交互的目的。整個系統(tǒng)的設(shè)計實時性較好、功能集成度較高,具有一定的通用性。另外,由于系統(tǒng)核心處理芯片具有豐富的片上資源以及擴(kuò)展接口,易與其他設(shè)備互聯(lián)同時也方便整個系統(tǒng)的升級。
[1]Hok,Yang T Y,Par K K J,et al.Robustvoice activity detection algorithm for estimating noise spectrum[J].IEEE Electronics Letters,2002,36(2):180 -181.
[2]黃程韋,趙 艷,于寅驊,等.用語音情感的特征分析與識別的研究[J].電子與信息學(xué)報,2011(33):112-116.
[3]宋 輝,劉 加.基于微分麥克風(fēng)陣列的自適應(yīng)語音增強(qiáng)算法研究及 DSP實現(xiàn)[J].自動化學(xué)報,2009,35(9):1240-1244.
[4]曹曉琳,吳 平,丁鐵夫.基于DSP的語音處理系統(tǒng)設(shè)計[J].儀器儀表學(xué)報,2005,26(8):583 -588.
[5]Campbell J P.Speaker recognition:A tutorial[C]//Proc of IEEE,1997:1437-1462.
[6]姜干新,陳 偉.嵌入式語音識別系統(tǒng)中的DTW在線并行算法[J].計算機(jī)應(yīng)用研究,2010,27(3):977 -980.
[7]Rohit S,Umesh S.A shift-based approach to speaker normalization using non-linear frequeney scaling model[J].Speech Communication,2008,50(3):191 -202.
[8]郭良濤,黃建國,韓 晶,等.基于DSP的小型數(shù)字語音通信平臺設(shè)計[J].計算機(jī)測量與控制2009,17(6):1209 -1214.