<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于DSP的語音識別計算器電路設(shè)計

          基于DSP的語音識別計算器電路設(shè)計

          作者: 時間:2016-12-21 來源:網(wǎng)絡(luò) 收藏

          隨著電子技術(shù)的高速發(fā)展,現(xiàn)代普通民用計算器在保留基本的加減乘除等運(yùn)算外,加入了大量如三角函數(shù)、冪函數(shù)等比較復(fù)雜的運(yùn)算。但是其基本的操作沒有發(fā)生變化,依然是運(yùn)用手指操作,對于需要進(jìn)行實(shí)時數(shù)字計算的一些特殊人群(殘疾人士)或是在一些特殊場合在無法手動操作計算器的情況下,用加入了語音識別模塊的計算器來進(jìn)行實(shí)時數(shù)字計算就有相當(dāng)?shù)谋匾?br> 語音識別技術(shù)是人機(jī)最自然、最簡潔的交流方式,它就是讓機(jī)器能夠自動識別并理解說話人要表達(dá)的意思,將語音信號轉(zhuǎn)變?yōu)檎_的文本或者命令的高科技技術(shù)。根據(jù)實(shí)際的應(yīng)用,語音識別可以分為:特定人與非特定人的識別、孤立詞與連續(xù)詞的識別、中小詞匯量與無限詞匯量的識別。
          考慮到成本及使用范圍因素,本文中應(yīng)用的是基于TMS320VC5509 DSP的非特定人、孤立詞、小詞匯量的語音識別系統(tǒng)。通過實(shí)際測試,使用該DSP的語音識別系統(tǒng)有著較高的實(shí)時性、識別率,基于該系統(tǒng)的計算器對實(shí)時數(shù)字計算有較高準(zhǔn)確性,基本能解決特殊群體和特殊地點(diǎn)使用計算器困難的情況。

          本文引用地址:http://www.ex-cimer.com/article/201612/332387.htm

          1 系統(tǒng)硬件設(shè)計
          1.1 語音識別系統(tǒng)
          語音識別的基本原理框圖如圖l所示。語音識別過程主要包括語音信號前處理、特征提取、模式匹配等部分。語音信號輸入之后,預(yù)處理和數(shù)字化是進(jìn)行語音識別的前提條件。特征提取是進(jìn)行語音信號訓(xùn)練和識別必不可少的步驟,本文采用的是提取每幀的Mel系數(shù)的倒譜參數(shù)作為語音信號的特征值。模板匹配算法目前有DTW算法、HMM隱馬爾科夫模型、ANN人工神經(jīng)網(wǎng)絡(luò)等。本文采用HMM隱馬爾科夫模型的方法,提取出的特征值存入?yún)⒖寄J綆熘校脕砥ヅ浯R別語音信號的特征值。匹配計算是進(jìn)行語音識別的核心部分,由待識別人的語音經(jīng)過特征提取后,與系統(tǒng)訓(xùn)練時產(chǎn)生的模板進(jìn)行匹配,在說話人辨認(rèn)中,取與待識別語音相似度最大的模型所對應(yīng)的語音作為識別結(jié)果。


          1.2 系統(tǒng)硬件結(jié)構(gòu)
          圖2為系統(tǒng)硬件結(jié)構(gòu)框圖。此系統(tǒng)的核心器件是TI公司的TMS320VC5509定點(diǎn)DSP。在本系統(tǒng)中,它不僅是語音識別的核心,還負(fù)責(zé)計算器的運(yùn)算部分。TMS320VC5509是系統(tǒng)的運(yùn)算處理單元,具有2個乘法器(MAC),4個累加器(ACC);40位、16位的算術(shù)邏輯單元(ALU)各一個,這大大增強(qiáng)了DSP的運(yùn)算能力;指令字長不只單一的16位,可擴(kuò)展到最高48位,數(shù)據(jù)字長16位;可通過USB接口對TMS320VC5509燒寫程序而不必借助仿真器。正是基于這些優(yōu)點(diǎn),選擇該器件可節(jié)省開發(fā)資金,減小電路板面積。DSP與TLV320AIC23的接口電路如圖3所示。

          TLV320AIC23是Tl公司的一款低成本、低功耗的音頻編解碼器(CODEC),在本系統(tǒng)中負(fù)責(zé)采集語音信號。它與本系統(tǒng)相關(guān)的性能參數(shù)有:支持8~96 kHz可調(diào)采樣率;可調(diào)1~5dB的完整緩存放大系統(tǒng)等。圖4是TLV320AIC23的電路圖。


          AM29LV800B存儲器又稱閃存(Flash),它具有在線電擦寫、低功耗、大容量等特點(diǎn),其存儲容量為8Mbit。上電后,DSP從外部Flash加載并執(zhí)行程序代碼,使系統(tǒng)能夠脫機(jī)運(yùn)行。在本系統(tǒng)中,它主要用來存儲程序代碼、語音模型、以及壓縮后的語音數(shù)據(jù)。
          HY57V641620同步動態(tài)存儲器(SDRAM),容量為4 M×16 bit。作為RAM的擴(kuò)展,它大大增強(qiáng)了DSP的存儲與運(yùn)算能力。在系統(tǒng)初始化的時候,用來裝載放在Flash中的聲學(xué)模型。這樣在語音識別的過程中可以通過片外的SDRAM來訪問聲學(xué)模型,比直接訪問Flash來獲取聲學(xué)模型數(shù)據(jù)要快。LCD顯示器用來實(shí)時顯示經(jīng)過語音識別后的數(shù)字、運(yùn)算符號,并在得到需要顯示最終結(jié)果的提示后顯示答案。

          2 系統(tǒng)軟件設(shè)計
          2.1 系統(tǒng)軟件流程
          圖5為系統(tǒng)的軟件流程。整個系統(tǒng)開始運(yùn)行后,初始化DSP及TLV320AIC23,以使各個寄存器的初值符合要求。在系統(tǒng)通過TLV320AIC23采集語音信號后,首先要進(jìn)行預(yù)濾波和預(yù)加重;接著將語音信號進(jìn)行分幀;然后計算每幀信號的短時能量與短時平均過零率,為接下來的門限判決提供依據(jù);利用門限判決進(jìn)行端點(diǎn)檢測后,提取每幀的Mel倒譜參數(shù)(MFCC),作為該幀信號的特征值;最后,用處理后的語音信號的特征值與模板進(jìn)行匹配,這一部分是系統(tǒng)的重點(diǎn)。以相似度最大的模板鎖對應(yīng)的語音信號為識別結(jié)果。根據(jù)識別的結(jié)果在顯示器上顯示數(shù)字和運(yùn)算符號,由運(yùn)算規(guī)則得出結(jié)果并顯示。


          2.2 前處理
          前處理是對語音信號采樣、A/D轉(zhuǎn)換、預(yù)濾波和預(yù)加重、分幀等。以8 kHz和16位的采樣頻率采集的語音模擬信號。本系統(tǒng)使用帶通濾波器來濾波,上截頻率為3.4 kHz。下截頻率為60 Hz。由于語音信號具有極強(qiáng)的相關(guān)性,因此,分幀時要考慮幀重復(fù)的問題。本文將語音信號以256個采樣點(diǎn)為一幀,兩頓之間的重復(fù)點(diǎn)數(shù)為80,通過一個一階的濾波器H(z)=1-a/z對采集的信號進(jìn)行處理。
          端點(diǎn)檢測就是從說話人的語音命令中,檢測出孤立詞的語音開始和結(jié)束的始點(diǎn)。端點(diǎn)檢測是語音識別過程的一個重要環(huán)節(jié),只有將孤立詞從說話人的背景噪聲中分割出來,才能夠進(jìn)一步進(jìn)行語音識別工作。本文采用短時能量和過零率檢測端點(diǎn)。語音信號的短時能量分析給出了反應(yīng)其幅度變化的一個合適描述方法。
          短時過零率,即指每幀內(nèi)信號通過零值的次數(shù),能夠在一定程度上反映信號的頻譜特性。一幀語音信號內(nèi)短時平均過零率定義為:

          用短時能量參數(shù)檢測結(jié)束點(diǎn),信號{x(n)}的短時能量定義為:

          式中,{x(n)}為輸入信號序列。
          在正式端點(diǎn)檢測開始后,短時能量與短時過零率作為門限來判決說話人命令字的開始與結(jié)束;連續(xù)5幀語音信號超過門限值視為說話人命令字的開始,連續(xù)8幀語音信號低于門限值視為說話人命令字的結(jié)束。
          2.3 特征值提取
          提取每幀的Mel倒譜參數(shù)(MFCC)為該幀信號的特征值。由倒譜特征是用于說話人個性特征和說話人識別的最有效的特征之一,它是基于人耳模型而提出的。其提取過程如下:
          1)原始語音信號S(n)經(jīng)過預(yù)加重、加窗等處理,得到每個語音幀的時域信號x(n)。然后經(jīng)過離散傅里葉變換(DFT)后得到離散頻譜X(k)。


          式中,N表示傅里葉變換的點(diǎn)數(shù)。 2)將離散譜X(k)通過M個Mel頻率濾波器組可得到Mel頻譜并通過對數(shù)能量的處理,得到對數(shù)頻譜S(n)。計算S(n)通過每一個濾波器的輸出,得到M個h(m)參數(shù)。


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

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

          在實(shí)際應(yīng)用中,僅對詞條的少數(shù)次發(fā)音進(jìn)行訓(xùn)練的語音識別系統(tǒng)。不可能對各種復(fù)雜語境下的不同發(fā)音都有較高的識別率。某些較陳舊的識別算法如動態(tài)時間彎曲法,只能把單詞的多次訓(xùn)練發(fā)音形成多個模板,造成模板數(shù)量成倍增加,影響系統(tǒng)的實(shí)時性。而HMM能夠?qū)σ粋€詞的多個訓(xùn)練序列進(jìn)行有效的融合而形成一個模板。當(dāng)訓(xùn)練發(fā)音的數(shù)量增多時,只會造成訓(xùn)練過程的計算量增大。而不會使識別過程的計算量有絲毫增加,這對系統(tǒng)的實(shí)時性是相當(dāng)有利的。

          3 系統(tǒng)測試
          針對計算器的使用特點(diǎn)和環(huán)境,分別在2個地點(diǎn)測試系統(tǒng)的性能。1)封閉的實(shí)驗(yàn)室(地點(diǎn)1),噪聲較小,采集的信號較為良好,缺點(diǎn)是有回聲。2)課間休息的教室(地點(diǎn)2),噪聲及大,干擾很強(qiáng),信號的采集質(zhì)量很差。
          因?yàn)檎麄€系統(tǒng)的設(shè)計是實(shí)現(xiàn)計算器的計算功能,因此本次的實(shí)驗(yàn)是在系統(tǒng)識別數(shù)字和運(yùn)算符號等語音后在顯示器上顯示數(shù)學(xué)運(yùn)算公式,并在識別出“等于”或“得出”2個詞組的語音后顯示出“=”和最后的計算結(jié)果。
          在測試前預(yù)先采集5男5女共1 000個語音樣本(內(nèi)容為數(shù)字0到100,加、減、乘、除、等于和十、百、千、萬等基本計算所需要的數(shù)字和運(yùn)算符號讀音),并且對所有樣本進(jìn)行訓(xùn)練。另外找10人(4女,6男)在各實(shí)驗(yàn)地點(diǎn)進(jìn)行實(shí)時測試,每人10個,共100個未經(jīng)訓(xùn)練的樣本。用這些樣本對系統(tǒng)進(jìn)行測試,其測試結(jié)果如表1所示。



          關(guān)鍵詞: DSP語音識

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();