《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 智能機(jī)器人語音識別技術(shù)
智能機(jī)器人語音識別技術(shù)
現(xiàn)代電子技術(shù)
張 珍 四川科技職業(yè)技術(shù)學(xué)院
摘要: 摘要:給出了一種由說話者說出控制命令,機(jī)器人進(jìn)行識別理解,并執(zhí)行相應(yīng)動作的實現(xiàn)技術(shù)。在此,提出了一種高準(zhǔn)確率端點(diǎn)檢測算法、高精度定點(diǎn)DSP動態(tài)指數(shù)定標(biāo)算法,以解決定點(diǎn)DSP實現(xiàn)連續(xù)隱馬爾科夫模型CHMM識別算法
Abstract:
Key words :

摘要:給出了一種由說話者說出控制命令,機(jī)器人進(jìn)行識別理解,并執(zhí)行相應(yīng)動作的實現(xiàn)技術(shù)。在此,提出了一種高準(zhǔn)確率端點(diǎn)檢測算法、高精度定點(diǎn)DSP動態(tài)指數(shù)定標(biāo)算法,以解決定點(diǎn)DSP實現(xiàn)連續(xù)隱馬爾科夫模型CHMM識別算法時所涉及的大量浮點(diǎn)小數(shù)運(yùn)算問題,提高了定點(diǎn)DSP實現(xiàn)的實時性、精度,及其識別率。
關(guān)鍵詞:智能機(jī)器人語音識別;隱馬爾可夫模型;DSP

0 引言
    語音控制的基礎(chǔ)就是語音識別技術(shù),可以是特定人或者非特定人的。非特定人的應(yīng)用更為廣泛,對于用戶而言不用訓(xùn)練,因此也更加方便。語音識別可以分為孤立詞識別,連接詞識別,以及大詞匯量的連續(xù)詞識別。對于智能機(jī)器人這類嵌入式應(yīng)用而言,語音可以提供直接可靠的交互方式,語音識別技術(shù)的應(yīng)用價值也就不言而喻。

1 語音識別概述
    語音識別技術(shù)最早可以追溯到20世紀(jì)50年代,是試圖使機(jī)器能“聽懂”人類語音的技術(shù)。按照目前主流的研究方法,連續(xù)語音識別和孤立詞語音識別采用的聲學(xué)模型一般不同。孤立詞語音識別一般采用DTW動態(tài)時間規(guī)整算法。連續(xù)語音識別一般采用HMM模型或者HMM與人工神經(jīng)網(wǎng)絡(luò)ANN相結(jié)合。
    語音的能量來源于正常呼氣時肺部呼出的穩(wěn)定氣流,喉部的聲帶既是閥門,又是振動部件。語音信號可以看作是一個時間序列,可以由隱馬爾可夫模型(HMM)進(jìn)行表征。語音信號經(jīng)過數(shù)字化及濾噪處理之后,進(jìn)行端點(diǎn)檢測得到語音段。對語音段數(shù)據(jù)進(jìn)行特征提取,語音信號就被轉(zhuǎn)換成為了一個向量序列,作為觀察值。在訓(xùn)練過程中,觀察值用于估計HMM的參數(shù)。這些參數(shù)包括觀察值的概率密度函數(shù),及其對應(yīng)的狀態(tài),狀態(tài)轉(zhuǎn)移概率等。當(dāng)參數(shù)估計完成后,估計出的參數(shù)即用于識別。此時經(jīng)過特征提取后的觀察值作為測試數(shù)據(jù)進(jìn)行識別,由此進(jìn)行識別準(zhǔn)確率的結(jié)果統(tǒng)計。訓(xùn)練及識別的結(jié)構(gòu)框圖如圖1所示。

a.JPG


1. 1 端點(diǎn)檢測
    找到語音信號的起止點(diǎn),從而減小語音信號處理過程中的計算量,是語音識別過程中一個基本而且重要的問題。端點(diǎn)作為語音分割的重要特征,其準(zhǔn)確性在很大程度上影響系統(tǒng)識別的性能。
    能零積定義:一幀時間范圍內(nèi)的信號能量與該段時間內(nèi)信號過零率的乘積。
    能零積門限檢測算法可以在不丟失語音信息的情況下,對語音進(jìn)行準(zhǔn)確的端點(diǎn)檢測,經(jīng)過450個孤立詞(數(shù)字“0~9”)測試準(zhǔn)確率為98%以上,經(jīng)該方法進(jìn)行語音分割后的語音,在進(jìn)入識別模塊時識別正確率達(dá)95%。
    當(dāng)話者帶有呼吸噪聲,或周圍環(huán)境出現(xiàn)持續(xù)時間較短能量較高的噪聲,或者持續(xù)時間長而能量較弱的噪聲時,能零積門限檢測算法就不能對這些噪聲進(jìn)行濾除,進(jìn)而被判作語音進(jìn)入識別模塊,導(dǎo)致誤識。圖2(a)所示為室內(nèi)環(huán)境,正常情況下采集到的帶有呼氣噪聲的數(shù)字“0~9”的語音信號,利用能零積門限檢測算法得到的效果示意圖。最前面一段信號為呼氣噪聲,之后為數(shù)字“0~9”的語音。

