語音識別技術(shù)原理及實(shí)用系統(tǒng)設(shè)計(jì)匯總
語音識別是以語音為研究對象,通過語音信號處理和模式識別讓機(jī)器自動識別和理解人類口述的語言。語音識別技術(shù)就是讓機(jī)器通過識別和理解過程把語 音信號轉(zhuǎn)變?yōu)橄鄳?yīng)的文本或命令的高技術(shù)。語音識別是一門涉及面很廣的交叉學(xué)科,它與聲學(xué)、語音學(xué)、語言學(xué)、信息理論、模式識別理論以及神經(jīng)生物學(xué)等學(xué)科都 有非常密切的關(guān)系。語音識別技術(shù)正逐步成為計(jì)算機(jī)信息處理技術(shù)中的關(guān)鍵技術(shù),語音技術(shù)的應(yīng)用已經(jīng)成為一個具有競爭性的新興高技術(shù)產(chǎn)業(yè)。
本文引用地址:http://2s4d.com/article/201710/368483.htm1、語音識別的基本原理
語音識別系統(tǒng)本質(zhì)上是一種模式識別系統(tǒng),包括特征提取、模式匹配、參考模式庫等三個基本單元,它的基本結(jié)構(gòu)如下圖所示:
未知語音經(jīng)過話筒變換成電信號后加在識別系統(tǒng)的輸入端,首先經(jīng)過預(yù)處理,再根據(jù)人的語音特點(diǎn)建立語音模型,對輸入的語音信號進(jìn)行分析,并抽取所需的特 征,在此基礎(chǔ)上建立語音識別所需的模板。而計(jì)算機(jī)在識別過程中要根據(jù)語音識別的模型,將計(jì)算機(jī)中存放的語音模板與輸入的語音信號的特征進(jìn)行比較,根據(jù)一定 的搜索和匹配策略,找出一系列最優(yōu)的與輸入語音匹配的模板。然后根據(jù)此模板的定義,通過查表就可以給出計(jì)算機(jī)的識別結(jié)果。顯然,這種最優(yōu)的結(jié)果與特征的選 擇、語音模型的好壞、模板是否準(zhǔn)確都有直接的關(guān)系。
2、語音識別技術(shù)的發(fā)展歷史及現(xiàn)狀
1952年,ATTBell實(shí)驗(yàn)室的Davis等人研制了第一個可十個英文數(shù)字的特定人語音增強(qiáng)系統(tǒng)一Audry系統(tǒng)1956年,美國普林斯 頓大學(xué)RCA實(shí)驗(yàn)室的Olson和Belar等人研制出能10個單音節(jié)詞的系統(tǒng),該系統(tǒng)采用帶通濾波器組獲得的頻譜參數(shù)作為語音增強(qiáng)特征。1959 年,F(xiàn)ry和Denes等人嘗試構(gòu)建音素器來4個元音和9個輔音,并采用頻譜分析和模式匹配進(jìn)行決策。這就大大提高了語音識別的效率和準(zhǔn)確度。從此計(jì)算機(jī) 語音識別的受到了各國科研人員的重視并開始進(jìn)入語音識別的研究。60年代,蘇聯(lián)的Matin等提出了語音結(jié)束點(diǎn)的端點(diǎn)檢測,使語音識別水平明顯上 升;Vintsyuk提出了動態(tài)編程,這一提法在以后的識別中不可或缺。60年代末、70年代初的重要成果是提出了信號線性預(yù)測編碼(LPC)技術(shù)和動態(tài) 時間規(guī)整(DTW)技術(shù),有效地解決了語音信號的特征提取和不等長語音匹配問題;同時提出了矢量量化(VQ)和隱馬爾可夫模型(HMM)理論。語音識別技 術(shù)與語音合成技術(shù)結(jié)合使人們能夠擺脫鍵盤的束縛,取而代之的是以語音輸入這樣便于使用的、自然的、人性化的輸入方式,它正逐步成為信息技術(shù)中人機(jī)接口的關(guān) 鍵技術(shù)。
3、語音識別的方法
目前具有代表性的語音識別方法主要有動態(tài)時間規(guī)整技術(shù)(DTW)、隱馬爾可夫模型(HMM)、矢量量化(VQ)、人工神經(jīng)網(wǎng)絡(luò)(ANN)、支持向量機(jī)(SVM)等方法。
動態(tài)時間規(guī)整算法(Dynamic Time Warping,DTW)是在非特定人語音識別中一種簡單有效的方法,該算法基于動態(tài)規(guī)劃的思想,解決了發(fā)音長短不一的模板匹配問題,是語音識別技術(shù)中出 現(xiàn)較早、較常用的一種算法。在應(yīng)用DTW算法進(jìn)行語音識別時,就是將已經(jīng)預(yù)處理和分幀過的語音測試信號和參考語音模板進(jìn)行比較以獲取他們之間的相似度,按 照某種距離測度得出兩模板間的相似程度并選擇最佳路徑。
隱馬爾可夫模型(HMM)是語音信號處理中的一種統(tǒng)計(jì)模型,是由Markov鏈 演變來的,所以它是基于參數(shù)模型的統(tǒng)計(jì)識別方法。由于其模式庫是通過反復(fù)訓(xùn)練形成的與訓(xùn)練輸出信號吻合概率最大的最佳模型參數(shù)而不是預(yù)先儲存好的模式樣 本,且其識別過程中運(yùn)用待識別語音序列與HMM參數(shù)之間的似然概率達(dá)到最大值所對應(yīng)的最佳狀態(tài)序列作為識別輸出,因此是較理想的語音識別模型。
矢量量化(Vector Quantization)是一種重要的信號壓縮方法。與HMM相比,矢量量化主要適用于小詞匯量、孤立詞的語音識別中。其過程是將若干個語音信號波形或 特征參數(shù)的標(biāo)量數(shù)據(jù)組成一個矢量在多維空間進(jìn)行整體量化。把矢量空間分成若干個小區(qū)域,每個小區(qū)域?qū)ふ乙粋€代表矢量,量化時落入小區(qū)域的矢量就用這個代表 矢量代替。矢量量化器的設(shè)計(jì)就是從大量信號樣本中訓(xùn)練出好的碼書,從實(shí)際效果出發(fā)尋找到好的失真測度定義公式,設(shè)計(jì)出最佳的矢量量化系統(tǒng),用最少的搜索和 計(jì)算失真的運(yùn)算量實(shí)現(xiàn)最大可能的平均信噪比。
在實(shí)際的應(yīng)用過程中,人們還研究了多種降低復(fù)雜度的方法,包括無記憶的矢量量化、有記憶的矢量量化和模糊矢量量化方法。
人工神經(jīng)網(wǎng)絡(luò)(ANN)是20世紀(jì)80年代末期提出的一種新的語音識別方法。其本質(zhì)上是一個自適應(yīng)非線性動力學(xué)系統(tǒng),模擬了人類神經(jīng)活動的原理,具有自 適應(yīng)性、并行性、魯棒性、容錯性和學(xué)習(xí)特性,其強(qiáng)大的分類能力和輸入—輸出映射能力在語音識別中都很有吸引力。其方法是模擬人腦思維機(jī)制的工程模型,它與 HMM正好相反,其分類決策能力和對不確定信息的描述能力得到舉世公認(rèn),但它對動態(tài)時間信號的描述能力尚不盡如人意,通常MLP分類器只能解決靜態(tài)模式分 類問題,并不涉及時間序列的處理。盡管學(xué)者們提出了許多含反饋的結(jié)構(gòu),但它們?nèi)圆蛔阋钥坍嬛T如語音信號這種時間序列的動態(tài)特性。由于ANN不能很好地描述 語音信號的時間動態(tài)特性,所以常把ANN與傳統(tǒng)識別方法結(jié)合,分別利用各自優(yōu)點(diǎn)來進(jìn)行語音識別而克服HMM和ANN各自的缺點(diǎn)。近年來結(jié)合神經(jīng)網(wǎng)絡(luò)和隱含 馬爾可夫模型的識別算法研究取得了顯著進(jìn)展,其識別率已經(jīng)接近隱含馬爾可夫模型的識別系統(tǒng),進(jìn)一步提高了語音識別的魯棒性和準(zhǔn)確率。
支 持向量機(jī)(Support vector machine)是應(yīng)用統(tǒng)計(jì)學(xué)理論的一種新的學(xué)習(xí)機(jī)模型,采用結(jié)構(gòu)風(fēng)險最小化原理(Structural Risk Minimization,SRM),有效克服了傳統(tǒng)經(jīng)驗(yàn)風(fēng)險最小化方法的缺點(diǎn)。兼顧訓(xùn)練誤差和泛化能力,在解決小樣本、非線性及高維模式識別方面有許多 優(yōu)越的性能,已經(jīng)被廣泛地應(yīng)用到模式識別領(lǐng)域。
4、語音識別系統(tǒng)的分類
語音識別 系統(tǒng)可以根據(jù)對輸入語音的限制加以分類。如果從說話者與識別系統(tǒng)的相關(guān)性考慮,可以將識別系統(tǒng)分為三類:(1)特定人語音識別系統(tǒng)。僅考慮對于專人的話音 進(jìn)行識別。(2)非特定人語音系統(tǒng)。識別的語音與人無關(guān),通常要用大量不同人的語音數(shù)據(jù)庫對識別系統(tǒng)進(jìn)行學(xué)習(xí)。(3)多人的識別系統(tǒng)。通常能識別一組人的 語音,或者成為特定組語音識別系統(tǒng),該系統(tǒng)僅要求對要識別的那組人的語音進(jìn)行訓(xùn)練。
如果從說話的方式考慮,也可以將識別系統(tǒng)分為三類: (1)孤立詞語音識別系統(tǒng)。孤立詞識別系統(tǒng)要求輸入每個詞后要停頓。(2)連接詞語音識別系統(tǒng)。連接詞輸入系統(tǒng)要求對每個詞都清楚發(fā)音,一些連音現(xiàn)象開始 出現(xiàn)。(3)連續(xù)語音識別系統(tǒng)。連續(xù)語音輸入是自然流利的連續(xù)語音輸入,大量連音和變音會出現(xiàn)。
如果從識別系統(tǒng)的詞匯量大小考慮,也可 以將識別系統(tǒng)分為三類:(1)小詞匯量語音識別系統(tǒng)。通常包括幾十個詞的語音識別系統(tǒng)。(2)中等詞匯量的語音識別系統(tǒng)。通常包括幾百個詞到上千個詞的識 別系統(tǒng)。(3)大詞匯量語音識別系統(tǒng)。通常包括幾千到幾萬個詞的語音識別系統(tǒng)。隨著計(jì)算機(jī)與數(shù)字信號處理器運(yùn)算能力以及識別系統(tǒng)精度的提高,識別系統(tǒng)根據(jù) 詞匯量大小進(jìn)行分類也不斷進(jìn)行變化。目前是中等詞匯量的識別系統(tǒng),將來可能就是小詞匯量的語音識別系統(tǒng)。這些不同的限制也確定了語音識別系統(tǒng)的困難度。
5、語音識別的應(yīng)用
語音識別可以應(yīng)用的領(lǐng)域大致分為大五類:
辦公室或商務(wù)系統(tǒng)。典型的應(yīng)用包括:填寫數(shù)據(jù)表格、數(shù)據(jù)庫管理和控制、鍵盤功能增強(qiáng)等等。
制造業(yè):在質(zhì)量控制中,語音識別系統(tǒng)可以為制造過程提供一種“不用手”、“不用眼”的檢控(部件檢查)。
電信:相當(dāng)廣泛的一類應(yīng)用在撥號電話系統(tǒng)上都是可行的,包括話務(wù)員協(xié)助服務(wù)的自動化、國際國內(nèi)遠(yuǎn)程電子商務(wù)、語音呼叫分配、語音撥號、分類訂貨。
醫(yī)療:這方面的主要應(yīng)用是由聲音來生成和編輯專業(yè)的醫(yī)療報告。
其他:包括由語音控制和操作的游戲和玩具、幫助殘疾人的語音識別系統(tǒng)、車輛行駛中一些非關(guān)鍵功能的語音控制,如車載交通路況控制系統(tǒng)、音響系統(tǒng)。
未來隨著手持設(shè)備的小型化,甚至穿戴化,各種智能眼鏡,手表等層出不窮,當(dāng)然找準(zhǔn)市場突破口很重要,好的解決方案和系統(tǒng)設(shè)計(jì)參考也是必不可少的。
Nuance語音識別技術(shù)及解決方案
1.語音識別概述
語音識別技術(shù),Automatic Speech Recognition,簡稱ASR,是一種讓機(jī)器聽懂人類語言的技術(shù)。語言是人類進(jìn)行信息交流的最主要、最長用、最直接的方式。語音識別技術(shù)是實(shí)現(xiàn)人機(jī) 對話的一項(xiàng)重大突破,在國外近年來發(fā)展十分迅速,其應(yīng)用也逐步得到推廣。近幾年逐漸普及的IVR(自動電話應(yīng)答)處理了不少簡單而又重復(fù)的咨詢工作,節(jié)省 了不少人力,但這種按鍵式的語音自動應(yīng)答卻讓客戶花費(fèi)很多時間按指引來完成簡單的查詢,令用戶倍感不便。
語音識別無疑可以解決該方面的問題。語音識別系統(tǒng)的開發(fā)成功,充分發(fā)揮了計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的優(yōu)勢,采用先進(jìn)的人機(jī)對話方式,擺脫電話按鍵的束縛,人們只要象平常一樣對著電話簡單的說出所需服務(wù)項(xiàng)目,即可輕松獲取自動系統(tǒng)提供的所需信息。
語音識別系統(tǒng)結(jié)構(gòu)
2.語音識別應(yīng)用
Nuance公司是自然語音接口軟件的佼佼者。使用自然語音接口軟件,人們可以通過電話方便安全地獲取信息、服務(wù)并進(jìn)行交易。每天,千千萬萬的人通過撥 打運(yùn)行Nuance公司語音識別、語言理解和聲紋鑒別軟件的電話,進(jìn)行出游預(yù)訂、股票交易、與其它通訊媒體、企業(yè)和互聯(lián)網(wǎng)系統(tǒng)進(jìn)行交往等活動。 NUANCE的應(yīng)用:美國航空、Bell Atlantic、Charles Schwab、家庭購物網(wǎng)絡(luò)、Lloyds TSB、Sears、UPS 。
3.NUANCE語音識別特點(diǎn)
(1)海量詞匯、獨(dú)立于講話者的健壯識別功能
Nuance系統(tǒng)能可靠地對多種語言進(jìn)行大詞匯量的識別,并可提供識別結(jié)果的置信度。該系統(tǒng)對商業(yè)上使用的大量詞匯提供最準(zhǔn)確的語音識別技術(shù)。利用Nuance系統(tǒng)開發(fā)的應(yīng)用程序,在市場上具有最高的準(zhǔn)確率。生產(chǎn)中的應(yīng)用程序經(jīng)測試,準(zhǔn)確性超過96%。
?。?)基于主機(jī)的客戶/服務(wù)機(jī)結(jié)構(gòu)
Nuance系統(tǒng)基于開放式客戶/服務(wù)機(jī)結(jié)構(gòu),特別為大型應(yīng)用程序所需的健壯性和可伸縮性而設(shè)計(jì)。呼叫者的講話由客戶端收集,而識別和鑒別處理的負(fù)載被平均分配到網(wǎng)絡(luò)上的多個分開的服務(wù)器上。
(3)N-Best處理
對于有些應(yīng)用程序,可能需要識別引擎產(chǎn)生可能的識別結(jié)果集,而不是一個最好的結(jié)果。Nuance系統(tǒng)的N-best識別處理方法便有這個功能,它提供了可能的識別結(jié)果列表,并按可能性從高到低排列。
?。?)語法概率
Nuance系統(tǒng)允許對呼叫者所講的特定詞語或短語的在語法中的概率進(jìn)行指定。當(dāng)被講的詞語或短語的概率可根據(jù)實(shí)際使用進(jìn)行估計(jì)時,非常有用。對語法增加概率可提高識別的準(zhǔn)確率和速度。
(5)降低噪音
當(dāng)進(jìn)來的呼叫包含穩(wěn)定的背景噪音時,Nuance系統(tǒng)通過一種機(jī)制,使識別服務(wù)器更準(zhǔn)確地進(jìn)行識別。識別服務(wù)器將進(jìn)來的話語進(jìn)行增強(qiáng),以有效地將語氣、 嗡嗡聲、哼叫聲、噓噓聲等噪聲過濾。如果相當(dāng)數(shù)量的電話均含有穩(wěn)定的背景噪聲,比如在汽車上免提打電話時,這個機(jī)制效果較理想。
4.基于識別的應(yīng)用
語音短信本身業(yè)務(wù)、公司電話簿、個人電話簿、智能點(diǎn)歌、股票查詢和交易、智能信息點(diǎn)播、列車時刻查詢
(1)基于語音識別的公司電話簿
公司電話薄應(yīng)用描述
系統(tǒng)能支持多個接入號碼,虛擬多個公司的總機(jī)。并依靠語音識別技術(shù),智能轉(zhuǎn)接到相應(yīng)的用戶。
流程
用戶撥打接入碼,系統(tǒng)根據(jù)接入碼找到相應(yīng)的公司數(shù)據(jù)庫,同時提醒用戶說出相應(yīng)的用戶,系統(tǒng)依據(jù)相應(yīng)的用戶查詢數(shù)據(jù)庫,并得到該用戶的號碼,并通知交換機(jī)將該號碼接通。
公司電話簿特點(diǎn)
•系統(tǒng)支持電話接入方式
用戶可通過電話修改個人密碼,個人上班電話和非上班電話
•系統(tǒng)支持WEB接入方式
• 系統(tǒng)管理員可修改所有信息
• 各公司管理員可增加,刪除,修改本公司的電話信息
?。?)基于語音識別的點(diǎn)歌功能
功能描述
用戶接入系統(tǒng),提示用戶說出歌名,并依靠語音識別技術(shù),查找到該歌名,并播放給用戶。
應(yīng)用流程
用戶撥打接入碼,提示用戶說出歌名或歌手名,并依靠語音識別技術(shù),查找到該歌名或歌手名,若為歌名查詢數(shù)據(jù)庫,得到該歌存儲的路徑,并播放給用戶,若為 歌手名,則讀出該歌手的專輯,并提醒用戶選擇,用戶選擇后,讀出該專輯的歌名,并提醒用戶選擇,用戶選擇后,給用戶播放該歌曲。
基于ZigBee節(jié)點(diǎn)的智能家居系統(tǒng)語音控制設(shè)計(jì)
1 系統(tǒng)總體設(shè)計(jì)
系統(tǒng)總體結(jié)構(gòu)如圖1所示,主要包括基于Samsung的S3C6410平臺的網(wǎng)關(guān)、基于SPCE061A的語音ZigBee子節(jié)點(diǎn)、電器繼電器控制ZigBee子節(jié)點(diǎn)、電器紅外控制ZigBee子節(jié)點(diǎn)等。其中各子節(jié)點(diǎn)與網(wǎng)關(guān)之間通過星型拓?fù)浣Y(jié)構(gòu)進(jìn)行連接。
在對語音子節(jié)點(diǎn)進(jìn)行訓(xùn)練之后,當(dāng)語音節(jié)點(diǎn)采集接收到語音控制命令時,執(zhí)行語音識別指令,通過CC2530收發(fā)模塊發(fā)送相應(yīng)的控制指令到網(wǎng)關(guān)的主節(jié)點(diǎn)上。 主節(jié)點(diǎn)將接收到控制指令通過串口上傳到網(wǎng)關(guān)主機(jī),主機(jī)在處理信息之后,再通過主節(jié)點(diǎn)發(fā)送相應(yīng)的控制指令到控制子節(jié)點(diǎn)上,控制子節(jié)點(diǎn)在接收到相應(yīng)的命令之后 就會執(zhí)行相應(yīng)的動作,對被控對象進(jìn)行控制。
2 系統(tǒng)硬件設(shè)計(jì)
?。?)網(wǎng)關(guān)。采用基于ARM11架構(gòu)的三星S3C6410處理器,與ZigBee主節(jié)點(diǎn)之間通過串口方式進(jìn)行通信。S3C6410是基于ARM1176JZF-S的16/
?。?)語音子節(jié)點(diǎn)。由凌陽科技的SPCE061A單片機(jī)與ZigBec收發(fā)節(jié)點(diǎn)模塊組成。SPCE061A是凌 陽科技推出的以μ’nSPTM為核心的16位結(jié)構(gòu)的微控制器。具有8通道10位A/D轉(zhuǎn)換輸入功能,內(nèi)置自動增益控制功能的麥克風(fēng)輸入方式以及雙通道10 位DAC方式的音頻輸出功能。在使用SAC M_S240凌陽音頻編碼方式時,可以容納長達(dá)210 s的語音數(shù)據(jù)。因此被廣泛應(yīng)用于數(shù)字語音識別領(lǐng)域中。
?。?)電器控制繼電器子節(jié)點(diǎn)。由繼電器模塊與ZigBee收發(fā)節(jié)點(diǎn)組成。由于我國市電電壓在220 V左右,為了實(shí)現(xiàn)對部分家電開關(guān)的控制,采用繼電器模塊,并通過ZigBee通信模塊的CC2530芯片的I/O引腳及其外圍驅(qū)動電路,實(shí)現(xiàn)對繼電器模塊 的吸合與釋放控制??梢钥刂拼昂?、燈光等開關(guān)型電器。
(4)紅外控制子節(jié)點(diǎn)。由學(xué)習(xí)型紅外控制模塊與ZigBee收發(fā)子節(jié)點(diǎn)組成。目 前,紅外遙控類型的家用電器的比例正逐步攀升。因此本文在設(shè)計(jì)研究中采用了學(xué)習(xí)型的紅外控制模塊,它與ZigBee收發(fā)子節(jié)點(diǎn)之間通過串口進(jìn)行通信。首先 使用一個或多個紅外模塊對現(xiàn)有的家電(如電視機(jī)、DVD、空調(diào)、投影儀等)紅外遙控器的信號進(jìn)行學(xué)習(xí),把相應(yīng)的編碼存放到紅外模塊的存儲器E2PROM 中,每條代碼對應(yīng)一個地址。當(dāng)該
?。?)基于CC2530的ZigBee無線收發(fā)模塊。CC2530是TI公司推出的基于IEEE 802.15.4協(xié)議的片上系統(tǒng)。內(nèi)嵌增強(qiáng)型單周期的8051CPU,具有8 KB的SRAM、2個支持多種串行通信協(xié)議的USART、21個通用的I/O引腳、寬電壓范圍(2~3.6 V)、低功耗(主動模式RX:24 mA;主動模式TX在1 dBm:29 mA)以及電源電量可監(jiān)控等特點(diǎn)。在ZigBee協(xié)議棧中UART具有中斷、DMA兩種模式,本文設(shè)計(jì)中均采用了UART的中斷模式。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)主要包括下位機(jī)軟件與上位機(jī)軟件設(shè)計(jì)。在下位機(jī)程序設(shè)計(jì)過程中有2個關(guān)鍵點(diǎn):對數(shù)字語音信號的采集、處理與識別;ZigBee收發(fā)模塊對控制信號的接收、發(fā)送與執(zhí)行。而在上位機(jī)軟件設(shè)計(jì)中,主要是基于Visual C++的串口通信的編程。
上位機(jī)主程序流程圖如圖2所示。
S3C6410開發(fā)平臺具有4個UART接口,在研究設(shè)計(jì)中,采用了芯片MAX 3232來解決ZigBee通信模塊的CC2530芯片與該開發(fā)平臺之間的串口通信電平轉(zhuǎn)換。上位機(jī)通過串口接收語音子節(jié)點(diǎn)的控制指令數(shù)據(jù),將數(shù)據(jù)處理后 用文字顯示控制命令,并通過與ZigBee主節(jié)點(diǎn)之間的串口通信,向子節(jié)點(diǎn)發(fā)送控制指令數(shù)據(jù)。
4 實(shí)驗(yàn)及結(jié)果
4.1 實(shí)際應(yīng)用舉例
在對電動窗簾進(jìn)行開關(guān)控制時,首先將本系統(tǒng)的電器控制繼電器子節(jié)點(diǎn)與電動窗簾的開關(guān)量電機(jī)控制器相連接,準(zhǔn)備好硬件電路。然后,通過串口編程使上位機(jī)的 ZigBee主節(jié)點(diǎn)在接收到語音子節(jié)點(diǎn)的窗簾開關(guān)命令時,向ZigBee子節(jié)點(diǎn)發(fā)射窗簾控制信號,從而當(dāng)控制窗簾的繼電器子節(jié)點(diǎn)接收到控制指令時,能夠控 制窗簾執(zhí)行相應(yīng)的開關(guān)動作。通過如依次說出“控制器”、“打開”、“窗簾”的命令時,語音子節(jié)點(diǎn)語音提示設(shè)備打開,主機(jī)界面顯示設(shè)備所處控制的狀態(tài),同時 窗簾打開。
該語音控制智能家居系統(tǒng)能夠?qū)崿F(xiàn)家用電器的聯(lián)動。例如,可以通過依次說出“控制器”、“家庭影院”的語音命令。這時上位機(jī)能夠按照程序設(shè)定逐步延時:打開紅外遙控投影儀,紅外遙控幕簾,關(guān)閉窗簾,關(guān)閉部分燈光等來開啟家庭影院模式。讓人們體驗(yàn)真正的家居智能化。
4.2 ZigBee控制節(jié)點(diǎn)通信距離測試結(jié)果
(1)空曠場合測試。測試條件:CC2530模塊采用PCB天線,發(fā)射功率在1 mW,發(fā)射頻率在2.4 GHz。測試結(jié)果:通信距離最遠(yuǎn)可達(dá)120 m。
?。?)居家場合測試測試條件:同上。測試結(jié)果:由于墻體阻礙,通信距離約在20 m。
4.3 語音控制紅外型電視開關(guān)測試
在語音識別程序設(shè)計(jì)中,為了增加語音節(jié)點(diǎn)所能識別命令的條數(shù)而采用了分組法。利用紅外遙控子節(jié)點(diǎn)對電視遙控器的開/關(guān)信號進(jìn)行學(xué)習(xí),對語音子節(jié)點(diǎn)進(jìn)行訓(xùn) 練結(jié)束后,啟動系統(tǒng)。依次說出“控制器”、“打開”、“電視”連續(xù)三條命令,再說出“控制器”、“關(guān)閉” “電視”連續(xù)三條命令。測試結(jié)果如表1所示。
5 結(jié)語
將具有數(shù)字語音識別功能的SPCE061A單片機(jī)與低功耗、低成本的ZigBee技術(shù)相結(jié)合,開發(fā)了基于單芯片CC2530的ZigBee語音節(jié)點(diǎn),并 利用ARM11架構(gòu)的開發(fā)平臺S3C6410作為網(wǎng)關(guān),WinCE 6.0的操作系統(tǒng),有著良好的人機(jī)交互界面,來共同應(yīng)用于智能家居系統(tǒng)的語音控制中,實(shí)現(xiàn)了對開關(guān)型及紅外型家電設(shè)備的語音控制和家居智能化,實(shí)現(xiàn)人與家 電之間的對話,方便了人們的生活,具有廣闊的應(yīng)用前景。
設(shè)計(jì)詳情:基于ZigBee節(jié)點(diǎn)的智能家居系統(tǒng)語音控制設(shè)計(jì)
實(shí)時語音識別系統(tǒng)在家庭監(jiān)護(hù)機(jī)器人的實(shí)現(xiàn)
文中闡述的是家庭監(jiān)護(hù)機(jī)器人項(xiàng)目中語音識別系統(tǒng)設(shè)計(jì)的部分,通過DSP、 DMA和ARM Cortex-A8的并行處理,利用雙緩沖的方法,在嵌入式Linux上實(shí)現(xiàn)了基于ATK的實(shí)時語音識別系統(tǒng)。文中對該系統(tǒng)的軟硬件進(jìn)行了設(shè)計(jì)。在硬件方 面,給出語音識別系統(tǒng)的硬件組成原理,并提供了關(guān)鍵部分原理圖;在軟件方面,提出實(shí)時語音識別的方法,給出應(yīng)用程序?qū)崿F(xiàn)流程。最后通過真人說話來進(jìn)行語音 識別實(shí)驗(yàn),實(shí)時語音識別率達(dá)到了94.67%以上,實(shí)驗(yàn)驗(yàn)證了系統(tǒng)的軟件硬件設(shè)計(jì)的正確性。
1 系統(tǒng)設(shè)計(jì)
文中是家庭監(jiān)護(hù)機(jī)器人項(xiàng)目中的語音識別系統(tǒng)設(shè)計(jì)部分,設(shè)計(jì)目的是設(shè)計(jì)出一種可以識別語音的、協(xié)助監(jiān)護(hù)家庭行動不方便人員的機(jī)器人。為實(shí)現(xiàn)該語音識別系統(tǒng),設(shè)計(jì)了語音識別系統(tǒng)總體結(jié)構(gòu)框圖,如圖1所示。
圖1 系統(tǒng)總體結(jié)構(gòu)框圖
1.1 硬件設(shè)計(jì)
文中所研究和設(shè)計(jì)的功能,都是應(yīng)用在移動機(jī)器人上的。因而系統(tǒng)的研究設(shè)計(jì)需要考慮到體積小、省電、便于移動的特性,并需具有便于家庭用戶操作的友好顯示 界面。對于語音識別部分,需要用到用于語音識別算法處理的處理器、語音采集電路和語音輸出電路,如圖 2所示。其中語音識別算法運(yùn)算的處理器主要負(fù)責(zé)算法的運(yùn)算處理,相當(dāng)于機(jī)器人的大腦;語音采集電路負(fù)責(zé)采集外部的聲音信號,相當(dāng)于機(jī)器人的耳朵;語音輸出 電路負(fù)責(zé)輸出話語聲音,相當(dāng)于機(jī)器人的嘴巴。
圖2 系統(tǒng)硬件結(jié)構(gòu)圖
1.2 軟件設(shè)計(jì)
HTK(Hidden Markov Model Toolkit)是一套專門的建立和處理隱馬可夫模型(HMMs)的實(shí)驗(yàn)工具包,由英國劍橋大學(xué)工程系(Cambridge University Engineering Department,CUED)開發(fā)的,主要應(yīng)用于語音識別領(lǐng)域,也可以應(yīng)用于語音合成、字符識別和DNA排序等研究領(lǐng)域。HTK經(jīng)過劍橋大學(xué)、 Entropic公司及Microsoft公司的不斷增強(qiáng)和改進(jìn),使其在語音識別領(lǐng)域處于世界領(lǐng)先水平。
基于HTK的語言識別時,識別 結(jié)果適用只能顯示在DOS或終端上,而且不利于將結(jié)果保存、移植或者二次開發(fā)利用。在本語音識別系統(tǒng)中使用了HTK接口工具 ATK(AnApplication Toolkit for HTK)。ATK是由英國劍橋大學(xué)開發(fā)的開源語音識別工具,是對HTK的C++多線程封裝,跟HTK一樣,它支持Linux和Windows,它包括 HTK(HTKLib)、AHTK、AGram、ANGram、ADict、AHMMs、AResource、ARMan、ARec、ACode、 ASour ce、ATee、AComponent、ABuffer、APacket、Asyn、FLite(SYNLib)、ALog模塊部件。
基于ATK的語音識別軟件應(yīng)用系統(tǒng)的由語音信號采集模塊、基于DMA的雙向高速RAM存取模塊、ATK語音識別模塊、系統(tǒng)管理模塊、語音輸出模塊等模塊組成,如圖4所示。
圖4 系統(tǒng)軟件設(shè)計(jì)結(jié)構(gòu)圖
在軟件設(shè)計(jì)中,系統(tǒng)管理模塊主要負(fù)責(zé)系統(tǒng)的總體管理調(diào)度,是應(yīng)用系統(tǒng)的調(diào)度中心;語音信號采集模塊主要負(fù)責(zé)控制數(shù)據(jù)采集芯片TPS 65930;基于DMA的雙向RAM存取模塊主要負(fù)責(zé)實(shí)現(xiàn)DMA驅(qū)動及雙向RAM的讀寫存取,使用了通道1來實(shí)現(xiàn)高速地把語音信號采集到的數(shù)據(jù)存儲到 RAM上,并使用通道2實(shí)現(xiàn)高速地把RAM的數(shù)據(jù)取出來,用于語音的識別;語音輸出模塊主要負(fù)責(zé)把相應(yīng)的音頻數(shù)據(jù)送到TPS65930,并控制TPS6 5930對接收到的音頻解碼輸出到功放電路,實(shí)現(xiàn)語音輸出的功能。軟件的設(shè)計(jì)流程圖如圖5所示。
圖5 軟件設(shè)計(jì)流程
2 語音識別系統(tǒng)實(shí)驗(yàn)及結(jié)果
文中設(shè)計(jì)的語音識別系統(tǒng)如圖6所示。在實(shí)驗(yàn)中總共進(jìn)行了3輪話語測試,每輪300句話語測試,其中 150句為家庭監(jiān)護(hù)機(jī)器人需要識別的話語,150句話語為機(jī)器人不予置理的無關(guān)話語。從實(shí)驗(yàn)測試結(jié)果可看出,對于識別10個需要識別的話語的識別率高達(dá)94.67%以上,具有較高的識別率,因而該語音識別系統(tǒng)較好達(dá)到了家庭監(jiān)護(hù)機(jī)器人使用的要求。
3 結(jié)論
文中通過DSP、DMA和ARM Cortex-A8的并行處理,利用雙緩沖的方法,在嵌入式Linux上實(shí)現(xiàn)了基于ATK的實(shí)時語音識別系統(tǒng)。該系統(tǒng)可以實(shí)時地實(shí)現(xiàn)語音識別,具有較高識別率,較快的響應(yīng)速度??梢詰?yīng)用在家庭監(jiān)護(hù)機(jī)器人及其相關(guān)領(lǐng)域中。
設(shè)計(jì)詳情:實(shí)時語音識別系統(tǒng)在家庭監(jiān)護(hù)機(jī)器人的實(shí)現(xiàn)
基于語音識別的汽車空調(diào)控制系統(tǒng)設(shè)計(jì)
現(xiàn)在汽車上使用的電器越來越多,駕駛員需要手動操作的電器開關(guān)也越來越多, 不但增加了駕駛員的負(fù)擔(dān),還影響了行車安全。本文以 STM32F103VET6(以下簡稱STM32)芯片為控制核心,采用高性能LD3320語音識別芯片,設(shè)計(jì)基于語音識別的汽車空調(diào)控制系統(tǒng)。該系統(tǒng)可 以用語音有效控制汽車空調(diào),減輕了駕駛員的操作負(fù)擔(dān),保證行車過程中的安全。
1 系統(tǒng)硬件設(shè)計(jì)
運(yùn)用語音識別技術(shù),結(jié)合各種傳感器對車身內(nèi)外的環(huán)境(如氣溫、陽光強(qiáng)度等)以及制冷壓縮機(jī)的狀態(tài)等多種參數(shù)進(jìn)行實(shí)時檢測,與設(shè)定參數(shù)相比較,微控制器經(jīng) 過運(yùn)算處理做出判斷,輸出相應(yīng)的調(diào)節(jié)和控制信號。執(zhí)行機(jī)構(gòu)經(jīng)過實(shí)時調(diào)整和修正,實(shí)現(xiàn)對車廂內(nèi)空氣環(huán)境全方位、多功能的調(diào)節(jié)和控制。系統(tǒng)的執(zhí)行機(jī)構(gòu)主要包括 溫度風(fēng)門電機(jī)、模式風(fēng)門電機(jī)、循環(huán)風(fēng)門電機(jī)、鼓風(fēng)機(jī)、壓縮機(jī)、除霜控制繼電器等。圖1為系統(tǒng)結(jié)構(gòu)框圖。
1.1 主控制器
主控制器為基于ARM Cortex—M3內(nèi)核的32位微控制器STM32F103VET6,內(nèi)置64 KB RAM、512 KBFlash,以及豐富的增強(qiáng)I/O端口和聯(lián)接到兩條APB總線的外設(shè),主要控制傳感器模擬信號的采集、語音信號的收發(fā)和汽車空調(diào)控制信號的輸出。
1.2 語音識別模塊
語音識別芯片選用的是ICRoute公司的LD3320芯片。該芯片集成了語音識別處理器和一些外部電路,包括A/D轉(zhuǎn)化器、D/A轉(zhuǎn)換器、麥克風(fēng)接 口、聲音輸出接口等。本芯片在設(shè)計(jì)上注重節(jié)能與高效,不需要外接任何的輔助芯片(如Flash、RAM等),直接集成在現(xiàn)有的產(chǎn)品中即可以實(shí)現(xiàn)語音識別功 能。識別的關(guān)鍵詞語列表是可以任意動態(tài)編輯的。
2 系統(tǒng)軟件設(shè)計(jì)
本系統(tǒng)軟件設(shè)計(jì)采用C語言開發(fā),用Keil uVision4軟件進(jìn)行編譯。開發(fā)過程按照模塊化分塊進(jìn)行,系統(tǒng)的主要模塊包括語音識別模塊、語音播放模塊、SD卡模塊以及空調(diào)控制模塊。
2.1 語音識別模塊
語音識別模塊采用中斷的方式進(jìn)行工作,其工作流程大致為芯片初始化、寫入識別列表、開始識別、中斷響應(yīng)并獲取識別結(jié)果。語音識別流程如圖8所示。在初始 化程序里,主要完成軟復(fù)位、模式設(shè)定、時鐘頻率設(shè)定和FIFO設(shè)定。在寫入識別列表之前,首先要讀取寄存器B2的值,檢查LD3320是否處于空閑狀態(tài); 然后,把識別語音列表信息寫入LD3320的05和B9寄存器中,每個識別條目是標(biāo)準(zhǔn)普通話的漢語拼音(小寫),每兩個漢語拼音之間用一個空格間隔。在完 成添加語音識別列表后,設(shè)定寄存器35的值為45H。此處設(shè)定的值越大,代表麥克的音量越大,識別距離也越遠(yuǎn),但是可能產(chǎn)生較多的誤識別;值越小代表麥克 的音量越小,需要近距離說話才能啟動語音識別功能,識別率也高。設(shè)定寄存器37值為06H,啟動語音識別,即可開始語音識別。如果麥克風(fēng)采集到聲音,不管 是否識別出正常結(jié)果,都會產(chǎn)生一個中斷信號。進(jìn)入中斷函數(shù)后,首先清零寄存器29和寄存器02;然后,檢查B2寄存器是否為0x21。若值為0x21,表 示閑,可以檢測2B的值;若為1,表示語音識別有結(jié)果產(chǎn)生。寄存器BF讀到數(shù)值為0x35,可以確定是一次語音識別流程正常結(jié)束。寄存器BA表示語音識別 有幾個識別候選結(jié)果。最后,可以讀取寄存器C5,獲取識別結(jié)果。
2.2 語音播放模塊
語音播放的軟件設(shè)計(jì)流程包括通用初始化、MP3播放初始化、播放音量調(diào)節(jié)、開始播放聲音以及中斷響應(yīng)。通用初始化時,首先連續(xù)讀取寄存器06,相當(dāng)于激 活了芯片;然后,按順序設(shè)置相關(guān)寄存器的值。MP3播放初始化時,首先要設(shè)置寄存器BD的值為02H,啟動MP3播放模塊;然后,向寄存器17寫入 48H,激活DSP。語音播放模塊的音量分為16級,用4位二進(jìn)制表示,這里需要設(shè)置寄存器8E的第2~5位的值來調(diào)節(jié)播放音量。當(dāng)播放語音時,首先需要 清零,開始播放位置。將寄存器1B的第3位設(shè)為1,然后執(zhí)行循環(huán)。當(dāng)播放條件為真時,順序?qū)P3數(shù)據(jù)放入寄存器01(每次1個字節(jié)),播放位置值增加 1。當(dāng)寄存器 06的第3位等于0或者播放位置小于MP3文件的總長度時,就跳出循環(huán)。等到芯片播放該段后會發(fā)出中斷請求,而中斷函數(shù)會不斷接收數(shù)據(jù),直到FIFO- DA-TA裝滿或聲音數(shù)據(jù)結(jié)束。
結(jié)語
本文介紹了基于語音識別的汽車空調(diào)控制系統(tǒng),分別對硬件電路和軟件設(shè)計(jì)進(jìn)行了詳細(xì)的介紹。本系統(tǒng)開發(fā)成本低、性能優(yōu)越,系統(tǒng)測試表明,本系統(tǒng)具有一定的應(yīng)用價值,可以用于中低檔汽車。
設(shè)計(jì)詳情:基于語音識別的汽車空調(diào)控制系統(tǒng)設(shè)計(jì)
基于非特定人語音識別芯片的技術(shù)方案
本文利用智能語音交互芯片設(shè)計(jì)了某模擬訓(xùn)練器的示教與回放系統(tǒng)。示教系統(tǒng)為操作人員生動的演示標(biāo)準(zhǔn)操作流程及相應(yīng)的操作現(xiàn)象,極 大地縮短了對操作人員的培訓(xùn)時間,提高了培訓(xùn)效果?;胤畔到y(tǒng)通過記錄操作訓(xùn)練過程中各操作人員的口令、聲音強(qiáng)度、動作、時間、操作現(xiàn)象等,待操作訓(xùn)練結(jié)束 后通過重演訓(xùn)練過程,以便操作者及時糾正自己的問題。示教系統(tǒng)也可理解為對標(biāo)準(zhǔn)操作訓(xùn)練過程的回放。該系統(tǒng)不需要虛擬現(xiàn)實(shí)技術(shù)的支持,在小型的嵌入式系統(tǒng) 上就可以實(shí)現(xiàn)。
1 系統(tǒng)原理
該模擬訓(xùn)練器由一臺測控計(jì)算機(jī)和多臺從設(shè)備組成。如 圖1所示。在此僅對一臺從設(shè)備進(jìn)行介紹,其硬件系統(tǒng)主要由測控計(jì)算機(jī)、Arduino mega2560 控制器、語音識別單元、聲強(qiáng)檢測單元、語音合成單元、面板控制單元、儀器面板等組成。面板控制單元較為復(fù)雜,包含多種控制電路,在模擬訓(xùn)練中負(fù)責(zé)該從設(shè)備 在Arduinomega2560 控制器的控制下完成整個訓(xùn)練過程,在示教與回放系統(tǒng)中完成對剛才操作訓(xùn)練操作現(xiàn)象的重演,其具體電路設(shè)計(jì)在此不做介紹。
語音識別單元負(fù)責(zé)識別操作人員的操作口令;聲強(qiáng)檢測單元負(fù)責(zé)檢測聲強(qiáng)大小并以此作為判斷是哪臺從設(shè)備操作人員口令的依據(jù);Arduino mega2560控制器負(fù)責(zé)監(jiān)視儀器面板各元件的狀態(tài)來識別操作人員的動作,從而完成對操作訓(xùn)練過程的記錄。各儀器的操作現(xiàn)象根據(jù)操作動作事先編制無需記 錄。在操作回放過程中,測控計(jì)算機(jī)根據(jù)所記錄的數(shù)據(jù),通過控制相應(yīng)從設(shè)備的Arduino mega2560控制器重現(xiàn)所記錄的操作過程。
2 單元系統(tǒng)設(shè)計(jì)
2.1 語音識別單元設(shè)計(jì)
目前,語音識別技術(shù)的發(fā)展十分迅速,按照識別對象的類型可以分為特定人和非特定人語音識別。特定人是指識別對象為專門的人,非特定人是指識別對象是針對大多數(shù)用戶,一般需要采集多個人的語音進(jìn)行錄音和訓(xùn)練,經(jīng)過學(xué)習(xí),從而達(dá)到較高的識別率。
本文采用的LD3320語音識別芯片是一顆基于非特定人語音識別(Speaker?Independent Automatic SpeechRecognition,SI?ASR)技術(shù)的芯片。該芯片上集成了高精度的A/D 和D/A 接口,不再需要外接輔助的FLASH 和RAM,即可以實(shí)現(xiàn)語音識別、聲控、人機(jī)對話功能,提供了真正的單芯片語音識別解決方案。并且,識別的關(guān)鍵詞語列表是可以動態(tài)編輯的。其語音識別過程如 圖2所示。
語音識別單元采用ATmega168 作為MCU,負(fù)責(zé)控制LD3320完成所有和語音識別相關(guān)的工作,并將識別結(jié)果通過串口上傳至Arduino mega2560 控制器。對LD3320芯片的各種操作,都必須通過寄存器的操作來完成,寄存器讀寫操作有2種方式(標(biāo)準(zhǔn)并行方式和串行SPI方式)。在此采用并行方式, 將LD3320的數(shù)據(jù)端口與MCU的I/O口相連。其硬件連接圖如圖3所示。
語音識別流程采用中斷方式工作,其工作流程分為初始化、寫入關(guān)鍵詞、開始識別和響應(yīng)中斷等。MCU的程序采用ARDUINO IDE編寫[5],調(diào)試完成后通過串口進(jìn)行燒錄,控制LD3320完成語音識別,并將識別結(jié)果上傳至Arduino mega2560控制器。其軟件流程如圖4所示。
3 系統(tǒng)軟件設(shè)計(jì)
示教與回放系統(tǒng)的軟件設(shè)計(jì)包括測控計(jì)算機(jī)的軟件設(shè)計(jì)和各從設(shè)備Arduino mega260控制器的軟件設(shè)計(jì)。
測控計(jì)算機(jī)是整個系統(tǒng)的控制核心,其軟件采用C#進(jìn)行編寫,在示教與回放系統(tǒng)中主要是對操作數(shù)據(jù)的記錄以便根據(jù)所記錄的數(shù)據(jù)對操作過程進(jìn)行精確回放,需 要記錄的數(shù)據(jù)包括:各從設(shè)備操作人員的操作口令,操作動作,口令及動作時間,各操作對應(yīng)的操作現(xiàn)象。為簡化記錄數(shù)據(jù),事先編制好各事件代碼,記錄過程只記 錄代碼,大大提高程序效率。建立結(jié)構(gòu)體如下:
在操作訓(xùn)練過程中測控計(jì)算機(jī)每隔50 ms 對下位機(jī)進(jìn)行控制及輪詢,并記錄反饋數(shù)據(jù),在數(shù)據(jù)記錄時以50 ms 為一個單位。采用定時器對時間進(jìn)行控制。在回放過程中首先比對當(dāng)前時間和所記錄的時間,當(dāng)所記錄的時間與當(dāng)前時間吻合時測控計(jì)算機(jī)控制下位機(jī)執(zhí)行該事件, 完成事件回放。
Arduino mega2560控制器負(fù)責(zé)接收測控計(jì)算機(jī)的控制指令并執(zhí)行指令,讀取語音識別結(jié)果,對聲強(qiáng)數(shù)據(jù)采集和處理,控制語音合成單元進(jìn)行語音合成等。Arduinomega2560 控制器采用串口中斷的方式進(jìn)行命令接收。
只有正確接收到命令才會執(zhí)行并回傳結(jié)果,若測控計(jì)算機(jī)在限定時間內(nèi)未收到回傳結(jié)果則表明發(fā)生錯誤,測控計(jì)算機(jī)需重新發(fā)送。數(shù)據(jù)接收流程圖如圖8所示。
4 總結(jié)
本文利用智能語音芯片設(shè)計(jì)了某模擬訓(xùn)練器的示教與回放系統(tǒng),該系統(tǒng)不需要現(xiàn)在流行的虛擬現(xiàn)實(shí)技術(shù)的支持,僅在MCU 的控制下就可以運(yùn)行。該系統(tǒng)也可以在小型的便攜式設(shè)備上實(shí)現(xiàn),具有良好的應(yīng)用前景。
設(shè)計(jì)詳情:基于非特定人語音識別芯片的技術(shù)方案
相關(guān)文章:
基于LD3320的嵌入式語音識別系統(tǒng)設(shè)計(jì)
基于DSP的語音識別系統(tǒng)的實(shí)現(xiàn)及分析
基于TMS320VC5507的語音識別系統(tǒng)實(shí)現(xiàn)
基于語音識別技術(shù)的聲控鼠標(biāo)光標(biāo)程序設(shè)計(jì)
基于DSP的漢字語音識別系統(tǒng)設(shè)計(jì)
評論