基于DSP的語(yǔ)音識別計算器電路設計
隨著(zhù)電子技術(shù)的高速發(fā)展,現代普通民用計算器在保留基本的加減乘除等運算外,加入了大量如三角函數、冪函數等比較復雜的運算。但是其基本的操作沒(méi)有發(fā)生變化,依然是運用手指操作,對于需要進(jìn)行實(shí)時(shí)數字計算的一些特殊人群(殘疾人士)或是在一些特殊場(chǎng)合在無(wú)法手動(dòng)操作計算器的情況下,用加入了語(yǔ)音識別模塊的計算器來(lái)進(jìn)行實(shí)時(shí)數字計算就有相當的必要。
語(yǔ)音識別技術(shù)是人機最自然、最簡(jiǎn)潔的交流方式,它就是讓機器能夠自動(dòng)識別并理解說(shuō)話(huà)人要表達的意思,將語(yǔ)音信號轉變?yōu)檎_的文本或者命令的高科技技術(shù)。根據實(shí)際的應用,語(yǔ)音識別可以分為:特定人與非特定人的識別、孤立詞與連續詞的識別、中小詞匯量與無(wú)限詞匯量的識別。
考慮到成本及使用范圍因素,本文中應用的是基于TMS320VC5509 DSP的非特定人、孤立詞、小詞匯量的語(yǔ)音識別系統。通過(guò)實(shí)際測試,使用該DSP的語(yǔ)音識別系統有著(zhù)較高的實(shí)時(shí)性、識別率,基于該系統的計算器對實(shí)時(shí)數字計算有較高準確性,基本能解決特殊群體和特殊地點(diǎn)使用計算器困難的情況。
1 系統硬件設計
1.1 語(yǔ)音識別系統
語(yǔ)音識別的基本原理框圖如圖l所示。語(yǔ)音識別過(guò)程主要包括語(yǔ)音信號前處理、特征提取、模式匹配等部分。語(yǔ)音信號輸入之后,預處理和數字化是進(jìn)行語(yǔ)音識別的前提條件。特征提取是進(jìn)行語(yǔ)音信號訓練和識別必不可少的步驟,本文采用的是提取每幀的Mel系數的倒譜參數作為語(yǔ)音信號的特征值。模板匹配算法目前有DTW算法、HMM隱馬爾科夫模型、ANN人工神經(jīng)網(wǎng)絡(luò )等。本文采用HMM隱馬爾科夫模型的方法,提取出的特征值存入參考模式庫中,用來(lái)匹配待識別語(yǔ)音信號的特征值。匹配計算是進(jìn)行語(yǔ)音識別的核心部分,由待識別人的語(yǔ)音經(jīng)過(guò)特征提取后,與系統訓練時(shí)產(chǎn)生的模板進(jìn)行匹配,在說(shuō)話(huà)人辨認中,取與待識別語(yǔ)音相似度最大的模型所對應的語(yǔ)音作為識別結果。
1.2 系統硬件結構
圖2為系統硬件結構框圖。此系統的核心器件是TI公司的TMS320VC5509定點(diǎn)DSP。在本系統中,它不僅是語(yǔ)音識別的核心,還負責計算器的運算部分。TMS320VC5509是系統的運算處理單元,具有2個(gè)乘法器(MAC),4個(gè)累加器(ACC);40位、16位的算術(shù)邏輯單元(ALU)各一個(gè),這大大增強了DSP的運算能力;指令字長(cháng)不只單一的16位,可擴展到最高48位,數據字長(cháng)16位;可通過(guò)USB接口對TMS320VC5509燒寫(xiě)程序而不必借助仿真器。正是基于這些優(yōu)點(diǎn),選擇該器件可節省開(kāi)發(fā)資金,減小電路板面積。DSP與TLV320AIC23的接口電路如圖3所示。
TLV320AIC23是Tl公司的一款低成本、低功耗的音頻編解碼器(CODEC),在本系統中負責采集語(yǔ)音信號。它與本系統相關(guān)的性能參數有:支持8~96 kHz可調采樣率;可調1~5dB的完整緩存放大系統等。圖4是TLV320AIC23的電路圖。
AM29LV800B存儲器又稱(chēng)閃存(Flash),它具有在線(xiàn)電擦寫(xiě)、低功耗、大容量等特點(diǎn),其存儲容量為8Mbit。上電后,DSP從外部Flash加載并執行程序代碼,使系統能夠脫機運行。在本系統中,它主要用來(lái)存儲程序代碼、語(yǔ)音模型、以及壓縮后的語(yǔ)音數據。
HY57V641620同步動(dòng)態(tài)存儲器(SDRAM),容量為4 M×16 bit。作為RAM的擴展,它大大增強了DSP的存儲與運算能力。在系統初始化的時(shí)候,用來(lái)裝載放在Flash中的聲學(xué)模型。這樣在語(yǔ)音識別的過(guò)程中可以通過(guò)片外的SDRAM來(lái)訪(fǎng)問(wèn)聲學(xué)模型,比直接訪(fǎng)問(wèn)Flash來(lái)獲取聲學(xué)模型數據要快。LCD顯示器用來(lái)實(shí)時(shí)顯示經(jīng)過(guò)語(yǔ)音識別后的數字、運算符號,并在得到需要顯示最終結果的提示后顯示答案。
2 系統軟件設計
2.1 系統軟件流程
圖5為系統的軟件流程。整個(gè)系統開(kāi)始運行后,初始化DSP及TLV320AIC23,以使各個(gè)寄存器的初值符合要求。在系統通過(guò)TLV320AIC23采集語(yǔ)音信號后,首先要進(jìn)行預濾波和預加重;接著(zhù)將語(yǔ)音信號進(jìn)行分幀;然后計算每幀信號的短時(shí)能量與短時(shí)平均過(guò)零率,為接下來(lái)的門(mén)限判決提供依據;利用門(mén)限判決進(jìn)行端點(diǎn)檢測后,提取每幀的Mel倒譜參數(MFCC),作為該幀信號的特征值;最后,用處理后的語(yǔ)音信號的特征值與模板進(jìn)行匹配,這一部分是系統的重點(diǎn)。以相似度最大的模板鎖對應的語(yǔ)音信號為識別結果。根據識別的結果在顯示器上顯示數字和運算符號,由運算規則得出結果并顯示。
2.2 前處理
前處理是對語(yǔ)音信號采樣、A/D轉換、預濾波和預加重、分幀等。以8 kHz和16位的采樣頻率采集的語(yǔ)音模擬信號。本系統使用帶通濾波器來(lái)濾波,上截頻率為3.4 kHz。下截頻率為60 Hz。由于語(yǔ)音信號具有極強的相關(guān)性,因此,分幀時(shí)要考慮幀重復的問(wèn)題。本文將語(yǔ)音信號以256個(gè)采樣點(diǎn)為一幀,兩頓之間的重復點(diǎn)數為80,通過(guò)一個(gè)一階的濾波器H(z)=1-a/z對采集的信號進(jìn)行處理。
端點(diǎn)檢測就是從說(shuō)話(huà)人的語(yǔ)音命令中,檢測出孤立詞的語(yǔ)音開(kāi)始和結束的始點(diǎn)。端點(diǎn)檢測是語(yǔ)音識別過(guò)程的一個(gè)重要環(huán)節,只有將孤立詞從說(shuō)話(huà)人的背景噪聲中分割出來(lái),才能夠進(jìn)一步進(jìn)行語(yǔ)音識別工作。本文采用短時(shí)能量和過(guò)零率檢測端點(diǎn)。語(yǔ)音信號的短時(shí)能量分析給出了反應其幅度變化的一個(gè)合適描述方法。
短時(shí)過(guò)零率,即指每幀內信號通過(guò)零值的次數,能夠在一定程度上反映信號的頻譜特性。一幀語(yǔ)音信號內短時(shí)平均過(guò)零率定義為:
用短時(shí)能量參數檢測結束點(diǎn),信號{x(n)}的短時(shí)能量定義為:
式中,{x(n)}為輸入信號序列。
在正式端點(diǎn)檢測開(kāi)始后,短時(shí)能量與短時(shí)過(guò)零率作為門(mén)限來(lái)判決說(shuō)話(huà)人命令字的開(kāi)始與結束;連續5幀語(yǔ)音信號超過(guò)門(mén)限值視為說(shuō)話(huà)人命令字的開(kāi)始,連續8幀語(yǔ)音信號低于門(mén)限值視為說(shuō)話(huà)人命令字的結束。
2.3 特征值提取
提取每幀的Mel倒譜參數(MFCC)為該幀信號的特征值。由倒譜特征是用于說(shuō)話(huà)人個(gè)性特征和說(shuō)話(huà)人識別的最有效的特征之一,它是基于人耳模型而提出的。其提取過(guò)程如下:
1)原始語(yǔ)音信號S(n)經(jīng)過(guò)預加重、加窗等處理,得到每個(gè)語(yǔ)音幀的時(shí)域信號x(n)。然后經(jīng)過(guò)離散傅里葉變換(DFT)后得到離散頻譜X(k)。
式中,N表示傅里葉變換的點(diǎn)數。 2)將離散譜X(k)通過(guò)M個(gè)Mel頻率濾波器組可得到Mel頻譜并通過(guò)對數能量的處理,得到對數頻譜S(n)。計算S(n)通過(guò)每一個(gè)濾波器的輸出,得到M個(gè)h(m)參數。

