當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]   近年來,高性能數(shù)字信號(hào)處理芯片DSP(Digital Signal Process)技術(shù)的迅速發(fā)展,為語音識(shí)別的實(shí)時(shí)實(shí)現(xiàn)提供了可能,其中,AD公司的數(shù)字信號(hào)處理芯片以其良好的性價(jià)比和代碼的可移植

近年來,高性能數(shù)字信號(hào)處理芯片DSP(Digital Signal Process)技術(shù)的迅速發(fā)展,為語音識(shí)別的實(shí)時(shí)實(shí)現(xiàn)提供了可能,其中,AD公司的數(shù)字信號(hào)處理芯片以其良好的性價(jià)比和代碼的可移植性被廣泛地應(yīng)用于各個(gè)領(lǐng)域。因此,我們采用AD公司的定點(diǎn)DSP處理芯片ADSP2181實(shí)現(xiàn)了語音信號(hào)的識(shí)別。

1 語音識(shí)別的基本過程根據(jù)實(shí)際中的應(yīng)用不同,語音識(shí)別系統(tǒng)可以分為:特定人與非特定人的識(shí)別、獨(dú)立詞與連續(xù)詞的識(shí)別、小詞匯量與大詞匯量以及無限詞匯量的識(shí)別。但無論那種語音識(shí)別系統(tǒng),其基本原理和處理方法都大體類似。一個(gè)典型的語音識(shí)別系統(tǒng)的原理圖如圖1所示。語音識(shí)別過程主要包括語音信號(hào)的預(yù)處理、特征提取、模式匹配幾個(gè)部分。預(yù)處理包括預(yù)濾波、采樣和量化、加窗、端點(diǎn)檢測(cè)、預(yù)加重等過程。語音信號(hào)識(shí)別最重要的一環(huán)就是特征參數(shù)提取。提取的特征參數(shù)必須滿足以下的要求:(1)提取的特征參數(shù)能有效地代表語音特征,具有很好的區(qū)分性;(2)各階參數(shù)之間有良好的獨(dú)立性;(3)特征參數(shù)要計(jì)算方便,最好有高效的算法,以保證語音識(shí)別的實(shí)時(shí)實(shí)現(xiàn)。在訓(xùn)練階段,將特征參數(shù)進(jìn)行一定的處理后,為每個(gè)詞條建立一個(gè)模型,保存為模板庫。在識(shí)別階段,語音信號(hào)經(jīng)過相同的通道得到語音特征參數(shù),生成測(cè)試模板,與參考模板進(jìn)行匹配,將匹配分?jǐn)?shù)最高的參考模板作為識(shí)別結(jié)果。同時(shí),還可以在很多先驗(yàn)知識(shí)的幫助下,提高識(shí)別的準(zhǔn)確率。2 系統(tǒng)的硬件結(jié)構(gòu)
2.1 ADSP2181的特點(diǎn)AD公司的DSP處理芯片ADSP2181是一種16b的定點(diǎn)DSP芯片,他內(nèi)部存儲(chǔ)空間大、運(yùn)算功能強(qiáng)、接口能力強(qiáng)。有以下的主要特點(diǎn):(1)采用哈佛結(jié)構(gòu),外接16.67MHz晶振,指令周期為30ns,指令速度為33MI/s,所有指令單周期執(zhí)行;(2)片內(nèi)集成了80 kB的存儲(chǔ)器:16 kB字的(24b)的程序存儲(chǔ)器和16kB字(16b)的數(shù)據(jù)存儲(chǔ)器;(3)內(nèi)部有3個(gè)獨(dú)立的計(jì)算單元:算術(shù)邏輯單元(ALU)、乘累加器(MAC)和桶形移位器(SHIFT),其中乘累加器支持多精度和自動(dòng)無偏差舍人;(4)一個(gè)16b的內(nèi)部DMA端口(1DMA),供片內(nèi)存儲(chǔ)器的高速存取;一個(gè)8b自舉DMA(BDMA)口,用于從自舉程序存儲(chǔ)器中裝載數(shù)據(jù)和程序;(5)6個(gè)外部中斷,并且可以設(shè)置優(yōu)先級(jí)或屏蔽等。由于ADSP2181以上的特點(diǎn),使得該芯片構(gòu)成的系統(tǒng)體積小、性能高、成本和功耗低,能較好地實(shí)現(xiàn)語音識(shí)別算法2.2 系統(tǒng)的硬件結(jié)構(gòu)在構(gòu)成語音識(shí)別電路時(shí),我們采用了ADSP2181的主從結(jié)構(gòu)設(shè)計(jì)方式,通過IDMA口由CPU裝載程序。語音識(shí)別系統(tǒng)的硬件結(jié)構(gòu)如圖2所示。在這種結(jié)構(gòu)中,PC機(jī)為主CPU,ADSP2181為從CPU,由PC機(jī)通過IDMA口將程序裝載到ADSP2181的內(nèi)部存儲(chǔ)器中。PC機(jī)總線通過CPLD譯碼,形成IRD,IWR,IAL,IS等控制信號(hào),與ADSP2181的IDMA口相連。這樣,在ADSP2181全速運(yùn)行時(shí),主機(jī)可以查詢從機(jī)的運(yùn)行狀態(tài),可以訪問到ADSP2181內(nèi)部所有的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器。這對(duì)程序的編譯和調(diào)試,以及語音信號(hào)的實(shí)時(shí)處理帶來了極大的方便。3 語音識(shí)別的DSP實(shí)現(xiàn)技術(shù)
3.1 浮點(diǎn)運(yùn)算的定點(diǎn)實(shí)現(xiàn)在語音識(shí)別的算法中,有許多的浮點(diǎn)運(yùn)算。用定點(diǎn)DSP來實(shí)現(xiàn)浮點(diǎn)運(yùn)算是在編寫語音識(shí)別程序中需要首先解決的問題。這個(gè)問題可以通過數(shù)的定標(biāo)方法來實(shí)現(xiàn)。數(shù)的定標(biāo)就是決定小數(shù)點(diǎn)在定點(diǎn)數(shù)中的位置。Q表示法是一種常用的定標(biāo)方法。其表示機(jī)制是:設(shè)定點(diǎn)數(shù)是J,浮點(diǎn)數(shù)是)/,則Q法表示的定點(diǎn)數(shù)與浮點(diǎn)數(shù)的轉(zhuǎn)換關(guān)系為:浮點(diǎn)數(shù))/轉(zhuǎn)換為定點(diǎn)數(shù)x:x= (int)y×2Q;定點(diǎn)數(shù)z轉(zhuǎn)換為浮點(diǎn)數(shù)y:y =(float)x×2-Q。3.2 數(shù)據(jù)精度的處理用16b的定點(diǎn)DSP實(shí)現(xiàn)語音識(shí)別算法時(shí),雖然程序的運(yùn)行速度提高了,但是數(shù)據(jù)精度比較低。這可能由于中間過程的累計(jì)誤差而引起運(yùn)算結(jié)果的不正確。為了提高數(shù)據(jù)的運(yùn)算精度,在程序中采用了以下的處理方法:(1)擴(kuò)展精度在精度要求比較高的地方,將計(jì)算的中間變量采用32b,甚至48b來表示。這樣,在指令條數(shù)增加不多的情況下卻使運(yùn)算精度大大提高了。(2)采用偽浮點(diǎn)法來表示浮點(diǎn)數(shù)偽浮點(diǎn)法即用尾數(shù)+指數(shù)的方法來表示浮點(diǎn)數(shù)。這時(shí),數(shù)據(jù)塊的尾數(shù)可以采用Q1.15數(shù)據(jù)格式,數(shù)據(jù)塊的指數(shù)相同。這種表示數(shù)據(jù)的方法有足夠大的數(shù)據(jù)范圍,可以完全滿足數(shù)據(jù)精度的要求,但是需要自己編寫一套指數(shù)和尾數(shù)運(yùn)算庫,會(huì)額外增加程序的指令數(shù)和運(yùn)算量,不利于實(shí)時(shí)實(shí)現(xiàn)。以上兩種方法,都可以提高運(yùn)算精度,但在實(shí)際操作時(shí),要根據(jù)系統(tǒng)的要求和算法的復(fù)雜度,來權(quán)衡考慮。3.3 變量的維護(hù)在高級(jí)語言中,有全局變量與局部變量存儲(chǔ)的區(qū)別,但在DSP程序中,所有聲明的變量在鏈接時(shí)都會(huì)分給數(shù)據(jù)空間。所以如果按照高級(jí)語言那樣定義局部變量,就會(huì)浪費(fèi)大量的DSP存儲(chǔ)空間,這對(duì)數(shù)據(jù)空間較為緊張的定點(diǎn)DSP來說,顯然是不合理的。為了節(jié)省存儲(chǔ)空間,在編寫DSP程序時(shí),最好維護(hù)好一張變量表。每進(jìn)入一個(gè)DSP子模塊時(shí),不要急于分配新的局部變量,應(yīng)優(yōu)先使用已分配但不用的變量。只有在不夠時(shí)才分配新的局部變量。3.4 循環(huán)嵌套的處理語音識(shí)別算法的實(shí)現(xiàn),有許多是在循環(huán)中實(shí)現(xiàn)的。對(duì)于循環(huán)的處理,需要注意以下幾個(gè)問題:(1)ADSP2100系列DSP芯片中,循環(huán)嵌套最多不能超過4重,否則就會(huì)發(fā)生堆棧溢出,導(dǎo)致程序不能正確執(zhí)行。但在語音識(shí)別的DSP程序中,包括中斷在內(nèi)的嵌套程序往往超過4重。這時(shí)不能使用DSP提供的do…unTIl…指令,只能自己設(shè)計(jì)出一些循環(huán)變量,自己維護(hù)這些變量。由于這時(shí)沒有使用DSP的循環(huán)堆棧,所以也不會(huì)導(dǎo)致堆棧溢出。另外,如果采用jump指令從循環(huán)指令中跳出,則必須維護(hù)好PC,LOOP和CNTR三個(gè)堆棧的指針。(2)盡量減少循環(huán)體內(nèi)的指令數(shù)。在多重循環(huán)的內(nèi)部,減少指令數(shù)有利于降低程序的執(zhí)行次數(shù)。這樣有利于減少程序的執(zhí)行時(shí)間、提高操作的實(shí)時(shí)性。3.5 采用模塊化的程序設(shè)計(jì)方法在語音識(shí)別算法的實(shí)現(xiàn)中,為了便于程序的設(shè)計(jì)和調(diào)試,采用了模塊化的程序設(shè)計(jì)方法。以語音識(shí)別的基本過程為依據(jù)進(jìn)行模塊劃分,每個(gè)模塊再劃分為若干個(gè)子模塊,然后以模塊為單元進(jìn)行編程和調(diào)試。在編寫程序之前,首先用高級(jí)語言對(duì)每個(gè)模塊進(jìn)行算法仿真,在此基礎(chǔ)上再進(jìn)行匯編程序的編寫。在調(diào)試時(shí),可以采用高級(jí)語言與匯編語言對(duì)比的調(diào)試方式,這樣可以通過跟蹤高級(jí)語言與匯編語言的中間狀態(tài),來驗(yàn)證匯編語言的正確性,并及時(shí)的發(fā)現(xiàn)和修改錯(cuò)誤,縮短編程周期。另外,在程序的編寫過程中,應(yīng)在關(guān)鍵的部分加上必要的注釋與說明,以增強(qiáng)程序的可讀性。在總調(diào)時(shí),需要在各模塊中設(shè)置好相應(yīng)的人口參數(shù)與出口參數(shù),維護(hù)好堆棧指針與中間變量等。3.6 利用C語言與匯編語言的混合編程現(xiàn)在,大多數(shù)的DSP芯片都支持匯編語言與C或C++語言的混合編程,ADSP2181也不例外。用C語言開發(fā)DSP程序具有縮短開發(fā)周期、降低程序復(fù)雜度的優(yōu)點(diǎn),但是,程序的執(zhí)行效率卻不高,會(huì)增加額外的機(jī)器周期,不利于程序的實(shí)時(shí)實(shí)現(xiàn)。為此,在用C語言編寫語音識(shí)別算法時(shí),我們采用了定點(diǎn)化處理技術(shù)。ADSP2181是16位定點(diǎn)處理器,定點(diǎn)化處理應(yīng)注意以下幾個(gè)問題:(1)ADSP2181支持小數(shù)和整數(shù)兩種運(yùn)算方式,在計(jì)算時(shí)應(yīng)選擇小數(shù)方式,使計(jì)算結(jié)果的絕對(duì)值都小于1;(2)用雙字定點(diǎn)運(yùn)算庫代替C語言的浮點(diǎn)庫,提高運(yùn)算精度;(3)注意在每次乘加運(yùn)算之后進(jìn)行飽和操作,防止結(jié)果的上溢和下溢;(4)循環(huán)處理后的一組數(shù)據(jù)可能有不同的指數(shù),要進(jìn)行歸一化處理,以便后續(xù)定點(diǎn)操作對(duì)指數(shù)和尾數(shù)部分分別處理。4 結(jié) 語用定點(diǎn)DSP芯片構(gòu)成的語音識(shí)別系統(tǒng)有著廣泛的應(yīng)用前景,在編寫語音識(shí)別算法時(shí),對(duì)其進(jìn)行定點(diǎn)化處理以及一些原則和方法對(duì)其他類似的算法也有著現(xiàn)實(shí)指導(dǎo)意義。在實(shí)際應(yīng)用中,應(yīng)注意根據(jù)DSP芯片的特點(diǎn),對(duì)算法進(jìn)行優(yōu)化,使得DSP芯片的性能得到充分的發(fā)揮。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