3G 手機(jī)語音識(shí)別應(yīng)用中DSP的選擇策略
成本、性能和效率的折衷
DSP的速度越快,就越便于利用現(xiàn)代的HMM技術(shù),如信道匹配和聲域匹配技術(shù),因此,理論上講,DSP速度越快,ASR系統(tǒng)的性能就越好。然而,并行處理方法在提高ASR系統(tǒng)吞吐量中也扮演著重要角色。例如,一個(gè)具有4 ALU(算術(shù)邏輯單元)的200MHz DSP比只有1 ALU但運(yùn)行于400MHz的DSP具有更高的吞吐量。根據(jù)具體應(yīng)用的不同,2到3個(gè)單ALU DSP提供的性能與一個(gè)具有4 ALU的DSP相仿。相對(duì)一個(gè)具有4 ALU的DSP處理器方案來說,多個(gè)單ALU的DSP會(huì)提高手機(jī)的成本,因此對(duì)于適銷對(duì)路產(chǎn)品要充分權(quán)衡成本與性能之間的折衷。
總之,當(dāng)比較一個(gè)600MHz的單ALU DSP和一個(gè)300MHz但有4 ALU的DSP時(shí),設(shè)計(jì)工程師始終應(yīng)把握的最終目標(biāo)是高效的運(yùn)算吞吐量,具有多個(gè)ALU的DSP也許是最好的解決方案。
性能與功耗
頂級(jí)性能的DSP采用并行結(jié)構(gòu)來獲得最佳的性能空間。有個(gè)著名的平衡型并行結(jié)構(gòu)StarCore SC140就采用了指令級(jí)并行結(jié)構(gòu),它具有4個(gè)并行ALU以及一個(gè)稱為變長(zhǎng)執(zhí)行集(VLES)的改進(jìn)型甚長(zhǎng)指令字模型。VLES的優(yōu)點(diǎn)在于它支持在內(nèi)存中完成高效的指令調(diào)度、執(zhí)行和打包。它能通過一個(gè)指令隊(duì)列對(duì)前端提供反饋,并通過調(diào)度器控制后端,因此除非需要執(zhí)行計(jì)算,VLES處理一般不消耗功率。
在并行VLES結(jié)構(gòu)中,一些特殊指令需要成組以避免空操作(Nop),由于減少了時(shí)鐘周期,處理時(shí)間也相應(yīng)減少了。比較而言,在甚長(zhǎng)指令字計(jì)算中,所有執(zhí)行步驟都必須按順序排列,因此在一個(gè)8字節(jié)的執(zhí)行集甚至是1字節(jié)數(shù)據(jù)時(shí),系統(tǒng)就需要7個(gè)占位符(placeholder)或Nop。
由于VLES結(jié)構(gòu)不需要Nop,VLES設(shè)計(jì)中的復(fù)雜性從硬件或編程器轉(zhuǎn)移到了編譯器。由于每個(gè)周期都充滿了數(shù)據(jù),因此每個(gè)周期就具有更高的效率,從而也提高了電源與內(nèi)存的使用效率。
電源管理
由于ASR系統(tǒng)需要連續(xù)處理語音數(shù)據(jù),會(huì)使DSP成為消耗電能的主要部件,因此高效利用電源對(duì)設(shè)備成功走向市場(chǎng)至關(guān)重要。
在高性能DSP中,選擇16位指令集而非32位指令集能提高代碼密度,進(jìn)一步減少對(duì)內(nèi)存、功耗和體積的需求,一部分原因是由于更短的16位指令集可以減少寄存器和數(shù)據(jù)線數(shù)量。例如在ASR應(yīng)用中,存儲(chǔ)的詞匯量可能達(dá)到2.5MB(對(duì)于1024簇的三音素狀態(tài),5個(gè)合成和39個(gè)參數(shù)來說,聲學(xué)HMM狀態(tài)模型是400KB;一本有1萬個(gè)三態(tài)三音素代碼本是60KB;三音素狀態(tài)轉(zhuǎn)移概率矩陣是500KB;一個(gè)具有40個(gè)雜亂態(tài)2萬字的雙字母組是1.6MB)。如果DSP具有高的代碼密度,能為ASR系統(tǒng)提供固定數(shù)量的存儲(chǔ)器,那么就可以獲得更好更大的聲學(xué)和語言模型。
片上和片外存儲(chǔ)器
對(duì)于ASR系統(tǒng)中使用的DSP來說,有效地利用片上和片外存儲(chǔ)器是另外一個(gè)重要的課題。由于ASR系統(tǒng)需要大量的存儲(chǔ)空間用于詞匯與模式識(shí)別數(shù)據(jù)的存儲(chǔ),一個(gè)靈活的存儲(chǔ)結(jié)構(gòu)在這里將顯得特別重要。例如,一個(gè)具備統(tǒng)一尋址存儲(chǔ)器的DSP能使設(shè)計(jì)工程師很好地平衡程序和數(shù)據(jù),還能平衡系統(tǒng)算法的復(fù)雜性與聲學(xué)和語言模型的大小以獲得最優(yōu)化的性能。
例如,如果具有100條命令的識(shí)別系統(tǒng)模型只有100kB的片上系統(tǒng)內(nèi)存,總共內(nèi)存空間需求是240kB,那么采用二次識(shí)別方法能更有效地利用片上快速存儲(chǔ)器。
第一次(原始識(shí)別階段)只使用39個(gè)參數(shù)中的13個(gè)MFCC,因此模型大小為80kB,可以載入片上內(nèi)存。原始識(shí)別階段的候選命令數(shù)量要比原來的100個(gè)少,比方說是33個(gè)命令,但可信度高達(dá)99.9%。
第二次(精確識(shí)別階段)把33個(gè)候選命令的39個(gè)參數(shù)作為模型使用,大小是80kB,因此又可以把該模型裝載入片上內(nèi)存。這種二次識(shí)別方法會(huì)引入一些延時(shí),但延時(shí)非常小,大約只有10ms,說話人一般不會(huì)覺察到。
統(tǒng)一尋址存儲(chǔ)器能夠支持較大的詞匯庫或命令集,還能支持較大的HMM模型或神經(jīng)網(wǎng)絡(luò)系數(shù),因此能簡(jiǎn)單化實(shí)時(shí)任務(wù)。例如為ASR系統(tǒng)的程序和數(shù)據(jù)準(zhǔn)備100kB的存儲(chǔ)器,設(shè)計(jì)工程師就能平衡好算法復(fù)雜性與詞匯量或命令集大小之間的關(guān)系。如果程序要占50kB,那么數(shù)據(jù)只能是50kB。如果允許降低識(shí)別精度而將程序代碼壓縮到20kB,那么命令集就能用到80kB,也就是增加了詞匯庫容量。
在ASR系統(tǒng)中,高度并行化、高代碼密度和有效利用存儲(chǔ)器等優(yōu)點(diǎn)還能使DSP完成語音識(shí)別以外的任務(wù)。在大多數(shù)情況下,設(shè)計(jì)工程師可以將部分計(jì)算資源分配給語音識(shí)別之用,而將剩余資源用來執(zhí)行信道處理系統(tǒng)中所需的其它任務(wù)。
評(píng)論