張 梅
(安徽理工大學(xué),安徽 淮南232001)
語(yǔ)音端點(diǎn)檢測(cè)是語(yǔ)音信號(hào)處理中一個(gè)至關(guān)重要的環(huán)節(jié),只有準(zhǔn)確地確定出語(yǔ)音信號(hào)的起止點(diǎn),才能順利進(jìn)行語(yǔ)音的后續(xù)處理。語(yǔ)音端點(diǎn)檢測(cè)算法很多,通常根據(jù)噪音和語(yǔ)音的統(tǒng)計(jì)特征來(lái)判別。這些算法在高信噪比時(shí)有較好的檢測(cè)效果,但在低信噪比時(shí)常產(chǎn)生誤判現(xiàn)象,存在明顯不足[1]。
本文介紹了一種基于小波分析和模糊RBF神經(jīng)網(wǎng)絡(luò)的語(yǔ)音端點(diǎn)檢測(cè)算法,該算法采用以TMS320VC5416 DSP為核心的處理電路來(lái)實(shí)現(xiàn),具有檢測(cè)正確率高、快速及時(shí)等優(yōu)點(diǎn)。
基于模糊RBF神經(jīng)網(wǎng)絡(luò)的語(yǔ)音端點(diǎn)檢測(cè)算法的基本思想是:首先利用小波分析對(duì)語(yǔ)音信號(hào)進(jìn)行特征量提取,再將這些特征量作為模糊RBF神經(jīng)網(wǎng)絡(luò)的輸入對(duì)其進(jìn)行運(yùn)算,最后判別出是語(yǔ)音信號(hào)還是噪聲信號(hào)。
小波分析具有良好的時(shí)域和頻域局部特性,可對(duì)信號(hào)進(jìn)行精細(xì)分析,因此采用小波分析進(jìn)行語(yǔ)音信號(hào)特征量提取[2]。模糊RBF神經(jīng)網(wǎng)絡(luò)是一種品質(zhì)優(yōu)良的前饋型神經(jīng)網(wǎng)絡(luò),它結(jié)合了模糊函數(shù)與神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn),可以以任意精度逼進(jìn)任意非線性函數(shù),具有結(jié)構(gòu)緊湊、容錯(cuò)能力強(qiáng)、自學(xué)習(xí)能力強(qiáng)等優(yōu)點(diǎn)[3]。本文利用模糊RBF神經(jīng)網(wǎng)絡(luò)對(duì)經(jīng)小波分析處理后的信號(hào)進(jìn)行運(yùn)算,從而檢測(cè)出語(yǔ)音信號(hào)的端點(diǎn)。
首先將采集到的語(yǔ)音數(shù)據(jù)進(jìn)行分幀處理,得到一組幀數(shù)據(jù)。再對(duì)每幀信號(hào)x(n)進(jìn)行多次小波變換,將其分解為 N 個(gè)不同頻段的子帶信號(hào):x1(n)、x2(n)、…、xN(n)。計(jì)算每個(gè)子帶的平均能量:
其中,Ni為第 i個(gè)子帶 xi(n)的長(zhǎng)度,i=1,2,…,N。將得到的 E1、E2、…、EN子帶平均能量進(jìn)行均值和方差計(jì)算:
將所得到的能量均值和能量方差作為語(yǔ)音信號(hào)的特征量,送入模糊RBF神經(jīng)網(wǎng)絡(luò)進(jìn)行運(yùn)算。
用于語(yǔ)音端點(diǎn)檢測(cè)的模糊RBF神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
模糊RBF神經(jīng)網(wǎng)絡(luò)由4層構(gòu)成:
第一層為輸入層。該層有兩個(gè)結(jié)點(diǎn),以能量均值和能量方差為輸入,將其傳遞到下一層。
第二層為模糊化層。該層對(duì)第一層的輸入量進(jìn)行模糊化。將輸入量分成{VL(非常低),L(低),M(中),H(高),VH(非常高)}5個(gè)論域,故模糊化層有10個(gè)結(jié)點(diǎn),隸屬度函數(shù)采用高斯徑向基函數(shù)[4]。第i個(gè)輸入量第j個(gè)模糊集的隸屬度函數(shù)為:
式中,cj和δj分別表示隸屬度的中心值和基寬,j=1,2,…,10。
第三層為模糊規(guī)則層,該層每個(gè)結(jié)點(diǎn)代表一條模糊規(guī)則。共有5×5個(gè)結(jié)點(diǎn),用來(lái)匹配模糊規(guī)則的前件,計(jì)算每條規(guī)則的合適度。該層每個(gè)結(jié)點(diǎn)的輸出為:
其中,ωjk為第二層與第三層的連接權(quán),k=1,2,…,25。
第四層為輸出層,用于去模糊。設(shè)置一個(gè)節(jié)點(diǎn),選用logsig()函數(shù)作為傳遞函數(shù),輸出結(jié)果為(0,1)之間。該層輸出為:
其中,ωkl為第三層與第四層的連接權(quán)。
該網(wǎng)絡(luò)采用誤差反傳(BP)學(xué)習(xí)算法進(jìn)行訓(xùn)練。定義目標(biāo)函數(shù)為:
式中,di為期望輸出,yi為實(shí)際輸出。
以TMS320VC5416 DSP為核心,并擴(kuò)展相應(yīng)的外圍電路來(lái)實(shí)現(xiàn)該算法,系統(tǒng)的硬件結(jié)構(gòu)如圖2所示。
系統(tǒng)主要由處理器模塊、語(yǔ)音編解碼模塊、存儲(chǔ)模塊和串行通信模塊組成。
(1)處理器模塊:選用 TI公司的 TMS320VC5416 DSP作為系統(tǒng)的核心處理單元,完成語(yǔ)音信號(hào)的采集、端點(diǎn)的檢測(cè)以及與PC機(jī)的通信等工作。TMS320VC5416是TI公司生產(chǎn)的一種低功耗高性能定點(diǎn)DSP,適用于語(yǔ)音處理、有線和無(wú)線通信、便攜式信息系統(tǒng)等方面[5]。
(2)語(yǔ)音編解碼模塊:選用TI公司開發(fā)的TLV320AIC23芯片作為語(yǔ)音信號(hào)的編解碼模塊,將外部模擬語(yǔ)音轉(zhuǎn)化成數(shù)字信號(hào)輸入DSP,同時(shí)完成內(nèi)部數(shù)字語(yǔ)音的模擬語(yǔ)音輸出工作。TLV320AIC23芯片與TMS320VC5416 DSP的連接電路如圖3所示。
(3)存儲(chǔ)模塊:由于語(yǔ)音信號(hào)處理需較大的存儲(chǔ)空間,系統(tǒng)外擴(kuò)了一片SRAM和一片F(xiàn)lash存儲(chǔ)器。SRAM用來(lái)存儲(chǔ)語(yǔ)音數(shù)據(jù),F(xiàn)lash用來(lái)存儲(chǔ)脫機(jī)運(yùn)行程序[6]。SRAM芯片選擇ICS公司的IS61LV6416,容量為64 KB×16 bit;Flash芯片選擇SST公司的SST39VF400A,容量為256 KB×16 bit。
(4)串行通信模塊:由于TMS320VC5416沒(méi)有異步串口(UART),系統(tǒng)利用異步串口收發(fā)器TL16C550和MAX232實(shí)現(xiàn)TMS320VC5416與PC機(jī)之間的通信。其中TL16C550完成數(shù)據(jù)的并/串轉(zhuǎn)換以及串行傳輸?shù)牟ㄌ芈试O(shè)定等工作,MAX232完成電平轉(zhuǎn)換。
系統(tǒng)通過(guò)TLV320AIC23采集由MIC或LINE IN輸入的語(yǔ)音信號(hào),將其轉(zhuǎn)化為數(shù)字信號(hào)后送入DSP進(jìn)行端點(diǎn)檢測(cè),主要是提取特征量和完成模糊RBF神經(jīng)網(wǎng)絡(luò)運(yùn)算,并將DSP處理好的數(shù)據(jù)通過(guò)TL16C550和MAX232與PC機(jī)進(jìn)行串行通信。
系統(tǒng)的軟件分為初始化、模糊RBF神經(jīng)網(wǎng)絡(luò)的訓(xùn)練、訓(xùn)練好的網(wǎng)絡(luò)的檢驗(yàn)和語(yǔ)音信號(hào)端點(diǎn)檢測(cè)四個(gè)部分。系統(tǒng)上電后,首先初始化程序,主要有CPU、外部時(shí)鐘、外部設(shè)備以及設(shè)置中斷等。
模糊RBF神經(jīng)網(wǎng)絡(luò)的訓(xùn)練非常重要,這一過(guò)程是告知網(wǎng)絡(luò):輸入為某種形態(tài)時(shí)是語(yǔ)音信號(hào),為其他形態(tài)時(shí)是噪聲信號(hào)[7]。采用上述學(xué)習(xí)算法不斷調(diào)整隸屬度函數(shù)的中心值與基寬以及第二層與第三層、第三層與第四層之間的連接權(quán)。設(shè)置訓(xùn)練次數(shù)為1 500,最小誤差絕對(duì)值為0.001,訓(xùn)練流程如圖4所示。
檢驗(yàn)訓(xùn)練好的模糊RBF神經(jīng)網(wǎng)絡(luò),仍以訓(xùn)練樣本為輸入。門限值選為0.5,大于0.5則認(rèn)為是語(yǔ)音,輸出為1;小于0.5則為噪聲,輸出為0。若正確識(shí)別率較低,則重新對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。
經(jīng)上述步驟后,模糊RBF神經(jīng)網(wǎng)絡(luò)即可以進(jìn)行語(yǔ)音端點(diǎn)檢測(cè),語(yǔ)音信號(hào)的端點(diǎn)檢測(cè)流程如圖5所示。
本文在以TMS320VC5416 DSP為核心的電路板上進(jìn)行語(yǔ)音端點(diǎn)檢測(cè)實(shí)驗(yàn)。利用DSP與相關(guān)電路完成數(shù)據(jù)的采集和處理,并將處理好的數(shù)據(jù)送入PC機(jī),在PC機(jī)上利用Matlab控制串口接收數(shù)據(jù),完成識(shí)別、仿真等處理。
系統(tǒng)利用TIMIT語(yǔ)音庫(kù)中語(yǔ)音作實(shí)驗(yàn)語(yǔ)音,選取200條連續(xù)語(yǔ)音,其中100條用于訓(xùn)練,100條用于測(cè)試。訓(xùn)練用語(yǔ)音為純凈語(yǔ)音,測(cè)試用語(yǔ)音為加噪語(yǔ)音,噪聲來(lái)自標(biāo)準(zhǔn)噪聲庫(kù),信噪比為 0 dB、5 dB、15 dB、20 dB及25 dB。測(cè)試的識(shí)別結(jié)果見(jiàn)表1。
表1 語(yǔ)音端點(diǎn)檢測(cè)的正確率
上述實(shí)驗(yàn)表明,本文所提出的方法檢測(cè)正確率很高,即使在信噪比較低時(shí),其檢測(cè)正確率也較為理想。
本文提出了一種語(yǔ)音端點(diǎn)檢測(cè)算法,它將模糊RBF神經(jīng)網(wǎng)絡(luò)應(yīng)用于語(yǔ)音端點(diǎn)檢測(cè),提高了檢測(cè)的正確率。采用以TMS320VC5416 DSP為核心的電路實(shí)現(xiàn)了語(yǔ)音信號(hào)的采集、處理及與PC機(jī)通信等功能,大大加快了處理速度。實(shí)驗(yàn)結(jié)果表明,本文所提出的方案有較高的檢測(cè)正確率,具有簡(jiǎn)便、可靠、穩(wěn)定、快速等優(yōu)點(diǎn),實(shí)用可行。
[1]董力,陳宏欽,馬爭(zhēng)鳴,等.基于小波變換的語(yǔ)音段起止端點(diǎn)檢測(cè)算法[J].中山大學(xué)學(xué)報(bào),2005(5):116-118.
[2]張鐵威.基于小波分析與神經(jīng)網(wǎng)絡(luò)的語(yǔ)音端點(diǎn)檢測(cè)研究[D].大連:大連理工大學(xué),2008.
[3]阮慧,黨德鵬.基于RBF模糊神經(jīng)網(wǎng)絡(luò)的信息安全風(fēng)險(xiǎn)評(píng)估[J].計(jì)算機(jī)工程與設(shè)計(jì),2011(6):2013-2018.
[4]張振紅,張雪英.基于分形維數(shù)和模糊RBF神經(jīng)網(wǎng)絡(luò)的語(yǔ)音端點(diǎn)檢測(cè)[J].電腦開發(fā)與應(yīng)用,2008(7):37-39.
[5]任麗香,馬淑芬,李方慧.TMS220600系列DSP的原理與應(yīng)用[M].北京:電子工業(yè)出版社,2000.
[6]許瑞杰.強(qiáng)噪聲環(huán)境下語(yǔ)音端點(diǎn)檢測(cè)技術(shù)的研究及DSP實(shí)現(xiàn)[D].北京:北京工業(yè)大學(xué),2010.