b.JPG


    從圖2(a)直觀的顯示出能零積算法在對付能量較弱,但持續(xù)時間長的噪音無能為力。由此引出了雙門限能零積檢測算法。
    所謂的雙門限能零積算法指的是進(jìn)行兩次門限判斷。第一門限采用能零積,第二門限為單詞能零積平均值。也即在前面介紹的能零積檢測算法的基礎(chǔ)上再進(jìn)行一次能零積平均值的判決。其中,第二門限的設(shè)定依據(jù)取決于所有實驗樣本中呼氣噪聲的平均能零積及最小的語音單詞能零積之間的一個常數(shù)。如圖2(b)所示,即為圖2(a)中所示的語音文件經(jīng)過雙門限能零積檢測算法得到的檢測結(jié)果。可以明顯看到,最前一段信號,即呼氣噪聲已經(jīng)被視為噪音濾除。
1.2 隱馬爾可夫模型HMM
    隱馬爾可夫模型,即HMM是一種基于概率方法的模式匹配方法。它的應(yīng)用是20世紀(jì)80年代以來語音識別領(lǐng)域取得的重要成果。
    一個HMM模型可以表示為:
    c.JPG
    式中:π為初始狀態(tài)概率分布,πi=P(q1=θi),1≤i≤N,表示初始狀態(tài)處于θi的概率;A為狀態(tài)轉(zhuǎn)移概率矩陣,(aij)N×N,aij=P(qt+1 =θj|qt=θi),1≤i,j≤N;B為觀察值概率矩陣,B={bj(ot)},j=1,2,…,N,表示觀察值輸出概率分布,也就是觀察值ot處于狀態(tài)j的概率。
1.3 模型訓(xùn)練
    HMM有多種結(jié)構(gòu)類型,并且有不同的分類方法。根據(jù)狀態(tài)轉(zhuǎn)移矩陣(A參數(shù))和觀察值輸出矩陣(B參數(shù))的不同有不同類型的HMM。
    對于CHMM模型,當(dāng)有多個觀察值序列時,其重估公式由參考文檔給出,此處不再贅述。
1.4 概率計算
    利用HMM的定義可以得出P(O|λ)的直接求取公式:
    d.JPG
    式(2)計算量巨大,是不能接受的。Rabiner提出了前向后向算法,計算量大大減小。定義前向概率:
    e.JPG
    式(2)表示的是初始前向概率,其中bi(o1)為觀察值序列處于t=1時刻在狀態(tài)i時的輸出概率,由于它服從連續(xù)高斯混合分布,故此值往往極小。根據(jù)大量實驗觀察,通常小于10-10,此值在定點(diǎn)DSP中已不能用Q格式表示。分析式(3)可以發(fā)現(xiàn),隨著時間t的增加,還會有大量的小數(shù)之間的乘法加法運(yùn)算,使得新的前向概率值at+1更小,逐漸趨向于0,定點(diǎn)DSP采用普通的Q格式進(jìn)行計算時便會負(fù)溢出,即便不發(fā)生負(fù)溢出也會大大丟失精度。因此必須尋找一種解決方法,在不影響DSP實時性的前提下,既不發(fā)生負(fù)溢出,又能提高精度。