3)對所有濾波器輸出進(jìn)行對數運算,再進(jìn)一步進(jìn)行離散余弦變換(DCT),即可得到MFCC參數。

一般在Mel濾波器的選擇中。Mel濾波器組都選擇三角形的濾波器,但也可以是其他形狀,如正弦形的濾波器組等。
2.4 模板匹配(HMM算法)
本文采用隱馬爾科夫模型(HMM算法)進(jìn)行模式匹配。它將特征矢量作為模板,在語(yǔ)音識別模式匹配時(shí),對輸人的語(yǔ)音與模板庫中的模板進(jìn)行比較,最后將相似度最高的作為輸出結果。HMM算法解決由于說(shuō)話(huà)人語(yǔ)速不同和連續說(shuō)話(huà)的而帶來(lái)的失真問(wèn)題,還能大大減少運算時(shí)間,提高識別率。
隱馬爾可夫模型是一個(gè)雙重隨機過(guò)程的統計模型,其基本隨機過(guò)程是隱藏起來(lái)觀(guān)測不到的,另一個(gè)隨機過(guò)程則產(chǎn)生觀(guān)測序列。對于語(yǔ)音識別系統,觀(guān)測序列0就是矢量量化后的結果序列,模型λ就是由訓練語(yǔ)音得到的模板。語(yǔ)音的訓練過(guò)程就是產(chǎn)生模板λ的過(guò)程,而語(yǔ)音的識別過(guò)程就是求出在模板λ下,待識別語(yǔ)音的結果序列0的條件概率P[O/λ]。
由α(i)和β(i)的定義可直接得到:P[O/λ]=αt(i)βt(i)。而語(yǔ)音的訓練算法則較復雜,目前都采用迭代的方法得到a和b的近似解,其迭代公式如:

