【正文】
stem that can meet the various needs of people is more possible to past three decades, the voice recognition in the field of puter, information processing, munications and electronic systems, automatic control has increasingly wide range of applications.Speech recognition by the speaker39。 語音識別簡介 4167。 語音識別的分類 4167。 聲音的預(yù)處理 6167。 分幀處理 6167。 過零率 6167。 過零率和音量積譜 8167。 特征參數(shù)提取 10167。 用MATLAB實(shí)現(xiàn)LPC系數(shù)的計(jì)算 14167。 DTW算法原理 14167。 MATLAB上的GUI設(shè)計(jì) 18第3章 下位機(jī)設(shè)計(jì) 20167。 小車總體框圖 20167。 小車硬件設(shè)計(jì) 20167。 驅(qū)動電路設(shè)計(jì) 23167。 小車軟件設(shè)計(jì) 24167。 部分主程序 25167。近二三十年來,語音識別在計(jì)算機(jī)、信息處理、通信與電子系統(tǒng)、自動控制等領(lǐng)域中有著越來越廣泛的應(yīng)用。使用語音作為人機(jī)交互的途徑對于使用者來說是最自然的一種方式,同時(shí)設(shè)備的小型化也要求省略鍵盤以節(jié)省體積。語音識別按說話人的講話方式可分為孤立詞(Isolated Word)識別、連接詞(Connected Word)識別和連續(xù)語音(Continuous Speech)識別。連接詞語音識別支持一個(gè)小的語法網(wǎng)絡(luò),其內(nèi)部形成一個(gè)狀態(tài)機(jī),可以實(shí)現(xiàn)電話語音查詢、航空定票等系統(tǒng)。從識別對象的類型來看,語音識別可以分為特定人(Speaker Dependent)語音識別和非特定人(Speaker Independent)語音識別。實(shí)際上,非特定人語音識別的初始識別率往往都比較低,一般都要求用戶花一定的時(shí)間對系統(tǒng)進(jìn)行訓(xùn)練,將系統(tǒng)的參數(shù)進(jìn)行一定的自適應(yīng)調(diào)整,才能使識別率達(dá)到滿意的程度。本設(shè)計(jì)是語音識別在控制領(lǐng)域的一個(gè)很好實(shí)現(xiàn),它將原本需要手工操作的工作用語音來方便地完成。上位機(jī)利用PC上MATLAB強(qiáng)大的數(shù)學(xué)計(jì)算能力,進(jìn)行語音輸入、端點(diǎn)監(jiān)測、特征參數(shù)提取、匹配、串口控制等工作,根據(jù)識別到的不同語音通過PC串口向下位機(jī)發(fā)送不同的指令。該設(shè)計(jì)對語音識別的現(xiàn)有算法進(jìn)行了驗(yàn)證和實(shí)現(xiàn),并對端點(diǎn)檢測和匹配算法進(jìn)行了些許改進(jìn)。上面設(shè)置了串口選擇框、錄音開始按鈕、語音識別結(jié)果框等。本設(shè)計(jì)達(dá)到了預(yù)期目標(biāo),實(shí)現(xiàn)了所期望的功能效果。上位機(jī)利用PC上MATLAB強(qiáng)大的數(shù)學(xué)計(jì)算能力,進(jìn)行語音的輸入、端點(diǎn)監(jiān)測、特征參數(shù)提取、匹配、識別、串口控制等工作,根據(jù)識別到的不同語音通過PC串口向下位機(jī)發(fā)送不同的指令。PC機(jī)和小車之間通過串口無線傳輸模塊進(jìn)行數(shù)據(jù)傳輸。上位機(jī)的設(shè)計(jì)基于MATLAB平臺,利用MATLAB強(qiáng)大的數(shù)學(xué)計(jì)算能力,進(jìn)行語音的輸入、預(yù)處理、端點(diǎn)監(jiān)測、特征參數(shù)提取、匹配、識別、串口控制等工作。 語音識別簡介167。便捷時(shí)尚成為當(dāng)代人們的追求目標(biāo)。近二三十年來,語音識別在計(jì)算機(jī)、信息處理、通信與電子系統(tǒng)、自動控制等領(lǐng)域中有著越來越廣泛的應(yīng)用。使用語音作為人機(jī)交互的途徑對于使用者來說是最自然的一種方式,同時(shí)設(shè)備的小型化也要求省略鍵盤以節(jié)省體積。167。孤立詞識別是指說話人每次只說一個(gè)詞或短語,每個(gè)詞或短語在詞匯表中都算作一個(gè)詞條,一般用在語音電話撥號系統(tǒng)中。連續(xù)語音識別是指對說話人以日常自然的方式發(fā)音,通常特指用于語音錄入的聽寫機(jī)。從識別對象的類型來看,語音識別可以分為特定人(Speaker Dependent)語音識別和非特定人(Speaker Independent)語音識別。實(shí)際上,非特定人語音識別的初始識別率往往都比較低,一般都要求用戶花一定的時(shí)間對系統(tǒng)進(jìn)行訓(xùn)練,將系統(tǒng)的參數(shù)進(jìn)行一定的自適應(yīng)調(diào)整,才能使識別率達(dá)到滿意的程度。目前的連續(xù)語音識別大多是基于HMM(隱馬爾可夫模型)框架,并將聲學(xué)、語言學(xué)的知識統(tǒng)一引入來改善這個(gè)框架,其硬件平臺通常是功能強(qiáng)大的工作站或PC機(jī)。 聲音錄入本設(shè)計(jì)利用PC上的話筒口進(jìn)行聲音錄入。wavrecord是MATLAB的專有聲音錄入函數(shù),他有一下三種調(diào)用方式:(1) y = wavrecord(n,Fs)(2) y = wavrecord(n,Fs,ch)(3) y = wavrecord(n,Fs,39。)其中n代表聲音錄入的總采樣數(shù)。ch代表聲音錄入采用的通道數(shù),當(dāng)ch為1時(shí)為單聲道,當(dāng)ch為2時(shí)為立體聲。double39。single39。int1639。uint839。即:y=wavrecord(50000,22000)。 聲音的預(yù)處理167。在計(jì)算短時(shí)能量之前應(yīng)用該濾波器,還可以起到消除直流漂移、抑制隨機(jī)噪聲和提升清音部分能量的效果。 分幀處理在計(jì)算各個(gè)系數(shù)之前要先將語音信號作分幀處理。167。在語音識別系統(tǒng)中,正確、有效地進(jìn)行端點(diǎn)檢測不僅可以減少計(jì)算量和縮短處理時(shí)間,而且能排除無聲段的噪聲干擾、提高語音識別的正確率。除此之外, 在語音合成、 編碼等系統(tǒng)中,高效的端點(diǎn)檢測也直接影響甚至決定著系統(tǒng)的主要性能。167。一般而言,噪聲的過零率大于氣音的過零率,而氣音的過零率又大于有聲音的過零率。如下,圖21展示了沒有平移前的過零譜圖,圖22展示了平移后的過零譜圖。圖21 平移前的過零譜圖22 平移后的過零譜167。話音的能量遠(yuǎn)比噪聲的能量要大,故可用能量來區(qū)分是靜音還是由話音。音量譜如圖23所示:圖23 音量譜167。端點(diǎn)檢測算法常用的是由語音能量和過零率組合的有雙門限法,以及短時(shí)能量和過零率的乘積構(gòu)成的能頻值法。圖24 過零音量積譜167。這里采用的是第二種方法,通過能量和過零率的乘積構(gòu)成的能頻值來判斷語音的端點(diǎn)。首先根據(jù)過零率和音量積設(shè)定一個(gè)較高的門限T H , 若譜大于T H ,則可確定2個(gè)端點(diǎn)A、 B, 并可認(rèn)為這 2個(gè)端點(diǎn)之間是語音信號, 這樣相當(dāng)于完成初判。判斷結(jié)果如圖25所示:圖25 端點(diǎn)檢測出的語音波形167。 特征參數(shù)概述對于特征參數(shù),有多種參數(shù)可供選取?;舅枷胧牵阂粋€(gè)語音信號的抽樣值可以用過去的若干個(gè)抽樣值的線性組合來逼近。人的發(fā)音器官可以用若干段前后連接的聲管進(jìn)行模擬,這就是所謂的聲管模型。全極點(diǎn)線性預(yù)測模型(LPC)可以對聲管模型進(jìn)行很好的描述,這里信號的激勵(lì)源是由肺部氣流的沖擊引起的,聲帶可以有周期振動也可以不振動,分別對應(yīng)濁音(Vowel)和清音(Consonant),而每段聲管則對應(yīng)一個(gè)LPC模型的極點(diǎn)。LPC是語音分析的重要手段,它能很好地進(jìn)行譜估計(jì),即可作為語音特征的參數(shù)。 ………………………………上式表示p個(gè)方程構(gòu)成的方程組,未知數(shù)為p個(gè)。由基于自相關(guān)的遞推求解公式求解,也就是所謂的Durbin算法得:…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………公式中,上標(biāo)表示第次迭代,每次迭代只計(jì)算和更新 直到時(shí),結(jié)束迭代。這里x為一幀語音信號,n為計(jì)算LPC參數(shù)的階數(shù)。2. 線性預(yù)測倒譜系數(shù)(LPCC)在語音識別系統(tǒng)中,很少直接使用LPC系數(shù),而是由LPC系數(shù)推導(dǎo)出另一種參數(shù):線性預(yù)測倒譜系數(shù)(LPCC)。在實(shí)際運(yùn)作中大多數(shù)語音識別系統(tǒng)都會采用倒譜參數(shù)來作為有關(guān)距離的度量。在實(shí)際計(jì)算中,當(dāng)序列x(n)為最小相位的情況下,可以利用序列x(n)及其倒譜系數(shù)c(n)的遞推關(guān)系來簡化計(jì)算?!?. Mel尺度倒譜系數(shù)(MFCC)LPC模型是基于發(fā)音模型建立的,LPCC系數(shù)也是一種基于合成的參數(shù)。實(shí)際上,人的聽覺系統(tǒng)是一個(gè)特殊的非線性系統(tǒng),它響應(yīng)不同頻率信號的靈敏度是不同的,基本上是一個(gè)對數(shù)的關(guān)系。大量的研究表明,MFCC參數(shù)能夠比LPCC參數(shù)更好地提高系統(tǒng)的識別性能。由于語音信號在時(shí)域上的變化快速而不穩(wěn)定,所以通常都將它轉(zhuǎn)換到頻域上來觀察,此時(shí)它的頻譜會隨著時(shí)間作緩慢的變化。再將每幀的頻譜參數(shù)通過一組N 個(gè)( N 一般為20 ~ 30 個(gè))三角形帶通濾波器所組成的Mel頻率濾波器,將每個(gè)頻帶的輸出取對數(shù),求出每一個(gè)輸出的對數(shù)能量(log energy)Ek,k =1,2,... N。MFCC參數(shù)的計(jì)算是以“bark”為其頻率基準(zhǔn)的,它和線性頻率的轉(zhuǎn)換關(guān)系是:…………………………………………………MFCC參數(shù)也是按幀計(jì)算的。這需要在計(jì)算之前先在語音的頻譜范圍內(nèi)設(shè)置若干個(gè)帶通濾波器:…………………………MFCC參數(shù)的計(jì)算通常采用如下的流程:(1) 首先確定每一幀語音采樣序列的點(diǎn)數(shù)。(2)計(jì)算通過M個(gè)后所得的功率值,即計(jì)算和在 各離散頻率點(diǎn)上乘積之和,得到M個(gè)參數(shù)。(4)對計(jì)算其離散余弦變換,得到。167。在MATLAB中利用lpc函數(shù)計(jì)算LPC系數(shù),其語法為:a = lpc(x,n)。通常x為240點(diǎn)或256點(diǎn)的數(shù)據(jù),n取10~12,對語音識別來說就已經(jīng)足夠。 語音識別中的模式匹配167。DTW算法由于沒有一個(gè)有效地用統(tǒng)計(jì)方法進(jìn)行訓(xùn)練的框架,也不容易將低層和頂層的各種知識用到語音識別算法中,因此在解決大詞匯量、連續(xù)語音、非特定人語音識