語(yǔ)音識別及其定點(diǎn)DSP實(shí)現
2.2 系統的硬件結構
在構成語(yǔ)音識別電路時(shí),我們采用了ADSP2181的主從結構設計方式,通過(guò)IDMA口由CPU裝載程序。語(yǔ)音識別系統的硬件結構如圖2所示。
在這種結構中,PC機為主CPU,ADSP2181為從CPU,由PC機通過(guò)IDMA口將程序裝載到ADSP2181的內部存儲器中。PC機總線(xiàn)通過(guò)CPLD譯碼,形成IRD,IWR,IAL,IS等控制信號,與ADSP2181的IDMA口相連。這樣,在A(yíng)DSP2181全速運行時(shí),主機可以查詢(xún)從機的運行狀態(tài),可以訪(fǎng)問(wèn)到ADSP2181內部所有的程序存儲器和數據存儲器。這對程序的編譯和調試,以及語(yǔ)音信號的實(shí)時(shí)處理帶來(lái)了極大的方便。
3 語(yǔ)音識別的DSP實(shí)現技術(shù)
3.1 浮點(diǎn)運算的定點(diǎn)實(shí)現
在語(yǔ)音識別的算法中,有許多的浮點(diǎn)運算。用定點(diǎn)DSP來(lái)實(shí)現浮點(diǎn)運算是在編寫(xiě)語(yǔ)音識別程序中需要首先解決的問(wèn)題。這個(gè)問(wèn)題可以通過(guò)數的定標方法來(lái)實(shí)現。數的定標就是決定小數點(diǎn)在定點(diǎn)數中的位置。Q表示法是一種常用的定標方法。其表示機制是:
設定點(diǎn)數是J,浮點(diǎn)數是)/,則Q法表示的定點(diǎn)數與浮點(diǎn)數的轉換關(guān)系為:
浮點(diǎn)數)/轉換為定點(diǎn)數x:x= (int)y×2Q;
定點(diǎn)數z轉換為浮點(diǎn)數y:y =(float)x×2-Q。
3.2 數據精度的處理
用16b的定點(diǎn)DSP實(shí)現語(yǔ)音識別算法時(shí),雖然程序的運行速度提高了,但是數據精度比較低。這可能由于中間過(guò)程的累計誤差而引起運算結果的不正確。為了提高數據的運算精度,在程序中采用了以下的處理方法:
(1)擴展精度
在精度要求比較高的地方,將計算的中間變量采用32b,甚至48b來(lái)表示。這樣,在指令條數增加不多的情況下卻使運算精度大大提高了。
(2)采用偽浮點(diǎn)法來(lái)表示浮點(diǎn)數
偽浮點(diǎn)法即用尾數+指數的方法來(lái)表示浮點(diǎn)數。這時(shí),數據塊的尾數可以采用Q1.15數據格式,數據塊的指數相同。這種表示數據的方法有足夠大的數據范圍,可以完全滿(mǎn)足數據精度的要求,但是需要自己編寫(xiě)一套指數和尾數運算庫,會(huì )額外增加程序的指令數和運算量,不利于實(shí)時(shí)實(shí)現。
以上兩種方法,都可以提高運算精度,但在實(shí)際操作時(shí),要根據系統的要求和算法的復雜度,來(lái)權衡考慮。
評論