2 DSP實現(xiàn)語音識別
    孤立詞語音識別一般采用DTW動態(tài)時間規(guī)整算法。連續(xù)語音識別一般采用HMM模型或者HMM與人工神經(jīng)網(wǎng)絡(luò)ANN相結(jié)合。
    為了能實時控制機(jī)器人,首先需要考慮的是能夠?qū)崿F(xiàn)實時地語音識別。而考慮到CHMM的巨大計算量以及成本因素,采用了數(shù)據(jù)處理能力強(qiáng)大,成本相對較低的定點(diǎn)數(shù)字信號處理器,即定點(diǎn)DSP。本實驗采用的是TI公司多媒體芯片TMS320DM642。定點(diǎn)DSP要能準(zhǔn)確、實時的實現(xiàn)語音識別,必須考慮2點(diǎn)問題:精度問題和實時性問題。
    精度問題的產(chǎn)生原因已經(jīng)由1.4節(jié)詳細(xì)闡述,這里不再贅述。因此必須找出一種可以提高精度,而又不會對實時性造成影響的解決方法?;谝陨峡紤],本文提出了一種動態(tài)指數(shù)定標(biāo)方法。這種方法類似于科學(xué)計數(shù)法,用2個32 b單元,一個單元表示指數(shù)部分EXP,另一個單元表示小數(shù)部分Frac。首先將待計算的數(shù)據(jù)按照指數(shù)定標(biāo)格式歸一化,再進(jìn)行運(yùn)算。這樣當(dāng)數(shù)據(jù)進(jìn)行運(yùn)算時,仍然是定點(diǎn)進(jìn)行,從而避開浮點(diǎn)算法,從而使精度可以達(dá)到要求。
    對于實時性問題,通常,語音的頻率范圍大約是300~3 400 Hz左右,因而本實驗采樣率取8 kHz,16 b量化??紤]識別的實現(xiàn),必須將語音進(jìn)行分幀處理。研究表明,大約在10~30 ms內(nèi),人的發(fā)音模型是相對穩(wěn)定的,所以本實驗中取32 ms為一幀,16 ms為幀移的時間間隔。
    解決實時性問題必須充分利用DSP芯片的片上資源。利用EDMA進(jìn)行音頻數(shù)據(jù)的搬移,提高CPU利用率。采用PING—PONG緩沖區(qū)進(jìn)行數(shù)據(jù)的緩存,以保證不丟失數(shù)據(jù)。CHMM訓(xùn)練的模板放于外部存儲器,由于外部存儲器較片內(nèi)存儲器的速度更慢,因此開啟CACHE。建立DSP/BIOS任務(wù),充分利用BIOS進(jìn)行任務(wù)之間的調(diào)度,實時處理新到的語音數(shù)據(jù),檢測語音的起止點(diǎn),當(dāng)有語音數(shù)據(jù)時再進(jìn)入下一任務(wù)進(jìn)行特征提取及識別。將識別結(jié)果用揚(yáng)聲器播放,并送入到機(jī)器人的控制模塊。
    實驗中,采用如圖3的程序架構(gòu)。

g.JPG



3 機(jī)器人控制
    機(jī)器人由自然條件下的語句進(jìn)行控制。這些語句描述了動作的方向,以及動作的幅度。為了簡單起見,讓機(jī)器人只執(zhí)行簡單命令。由手機(jī)進(jìn)行遙控,DSP模塊識別出語音命令,送控制命令到ARM模塊,驅(qū)動左右機(jī)械輪執(zhí)行相應(yīng)動作。
3.1 硬件結(jié)構(gòu)
    機(jī)器人的硬件結(jié)構(gòu)如圖4所示。

h.JPG


    機(jī)器人主要有2大模塊,一個是基于DSP的語音識別模塊;另一個是基于ARM的控制模塊,其機(jī)械足為兩滑輪。由語音識別模塊識別語音,由控制模塊控制機(jī)器人動作。
3.2 語音控制
    首先根據(jù)需要,設(shè)置了如下幾個簡單命令:前、后、左、右。機(jī)器人各狀態(tài)之間的轉(zhuǎn)移關(guān)系如圖5所示。其中,等待狀態(tài)為默認(rèn)狀態(tài),當(dāng)每次執(zhí)行前后或左右轉(zhuǎn)命令后停止,即回到等待狀態(tài),此時為靜止?fàn)顟B(tài)。

i.JPG


    語音的訓(xùn)練模板庫由4個命令加10個阿拉伯?dāng)?shù)字共14個組成,如下所示。
    命令:“前”、“后”、“左”、“右”;
    數(shù)字:“0~9”。
    命令代表動作的方向,數(shù)字代表動作的幅度。當(dāng)執(zhí)行前后命令時,數(shù)字的單位為dm,執(zhí)行左右轉(zhuǎn)彎命令時,數(shù)字的單位為角度單位的20°。每句命令句法為命令+數(shù)字。例如,語音“左2”表示的含義為向左轉(zhuǎn)彎40°,“前4”表示向前直行4 dm。
    機(jī)器人語音控制的關(guān)鍵在于語音識別的準(zhǔn)確率。表1給出了5個男聲樣本的識別統(tǒng)計結(jié)果。

j.JPG



4 結(jié)語
    工作中,成功地將CHMM模型應(yīng)用于定點(diǎn)DSP上,并實現(xiàn)了對機(jī)器人的語音控制。解決了CHMM模型巨大計算量及精度與實時性之間的矛盾。提出了一種新的端點(diǎn)檢測算法,對于對抗短時或較低能量的環(huán)境噪音具有明顯效果。同時需要指出的是,當(dāng)語音識別指令增多時,則需要定義更多的句法,并且識別率也可能會相應(yīng)降低,計算量也會相應(yīng)變大。下一步研究工作應(yīng)更注重提高大詞匯量時的識別率及其魯棒性。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。