智能機器人語音識別技術
1.2 隱馬爾可夫模型HMM
隱馬爾可夫模型,即HMM是一種基于概率方法的模式匹配方法。它的應用是20世紀80年代以來語音識別領域取得的重要成果。
一個HMM模型可以表示為:

式中:π為初始狀態概率分布,πi=P(q1=θi),1≤i≤N,表示初始狀態處于θi的概率;A為狀態轉移概率矩陣,(aij)N×N,aij=P(qt+1 =θj|qt=θi),1≤i,j≤N;B為觀察值概率矩陣,B={bj(ot)},j=1,2,…,N,表示觀察值輸出概率分布,也就是觀察值ot處于狀態j的概率。
1.3 模型訓練
HMM有多種結構類型,并且有不同的分類方法。根據狀態轉移矩陣(A參數)和觀察值輸出矩陣(B參數)的不同有不同類型的HMM。
對于CHMM模型,當有多個觀察值序列時,其重估公式由參考文檔給出,此處不再贅述。
1.4 概率計算
利用HMM的定義可以得出P(O|λ)的直接求取公式:

式(2)計算量巨大,是不能接受的。Rabiner提出了前向后向算法,計算量大大減小。定義前向概率:

式(2)表示的是初始前向概率,其中bi(o1)為觀察值序列處于t=1時刻在狀態i時的輸出概率,由于它服從連續高斯混合分布,故此值往往極小。根據大量實驗觀察,通常小于10-10,此值在定點DSP中已不能用Q格式表示。分析式(3)可以發現,隨著時間t的增加,還會有大量的小數之間的乘法加法運算,使得新的前向概率值at+1更小,逐漸趨向于0,定點DSP采用普通的Q格式進行計算時便會負溢出,即便不發生負溢出也會大大丟失精度。因此必須尋找一種解決方法,在不影響DSP實時性的前提下,既不發生負溢出,又能提高精度。
2 DSP實現語音識別
孤立詞語音識別一般采用DTW動態時間規整算法。連續語音識別一般采用HMM模型或者HMM與人工神經網絡ANN相結合。
為了能實時控制機器人,首先需要考慮的是能夠實現實時地語音識別。而考慮到CHMM的巨大計算量以及成本因素,采用了數據處理能力強大,成本相對較低的定點數字信號處理器,即定點DSP。本實驗采用的是TI公司多媒體芯片TMS320DM642。定點DSP要能準確、實時的實現語音識別,必須考慮2點問題:精度問題和實時性問題。
精度問題的產生原因已經由1.4節詳細闡述,這里不再贅述。因此必須找出一種可以提高精度,而又不會對實時性造成影響的解決方法。基于以上考慮,本文提出了一種動態指數定標方法。這種方法類似于科學計數法,用2個32 b單元,一個單元表示指數部分EXP,另一個單元表示小數部分Frac。首先將待計算的數據按照指數定標格式歸一化,再進行運算。這樣當數據進行運算時,仍然是定點進行,從而避開浮點算法,從而使精度可以達到要求。
對于實時性問題,通常,語音的頻率范圍大約是300~3 400 Hz左右,因而本實驗采樣率取8 kHz,16 b量化。考慮識別的實現,必須將語音進行分幀處理。研究表明,大約在10~30 ms內,人的發音模型是相對穩定的,所以本實驗中取32 ms為一幀,16 ms為幀移的時間間隔。
解決實時性問題必須充分利用DSP芯片的片上資源。利用EDMA進行音頻數據的搬移,提高CPU利用率。采用PING—PONG緩沖區進行數據的緩存,以保證不丟失數據。CHMM訓練的模板放于外部存儲器,由于外部存儲器較片內存儲器的速度更慢,因此開啟CACHE。建立DSP/BIOS任務,充分利用BIOS進行任務之間的調度,實時處理新到的語音數據,檢測語音的起止點,當有語音數據時再進入下一任務進行特征提取及識別。將識別結果用揚聲器播放,并送入到機器人的控制模塊。
實驗中,采用如圖3的程序架構。本文引用地址:http://www.104case.com/article/161779.htm
評論