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