歐陽(yáng)玲,宋 克
(1.中原工學(xué)院,鄭州 450007;2.國(guó)家數(shù)字交換系統(tǒng)工程技術(shù)研究中心,鄭州450002)
一種基于FPGA實(shí)現(xiàn)的改進(jìn)語(yǔ)音端點(diǎn)檢測(cè)算法
歐陽(yáng)玲1,宋 克2
(1.中原工學(xué)院,鄭州 450007;2.國(guó)家數(shù)字交換系統(tǒng)工程技術(shù)研究中心,鄭州450002)
介紹了一種基于FPGA硬件實(shí)現(xiàn)的語(yǔ)音端點(diǎn)檢測(cè)算法,該算法以短時(shí)平均能量和短時(shí)平均過(guò)零率為基礎(chǔ),具有硬件實(shí)現(xiàn)簡(jiǎn)單、資源占用量低、檢測(cè)效果良好等特點(diǎn);給出了算法的流程與硬件實(shí)現(xiàn)模塊,以及采用FPGA綜合和仿真的結(jié)果.
FPGA;語(yǔ)音端點(diǎn)檢測(cè);短時(shí)平均能量;短時(shí)平均過(guò)零
在語(yǔ)音信號(hào)系統(tǒng)中,數(shù)字語(yǔ)音信號(hào)是由語(yǔ)音、靜音和各種背景噪音混合組成的.在這種信號(hào)中將語(yǔ)音和各種非語(yǔ)音信號(hào)時(shí)段區(qū)分開來(lái),準(zhǔn)確地確定出語(yǔ)音信號(hào)的起止點(diǎn),被稱為端點(diǎn)檢測(cè).語(yǔ)音信號(hào)的端點(diǎn)檢測(cè)在語(yǔ)音信號(hào)處理中非常重要.實(shí)驗(yàn)表明,端點(diǎn)檢測(cè)是否準(zhǔn)確對(duì)語(yǔ)音信號(hào)的識(shí)別率具有非常重要的影響;另外,準(zhǔn)確地檢測(cè)出語(yǔ)音信號(hào)的端點(diǎn)還可以減少后續(xù)處理的計(jì)算量,提高芯片的處理能力.
端點(diǎn)檢測(cè)的算法很多,如基于自相關(guān)極大值、基于小波變換、基于頻帶方差、基于倒譜特征、基于信息熵、基于 HMM等等端點(diǎn)檢測(cè)算法[1],然而這些算法由于算法復(fù)雜、計(jì)算量大、實(shí)時(shí)性差,很難應(yīng)用于ASIC硬件實(shí)現(xiàn).本文介紹一種改進(jìn)的基于短時(shí)平均能量和短時(shí)平均過(guò)零率的端點(diǎn)檢測(cè)算法,并將其在ASIC上實(shí)現(xiàn),性能良好.
基于短時(shí)平均能量和短時(shí)平均過(guò)零率的端點(diǎn)檢測(cè)算法是一種基于時(shí)域的語(yǔ)音端點(diǎn)檢測(cè)方法.其基本思想是采用測(cè)試信號(hào)的短時(shí)能量或短時(shí)對(duì)數(shù)能量、聯(lián)合過(guò)零率等特征參數(shù)及雙門限判定法來(lái)檢測(cè)語(yǔ)音端點(diǎn)[2],即利用過(guò)零率檢測(cè)清音,用短時(shí)能量檢測(cè)濁音,兩者相配合.首先為短時(shí)能量確定2個(gè)門限[3]:一個(gè)是較低的門限,數(shù)值較小,對(duì)信號(hào)的變化比較敏感,短時(shí)能量比較容易超過(guò)該門限,但當(dāng)短時(shí)能量超過(guò)低門限時(shí),測(cè)試信號(hào)未必是語(yǔ)音的開始,有可能是很短的噪聲引起的,這時(shí)需要配合過(guò)零率來(lái)判斷是否是語(yǔ)音幀;另一個(gè)是比較高的門限,數(shù)值較大,當(dāng)短時(shí)能量超過(guò)高門限時(shí),則直接判定語(yǔ)音信號(hào)為語(yǔ)音幀.
整個(gè)端點(diǎn)檢測(cè)可分為4段:靜音段、過(guò)渡段、語(yǔ)音段、結(jié)束.在靜音段,如果短時(shí)能量超過(guò)低門限且過(guò)零率超過(guò)門限值,或者短時(shí)能量超過(guò)高門限,就開始標(biāo)記起始點(diǎn),進(jìn)入過(guò)渡段;在過(guò)渡段,如果連續(xù)3幀語(yǔ)音被判定為語(yǔ)言幀,即認(rèn)為進(jìn)入語(yǔ)音段,否則,將當(dāng)前狀態(tài)恢復(fù)到靜音段;在語(yǔ)音段,如果短時(shí)能量超過(guò)低門限但過(guò)零率未超過(guò)門限值,或者短時(shí)能量低于低門限,就開始進(jìn)入過(guò)渡段,如果連續(xù)3幀語(yǔ)音被判定為靜音幀,即認(rèn)為語(yǔ)音結(jié)束,否則,將當(dāng)前狀態(tài)恢復(fù)到語(yǔ)音段,繼續(xù)檢測(cè)下一幀語(yǔ)音數(shù)據(jù).
定義幀平均幅度(短時(shí)能量):
為第n幀語(yǔ)音信號(hào)的平均幅度;n為幀的編號(hào);N為每幀的點(diǎn)數(shù).
定義幀語(yǔ)言信號(hào)的短時(shí)平均過(guò)零率:
Zj為幀語(yǔ)音信號(hào)的短時(shí)平均過(guò)零率.
首先,為幀平均幅度確定2個(gè)門限:一個(gè)是較低的門限(AL),數(shù)值較小,對(duì)信號(hào)的變化比較敏感,很容易被超過(guò);另一個(gè)是比較高的門限,數(shù)值較大(AH).當(dāng)幀平均幅度超過(guò)低門限時(shí),進(jìn)行過(guò)零率檢測(cè),超過(guò)高門限時(shí)直接判定為語(yǔ)言幀.
其次,定義3個(gè)短時(shí)平均過(guò)零率門限T1、T2、T3,T1 只要門限值T1、T2、T3和權(quán)值w1、w2、w3選得合適,語(yǔ)音幀信號(hào)的Z值明顯大于靜音幀的Z值.通過(guò)試驗(yàn)找出一個(gè)分界值Z0,當(dāng)Z>Z0時(shí),判定該幀為語(yǔ)音幀;當(dāng)Z 算法實(shí)現(xiàn)框圖和流程圖分別如圖1和圖2所示. 其中:SS=0,表示靜音;SS=1,表示語(yǔ)音;VN為連續(xù)檢測(cè)記錄是語(yǔ)音的幀數(shù);VS為連續(xù)檢測(cè)記錄是非語(yǔ)音的幀數(shù). 圖1 算法實(shí)現(xiàn)框圖 圖2 算法實(shí)現(xiàn)流程圖 本設(shè)計(jì)的輸入為每幀256點(diǎn)16位的有符號(hào)語(yǔ)音數(shù)據(jù),分別計(jì)算每幀語(yǔ)音數(shù)據(jù)的平均幅度(為簡(jiǎn)便起見(jiàn),這里采用幅值和代替)和幀短時(shí)平均過(guò)零率.然后根據(jù)計(jì)算結(jié)果和設(shè)定的各門限值按照一定的規(guī)則進(jìn)行判決,輸出每幀語(yǔ)音信號(hào)的檢測(cè)結(jié)果(靜音或語(yǔ)音).硬件結(jié)構(gòu)框圖如圖3所示: 圖3 FPGA硬件結(jié)構(gòu)圖 當(dāng)VAD使能信號(hào)有效時(shí),計(jì)數(shù)獲取每幀256點(diǎn)語(yǔ)音數(shù)據(jù),計(jì)算每點(diǎn)語(yǔ)音數(shù)據(jù)的幅值(絕對(duì)值),并進(jìn)行累加.當(dāng)每幀256點(diǎn)數(shù)據(jù)處理完成,產(chǎn)生該幀幅值后,送給VSJ模塊并置位ARC完成信號(hào). 輸入信號(hào):Data(0:15)(16位語(yǔ)音信號(hào));Start(VAD使能信號(hào));CLK100M(工作時(shí)鐘);RESET(復(fù)位信號(hào)). 輸出信號(hào):A(幀幅度值);ARCVCO_En(ARC完成信號(hào),當(dāng)該信號(hào)為1時(shí),使能下一級(jí)操作). 當(dāng)VAD使能信號(hào)有效時(shí),計(jì)數(shù)獲取每幀256點(diǎn)語(yǔ)音數(shù)據(jù),計(jì)算過(guò)零率Z(Z=w1×Z1+w2×Z2+w3×Z3).當(dāng)每幀256點(diǎn)數(shù)據(jù)處理完成,產(chǎn)生該幀過(guò)零率后,送給VSJ模塊并置位ZCN完成信號(hào). 輸入信號(hào):Data(0:15)(16位語(yǔ)音信號(hào));Start(VAD使能信號(hào));CL K100M(工作時(shí)鐘);RESET(復(fù)位信號(hào));T1、T2、T3、w1、w2、w3(16位門限值). 輸出信號(hào):Z(過(guò)零率);ZCNVCO_En(ZCN完成信號(hào),使能下一級(jí)操作).該模塊流程如圖4所示. 圖4 ZCN模塊算法流程圖 將ARC和ZCN模塊輸出的幀數(shù)據(jù)處理完成的信號(hào)進(jìn)行與操作,生成VSJ模塊使能信號(hào),然后進(jìn)行判決. 輸入信號(hào):ARCVCO_En(ARC完成信號(hào),使能下一級(jí)操作);ZCNVCO_En(ZCN完成信號(hào),使能下一級(jí)操作). 輸出信號(hào):VCOVSJ_En(VSJ使能信號(hào)). 讀取每幀語(yǔ)音數(shù)據(jù)幅值和過(guò)零率,判斷該幀是否為語(yǔ)音,并根據(jù)最近3幀的判決結(jié)果輸出語(yǔ)音/靜音判決信號(hào)及VAD幀處理完成信號(hào). 輸入信號(hào):A(幀幅度值);Z(過(guò)零率);AL、A H、Z0(32/16位門限值);VCOVSJ_En(VSL使能信號(hào));CL K100M(工作時(shí)鐘);RESET(復(fù)位信號(hào)). 輸出信號(hào):VADHAM_Voice(有無(wú)語(yǔ)音標(biāo)志,VADHAM_Voice=1,表示有語(yǔ)音;VADHAM_Voice=0,表示靜音);VADHAM_FraEnd(VAD幀判決完成信號(hào)). 該模塊流程如圖5所示. 圖5 VSJ模塊算法流程圖 采用Xinlix公司的Virtex-5系列FPGA對(duì)本算法的設(shè)計(jì)實(shí)現(xiàn)進(jìn)行綜合,綜合工具為ISE10.1.03,得到的結(jié)果如表1所示. 表1 FPGA硬件資源占用率 由表1可以看出,本算法的設(shè)計(jì)在硬件上占用的資源較少,因此可以很容易地與其他數(shù)字語(yǔ)音處理模塊一起構(gòu)成完整的語(yǔ)音處理芯片. 為驗(yàn)證本算法的檢測(cè)結(jié)果,特選取如下一段實(shí)際語(yǔ)音進(jìn)行仿真測(cè)試,其中標(biāo)記部分為有話幀(18幀到28幀),其余均為噪聲,如圖6所示. 圖6 實(shí)際語(yǔ)音波形圖 仿真結(jié)果如圖7所示,其中檢測(cè)為有話幀是19幀到29幀,其余為無(wú)話幀. 圖7 語(yǔ)音端點(diǎn)檢測(cè)仿真波形圖 本文介紹了一種基于短時(shí)平均能量和短時(shí)平均過(guò)零率的端點(diǎn)檢測(cè)算法的硬件實(shí)現(xiàn)方法. 通過(guò)仿真,可以看出該設(shè)計(jì)可以較好地實(shí)現(xiàn)話音信號(hào)中的噪音分辨,能夠作為預(yù)處理部分的端點(diǎn)檢測(cè)模塊,應(yīng)用于各種語(yǔ)音處理芯片的設(shè)計(jì). [1]王炳錫,屈丹,彭煊.實(shí)用語(yǔ)音識(shí)別基礎(chǔ)[M].北京:國(guó)防工業(yè)出版社,2005:265-269. [2]李祖鵬,姚佩陽(yáng).一種語(yǔ)音段起止點(diǎn)端點(diǎn)檢測(cè)新方法[J].電訊技術(shù),2000(3):68-71. [3]徐大為,吳邊,趙建偉,等.一種噪聲環(huán)境下的實(shí)時(shí)語(yǔ)音端點(diǎn)檢測(cè)算法[J].計(jì)算機(jī)工程與應(yīng)用,2003(1):115-117. A Improved Algorithm of VAD Based on FPGA Realizing OU YANG ling,SONG Ke This paper introduces a kind of Voice Activity Detection(VAD)algo rithm based on FPGA realizing.The algorithm that based on short-term average energy and short-time average zero-crossing rate,has the virtuesof simp le hardware imp lementation,low resources use and good detection effect.The algorithm p rocess and the realization of hardwaremodulesand FPGA comp rehensive and simulation resultsare given in the paper. FPGA;VAD;sho rt-term average energy;sho rt-time average zero-crossing rate TN912 A 10.3969/j.issn.1671-6906.2011.01.019 1671-6906(2011)01-0070-04 2011-01-20 歐陽(yáng)玲(1978-),女,安徽池州人,講師,碩士.3 算法硬件實(shí)現(xiàn)模塊
3.1 幅值計(jì)算模塊ARC
3.2 過(guò)零率計(jì)算模塊ZCN
3.3 控制信號(hào)模塊VCO
3.4 語(yǔ)音/靜音判決模塊VSJ
4 FPGA綜合與仿真結(jié)果
5 結(jié) 語(yǔ)
(1.Zhongyuan University of Technology,Zhengzhou 450007;2.China National Digital Sw itching System Engineering&Technology R&D Center,Zhengzhou 450002,china)