在實(shí)際應用中,僅對詞條的少數次發(fā)音進(jìn)行訓練的語(yǔ)音識別系統。不可能對各種復雜語(yǔ)境下的不同發(fā)音都有較高的識別率。某些較陳舊的識別算法如動(dòng)態(tài)時(shí)間彎曲法,只能把單詞的多次訓練發(fā)音形成多個(gè)模板,造成模板數量成倍增加,影響系統的實(shí)時(shí)性。而HMM能夠對一個(gè)詞的多個(gè)訓練序列進(jìn)行有效的融合而形成一個(gè)模板。當訓練發(fā)音的數量增多時(shí),只會(huì )造成訓練過(guò)程的計算量增大。而不會(huì )使識別過(guò)程的計算量有絲毫增加,這對系統的實(shí)時(shí)性是相當有利的。
3 系統測試
針對計算器的使用特點(diǎn)和環(huán)境,分別在2個(gè)地點(diǎn)測試系統的性能。1)封閉的實(shí)驗室(地點(diǎn)1),噪聲較小,采集的信號較為良好,缺點(diǎn)是有回聲。2)課間休息的教室(地點(diǎn)2),噪聲及大,干擾很強,信號的采集質(zhì)量很差。
因為整個(gè)系統的設計是實(shí)現計算器的計算功能,因此本次的實(shí)驗是在系統識別數字和運算符號等語(yǔ)音后在顯示器上顯示數學(xué)運算公式,并在識別出“等于”或“得出”2個(gè)詞組的語(yǔ)音后顯示出“=”和最后的計算結果。
在測試前預先采集5男5女共1 000個(gè)語(yǔ)音樣本(內容為數字0到100,加、減、乘、除、等于和十、百、千、萬(wàn)等基本計算所需要的數字和運算符號讀音),并且對所有樣本進(jìn)行訓練。另外找10人(4女,6男)在各實(shí)驗地點(diǎn)進(jìn)行實(shí)時(shí)測試,每人10個(gè),共100個(gè)未經(jīng)訓練的樣本。用這些樣本對系統進(jìn)行測試,其測試結果如表1所示。
評論