語音識別是以語音為研究對象語音識別模塊如何接入電話機(jī)器人,通過語音信號處理和模式識別讓機(jī)器自動識別和理解人類口述的語言。語音識別技術(shù)就是讓機(jī)器通過識別和理解過程把語 音信號轉(zhuǎn)變?yōu)橄鄳?yīng)的文本或命令的高技術(shù)。語音識別是一門涉及面很廣的交叉學(xué)科,它與聲學(xué)、語音學(xué)、語言學(xué)、信息理論、模式識別理論以及神經(jīng)生物學(xué)等學(xué)科都 有非常密切的關(guān)系。語音識別技術(shù)正逐步成為計算機(jī)信息處理技術(shù)中的關(guān)鍵技術(shù),語音技術(shù)的應(yīng)用已經(jīng)成為一個具有競爭性的新興高技術(shù)產(chǎn)業(yè)。
1語音識別的基本原理
語音識別系統(tǒng)本質(zhì)上是一種模式識別系統(tǒng),包括特征提取、模式匹配、參考模式庫等三個基本單元,它的基本結(jié)構(gòu)如下圖所示語音識別模塊如何接入電話機(jī)器人:
未知語音經(jīng)過話筒變換成電信號后加在識別系統(tǒng)的輸入端,首先經(jīng)過預(yù)處理,再根據(jù)人的語音特點(diǎn)建立語音模型,對輸入的語音信號進(jìn)行分析,并抽取所需的特 征,在此基礎(chǔ)上建立語音識別所需的模板。而計算機(jī)在識別過程中要根據(jù)語音識別的模型,將計算機(jī)中存放的語音模板與輸入的語音信號的特征進(jìn)行比較,根據(jù)一定 的搜索和匹配策略,找出一系列最優(yōu)的與輸入語音匹配的模板。然后根據(jù)此模板的定義,通過查表就可以給出計算機(jī)的識別結(jié)果。顯然,這種最優(yōu)的結(jié)果與特征的選 擇、語音模型的好壞、模板是否準(zhǔn)確都有直接的關(guān)系。
2語音識別的方法
目前具有代表性的語音識別方法主要有動態(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ī)劃的思想,解決語音識別模塊如何接入電話機(jī)器人了發(fā)音長短不一的模板匹配問題,是語音識別技術(shù)中出 現(xiàn)較早、較常用的一種算法。在應(yīng)用DTW算法進(jìn)行語音識別時,就是將已經(jīng)預(yù)處理和分幀過的語音測試信號和參考語音模板進(jìn)行比較以獲取他們之間的相似度,按 照某種距離測度得出兩模板間的相似程度并選擇最佳路徑。
隱馬爾可夫模型(HMM)是語音信號處理中的一種統(tǒng)計模型,是由Markov鏈 演變來的,所以它是基于參數(shù)模型的統(tǒng)計識別方法。由于其模式庫是通過反復(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è)計就是從大量信號樣本中訓(xùn)練出好的碼書,從實(shí)際效果出發(fā)尋找到好的失真測度定義公式,設(shè)計出最佳的矢量量化系統(tǒng),用最少的搜索和 計算失真的運(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)計學(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)域。
3語音識別系統(tǒng)的分類
語音識別 系統(tǒng)可以根據(jù)對輸入語音的限制加以分類。如果從說話者與識別系統(tǒng)的相關(guān)性考慮,可以將識別系統(tǒng)分為三類語音識別模塊如何接入電話機(jī)器人:(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ī)與數(shù)字信號處理器運(yùn)算能力以及識別系統(tǒng)精度的提高,識別系統(tǒng)根據(jù) 詞匯量大小進(jìn)行分類也不斷進(jìn)行變化。目前是中等詞匯量的識別系統(tǒng),將來可能就是小詞匯量的語音識別系統(tǒng)。這些不同的限制也確定了語音識別系統(tǒng)的困難度。
4語音識別概述
語音識別技術(shù),Automatic Speech Recognition,簡稱ASR,是一種讓機(jī)器聽懂人類語言的技術(shù)。語言是人類進(jìn)行信息交流的最主要、最長用、最直接的方式。語音識別技術(shù)是實(shí)現(xiàn)人機(jī)對話的一項重大突破,在國外近年來發(fā)展十分迅速,其應(yīng)用也逐步得到推廣。近幾年逐漸普及的IVR(自動電話應(yīng)答)處理了不少簡單而又重復(fù)的咨詢工作,節(jié)省了不少人力,但這種按鍵式的語音自動應(yīng)答卻讓客戶花費(fèi)很多時間按指引來完成簡單的查詢,令用戶倍感不便。
語音識別無疑可以解決該方面的問題。語音識別系統(tǒng)的開發(fā)成功,充分發(fā)揮了計算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的優(yōu)勢,采用先進(jìn)的人機(jī)對話方式,擺脫電話按鍵的束縛,人們只要象平常一樣對著電話簡單的說出所需服務(wù)項目,即可輕松獲取自動系統(tǒng)提供的所需信息。
5語音識別應(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 。
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%。
(2)基于主機(jī)的客戶/服務(wù)機(jī)結(jié)構(gòu)
Nuance系統(tǒng)基于開放式客戶/服務(wù)機(jī)結(jié)構(gòu),特別為大型應(yīng)用程序所需的健壯性和可伸縮性而設(shè)計。呼叫者的講話由客戶端收集,而識別和鑒別處理的負(fù)載被平均分配到網(wǎng)絡(luò)上的多個分開的服務(wù)器上。
(3)N-Best處理
對于有些應(yīng)用程序,可能需要識別引擎產(chǎn)生可能的識別結(jié)果集,而不是一個最好的結(jié)果。Nuance系統(tǒng)的N-best識別處理方法便有這個功能,它提供了可能的識別結(jié)果列表,并按可能性從高到低排列。
(4)語法概率
Nuance系統(tǒng)允許對呼叫者所講的特定詞語或短語的在語法中的概率進(jìn)行指定。當(dāng)被講的詞語或短語的概率可根據(jù)實(shí)際使用進(jìn)行估計時,非常有用。對語法增加概率可提高識別的準(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ī)制效果較理想。
6.基于識別的應(yīng)用
語音短信本身業(yè)務(wù)、公司電話簿、個人電話簿、智能點(diǎn)歌、股票查詢和交易、智能信息點(diǎn)播、列車時刻查詢
公司電話簿特點(diǎn)
?系統(tǒng)支持電話接入方式
用戶可通過電話修改個人密碼,個人上班電話和非上班電話
?系統(tǒng)支持WEB接入方式
? 系統(tǒng)管理員可修改所有信息
? 各公司管理員可增加,刪除,修改本公司的電話信息
7語音識別單元設(shè)計
目前,語音識別技術(shù)的發(fā)展十分迅速,按照識別對象的類型可以分為特定人和非特定人語音識別。特定人是指識別對象為專門的人,非特定人是指識別對象是針對大多數(shù)用戶,一般需要采集多個人的語音進(jìn)行錄音和訓(xùn)練,經(jīng)過學(xué)習(xí),從而達(dá)到較高的識別率。
本文采用的LD3320語音識別芯片是一顆基于非特定人語音識別技術(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所示。
8系統(tǒng)軟件設(shè)計
示教與回放系統(tǒng)的軟件設(shè)計包括測控計算機(jī)的軟件設(shè)計和各從設(shè)備Arduino mega260控制器的軟件設(shè)計。
測控計算機(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ī)每隔50 ms 對下位機(jī)進(jìn)行控制及輪詢,并記錄反饋數(shù)據(jù),在數(shù)據(jù)記錄時以50 ms 為一個單位。采用定時器對時間進(jìn)行控制。在回放過程中首先比對當(dāng)前時間和所記錄的時間,當(dāng)所記錄的時間與當(dāng)前時間吻合時測控計算機(jī)控制下位機(jī)執(zhí)行該事件, 完成事件回放。
Arduino mega2560控制器負(fù)責(zé)接收測控計算機(jī)的控制指令并執(zhí)行指令,讀取語音識別結(jié)果,對聲強(qiáng)數(shù)據(jù)采集和處理,控制語音合成單元進(jìn)行語音合成等。Arduinomega2560 控制器采用串口中斷的方式進(jìn)行命令接收。
只有正確接收到命令才會執(zhí)行并回傳結(jié)果,若測控計算機(jī)在限定時間內(nèi)未收到回傳結(jié)果則表明發(fā)生錯誤,測控計算機(jī)需重新發(fā)送。數(shù)據(jù)接收流程圖如圖8所示。
本文介紹了語音識別基本知識,同時利用智能語音芯片設(shè)計了某模擬訓(xùn)練器的示教與回放系統(tǒng),該系統(tǒng)不需要現(xiàn)在流行的虛擬現(xiàn)實(shí)技術(shù)的支持,僅在MCU 的控制下就可以運(yùn)行。該系統(tǒng)也可以在小型的便攜式設(shè)備上實(shí)現(xiàn),具有良好的應(yīng)用前景。