




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、西南林學(xué)院2004屆本科畢業(yè)論文1 前言和開發(fā)背景1.1前言本課題為給語音識(shí)別系統(tǒng)提供語音信號(hào)端點(diǎn)檢測(cè)的功能,對(duì)語音信號(hào)端點(diǎn)檢測(cè)進(jìn)行了探討和研究。語音信號(hào)處理部分包括:語音信號(hào)的電壓放大、反混疊濾波、自動(dòng)增益控制、模數(shù)變換、去除聲門激勵(lì)及口唇輻射的影響等。本課題主要是側(cè)重語音區(qū)間的端點(diǎn)檢測(cè),端點(diǎn)檢測(cè)的目的是從包含語音的一段信號(hào)中確定出語音的起點(diǎn)以及終點(diǎn)。為了實(shí)現(xiàn)可靠的端點(diǎn)檢測(cè),在算法Vad中主要應(yīng)用了短時(shí)能量和過零率兩者配合實(shí)現(xiàn),并且在端點(diǎn)檢測(cè)的過程中采取四個(gè)階段標(biāo)識(shí)語音信號(hào)的狀態(tài)來實(shí)現(xiàn)的。對(duì)大象聲音進(jìn)行錄制和處理,利用MATLAB軟件進(jìn)行端點(diǎn)檢測(cè),MATLAB軟件是語音識(shí)別系統(tǒng)中有效,方便的
2、工具,提供了強(qiáng)大的科學(xué)運(yùn)算、靈活的程序設(shè)計(jì)流程、高質(zhì)量的圖形可視化與界面設(shè)計(jì)、便捷地與其他程序和語言接口的功能。結(jié)果表明,基于端點(diǎn)檢測(cè)算法Vad和應(yīng)用MATLAB工具,可以有效確定語音的起點(diǎn)和終點(diǎn),并能夠以圖像的形式直觀的表示出來,端點(diǎn)檢測(cè)使處理時(shí)間減到最小,排除無聲段的噪聲干擾,從而使識(shí)別系統(tǒng)具有良好的識(shí)別功能1。1.2開發(fā)背景本項(xiàng)目來源于云南省重點(diǎn)項(xiàng)目西雙版納自然保護(hù)區(qū)系統(tǒng)建設(shè)。綜合應(yīng)用傳感器技術(shù),數(shù)字仿真技術(shù),數(shù)據(jù)編碼與數(shù)據(jù)壓縮技術(shù),DSP技術(shù),無線傳輸技術(shù)等,研究自然保護(hù)區(qū)視頻信號(hào)、聲音信號(hào)以及其他監(jiān)測(cè)信號(hào)的采集、傳送、處理方案,設(shè)備選型方案,二次開發(fā)技術(shù),為自然保護(hù)區(qū)信息系統(tǒng)建設(shè)。本
3、課題重點(diǎn)是語音識(shí)別系統(tǒng)的開發(fā)與研究,側(cè)重于語音識(shí)別系統(tǒng)的語音信號(hào)的端點(diǎn)檢測(cè)。本課題研究的目的在于為開發(fā)一個(gè)能夠識(shí)別野象聲音的語音識(shí)別系統(tǒng)提供語音信號(hào)的端點(diǎn)檢測(cè)功能,端點(diǎn)檢測(cè)在語音識(shí)別系統(tǒng)中有重要地位,是語音識(shí)別系統(tǒng)中不可缺少的一部分,也是預(yù)處理中很重要的一個(gè)環(huán)節(jié),這個(gè)功能使處理時(shí)間減到最小,排除無聲段的噪聲干擾,從而使識(shí)別系統(tǒng)具有良好的識(shí)別功能,提高語音識(shí)別系統(tǒng)的識(shí)別效率和準(zhǔn)確率。研究的內(nèi)容是:首先錄制大象的聲音,并處理聲音文件達(dá)到MATLAB識(shí)別的擴(kuò)展名為wav的聲音文件格式,在聲音時(shí)間上也要有控制。然后對(duì)端點(diǎn)檢測(cè)的核心算法vad進(jìn)行探討和研究,主要運(yùn)用了短時(shí)能量和過零率兩者配合實(shí)現(xiàn)可靠的端
4、點(diǎn)檢測(cè),并對(duì)其中參數(shù)進(jìn)行一步探討。2 語音信號(hào)端點(diǎn)檢測(cè)概述2.1語音識(shí)別系統(tǒng)簡介在做本課題的過程中,采用的是非實(shí)時(shí)的處理方法,在錄音時(shí)必須聲音進(jìn)行聲音控制。在一個(gè)語音識(shí)別系統(tǒng)中,程序必須能夠判斷當(dāng)前是靜音還是對(duì)象在說話,如果對(duì)象發(fā)出了語音信號(hào),那么應(yīng)該保存這段語音信號(hào),將其頭部和尾部的靜音部分刪除掉。這一功能被稱為語音信號(hào)的端點(diǎn)檢測(cè)2。語音識(shí)別系統(tǒng)是建立在一定的硬件平臺(tái)和操作系統(tǒng)之上的一套應(yīng)用軟件系統(tǒng)。其硬件平臺(tái)一般是一臺(tái)個(gè)人機(jī)或是一臺(tái)工作站;操作系統(tǒng)可以選擇UNIX或WINDOWS系列。語音識(shí)別一般分兩個(gè)步驟。第一步是系統(tǒng)“學(xué)習(xí)”或“訓(xùn)練”階段。這一階段的任務(wù)是建立識(shí)別基本單元的聲學(xué)模型以及
5、進(jìn)行文法分析的語言模型等。第二步是“識(shí)別”或“測(cè)試”階段。根據(jù)識(shí)別系統(tǒng)的類型選擇能夠滿足要求的一種識(shí)別方法,采用語音分析方法分析出這種識(shí)別方法所要求的語音特征參數(shù),按照一定的準(zhǔn)則和測(cè)度與系統(tǒng)模型進(jìn)行比較,通過判決得出識(shí)別結(jié)果。語音識(shí)別A/D變換話筒語音信號(hào)輸入電話端點(diǎn)檢測(cè)參數(shù)分析動(dòng)作應(yīng)用(Application)Vad算法 圖1語音識(shí)別系統(tǒng)的組成框圖語音識(shí)別系統(tǒng),除了包括核心的識(shí)別程序,還必須包括語音輸入手段、參數(shù)分析、標(biāo)準(zhǔn)聲學(xué)模型、詞典、文法語言模型等,以及制作這些東西所需的工具。根據(jù)識(shí)別結(jié)果在實(shí)際環(huán)境下實(shí)現(xiàn)一定的應(yīng)用,還必須考慮耐環(huán)境技術(shù),用戶接口輸入和輸出技術(shù)等。因此,語音識(shí)別技術(shù)加上各
6、種外圍技術(shù)的組合,才能構(gòu)成一個(gè)完整的實(shí)際應(yīng)用的語音識(shí)別系統(tǒng)。從語音識(shí)別系統(tǒng)的各個(gè)功能劃分的角度出發(fā),語音識(shí)別系統(tǒng)可分為語音信號(hào)的預(yù)處理部分、語音識(shí)別系統(tǒng)的核心算法部分以及語音識(shí)別系統(tǒng)的基本數(shù)據(jù)庫等幾部分。圖1給出了一般語音識(shí)別系統(tǒng)的組成框圖5。圖1給出了一般語音識(shí)別系統(tǒng)的組成框圖。識(shí)別預(yù)處理的過程主要是對(duì)通過話筒或電話線路輸入的語音信號(hào)進(jìn)行數(shù)字化采樣、在語音檢測(cè)部切出語音區(qū)間、經(jīng)過語音分析部變換成特征向量,在語音識(shí)別部根據(jù)單詞字典和文法的約束進(jìn)行語音特征向量時(shí)間序列和語音聲學(xué)模型的匹配輸出識(shí)別結(jié)果,然后或直接把識(shí)別出的單詞或由單詞列組成的句子輸出給應(yīng)用部分(Application),或把識(shí)別結(jié)
7、果轉(zhuǎn)接成控制信號(hào),控制應(yīng)用部分的動(dòng)作3。2.2語音信號(hào)的端點(diǎn)檢測(cè)在語音識(shí)別系統(tǒng)中的地位和作用端點(diǎn)檢測(cè)的目的是從包含語音的一段信號(hào)中確定出語音的起點(diǎn)以及終點(diǎn)。有效的端點(diǎn)檢測(cè)不僅能使處理時(shí)間減到最小,而且能排除無聲段的噪聲干擾,從而使識(shí)別系統(tǒng)具有良好的識(shí)別性能。有學(xué)者用一個(gè)多話者的數(shù)字識(shí)別系統(tǒng)做了如下一個(gè)實(shí)驗(yàn)。首先對(duì)所有記錄的語音用手工找出準(zhǔn)確的端點(diǎn),得到它們的識(shí)別率;然后逐幀(幀長為15ms)加大端點(diǎn)檢測(cè)的誤差,在每次加大誤差的同時(shí)得到它們的識(shí)別率。結(jié)果表明在端點(diǎn)檢測(cè)準(zhǔn)確時(shí)識(shí)別率為93%的系統(tǒng),當(dāng)端點(diǎn)檢測(cè)的誤差在+60ms(4幀)時(shí),識(shí)別率降低了3%;在+90ms(6幀)時(shí),降低了10%;而當(dāng)誤
8、差在進(jìn)一步加大時(shí),識(shí)別率急劇下降。這說明端點(diǎn)檢測(cè)的成功與否甚至在某種程度上直接決定了整個(gè)語音識(shí)別系統(tǒng)的成敗4。在設(shè)計(jì)一個(gè)成功的端點(diǎn)檢測(cè)模塊時(shí),會(huì)遇到下列一些實(shí)際困難: 信號(hào)取樣時(shí),由于電平的變化,難于設(shè)置對(duì)各次試驗(yàn)都適用的閥值。 在發(fā)音時(shí),人的咂嘴聲或其他某些雜音會(huì)使語音波形產(chǎn)生一個(gè)很小的尖峰,并可能超過所設(shè)計(jì)的門限值。此外,人呼吸時(shí)的氣流也會(huì)產(chǎn)生電平較高的噪聲。 取樣數(shù)據(jù)中,有時(shí)存在突發(fā)性干擾,使短時(shí)參數(shù)變得很大,持續(xù)很短時(shí)間后又恢復(fù)為寂靜特性。應(yīng)該將其計(jì)入寂靜段中。 弱摩擦音時(shí)或終點(diǎn)處是鼻音時(shí),語音的特性與噪聲極為接近,其中鼻韻往往還拖得很長。 如果輸入信號(hào)中有50Hz工頻干擾或者A/D變
9、換點(diǎn)的工作點(diǎn)偏移時(shí),用短時(shí)過零率區(qū)分無聲和清音就變的不可靠。一種解決方法是算出每一幀的直流分量予以減除,但是這無疑加大了運(yùn)算量,不利于端點(diǎn)檢測(cè)算法的實(shí)時(shí)執(zhí)行;另一種解決方法是采用一個(gè)修正短時(shí)參數(shù),它是一幀語音波形穿越某個(gè)非零電平的次數(shù),可以恰當(dāng)?shù)卦O(shè)置參數(shù)為一個(gè)接近于零的值,使得過零率對(duì)于清音仍具有很高的值,而對(duì)于無聲段值卻很低。但事實(shí)上,由于無聲段以及各種清音的電平分布情況變化很大,在有些情況下,二者的幅度甚至可以相比擬,這給這個(gè)參數(shù)的選取帶來了極大的困難5。由上可見,一個(gè)優(yōu)秀的端點(diǎn)檢測(cè)算法應(yīng)該能滿足: 門限值應(yīng)該可以對(duì)背景噪聲的變化有一定的適應(yīng)。 將短時(shí)沖擊噪聲和人的咂嘴等瞬間超過門限值的信
10、號(hào)納入無聲段而不是有聲段。 對(duì)于爆破音的寂靜段,應(yīng)將其納入語音的范圍而不是無聲段。 應(yīng)該盡可能避免在檢測(cè)中丟失鼻韻和弱摩擦音等與噪聲特性相似、短時(shí)參數(shù)較少的語音。 應(yīng)該避免使用過零率作為判決標(biāo)準(zhǔn)而帶來的負(fù)面影響。在做本課題時(shí),端點(diǎn)檢測(cè)方法是將語音信號(hào)的短時(shí)能量與過零率相結(jié)合加以判斷的。但這種端點(diǎn)檢測(cè)算法如果運(yùn)用不好,將會(huì)發(fā)生漏檢或虛檢的情況。語音信號(hào)大致可以分為濁音和清音兩部分,在語音激活期的開始往往是電平較低的清音,當(dāng)背景噪聲較大時(shí),清音電平與噪聲電平相差無幾。采用傳統(tǒng)的語音端點(diǎn)檢測(cè)方法很容易造成語音激活的漏檢。而語音信號(hào)的清音段,對(duì)于語音的質(zhì)量起著非常重要的作用。另一方面,較大的干擾信號(hào),
11、又有可能被當(dāng)成是語音信號(hào),造成語音激活的虛檢。如可能出現(xiàn)弱摩擦音和鼻韻被切除、誤將爆破音的寂靜段或字與字的間隔認(rèn)為是語音的結(jié)束、誤將沖擊噪聲判決為語音等情況,因而實(shí)際運(yùn)用中,如果處理的不好,則效果欠佳。為了克服傳統(tǒng)端點(diǎn)檢測(cè)算法的缺點(diǎn),已有很多改進(jìn)方法被提出來。例如,可以考慮采用基于相關(guān)性的語音端點(diǎn)檢測(cè)算法。這種方法依據(jù)的理論是:語音信號(hào)具有相關(guān)性,而背景噪聲則無相關(guān)性。因而利用相關(guān)性的不同,可以檢測(cè)出語音,尤其是可以將清音從噪聲中檢測(cè)出來。為此,可以定義一種有效的相關(guān)函數(shù),并且通過實(shí)驗(yàn)可以找到判別門限設(shè)定方法以及防止漏檢和虛檢的方法6。3語音信號(hào)端點(diǎn)檢測(cè)vad算法的探討和實(shí)現(xiàn)本課題的端點(diǎn)檢測(cè)算
12、法,該算法采用的是非實(shí)時(shí)運(yùn)行的,并且在實(shí)現(xiàn)端點(diǎn)檢測(cè)時(shí),是在MATLAB下運(yùn)行實(shí)現(xiàn)的,在MATLAB中,聲音文件是擴(kuò)展名為wav文件中獲取語音采樣,所以在進(jìn)行端點(diǎn)檢測(cè)之前要將聲音文件先處理和轉(zhuǎn)換為wav文件格式的聲音文件,再將其分幀并計(jì)算短時(shí)能量和過零率參數(shù),然后進(jìn)行端點(diǎn)檢測(cè)。這種工作方式被稱為離線(off-line)處理方法,而實(shí)時(shí)的處理方法則是在線(on-line)的。以下將對(duì)語音信號(hào)的分幀,短時(shí)能量,過零率以及端點(diǎn)檢測(cè)進(jìn)行探討和實(shí)現(xiàn)。3.1語音信號(hào)的分幀對(duì)語音信號(hào)進(jìn)行分幀,本課題采用了voice box工具箱中的函數(shù)enframe。其函數(shù)主要功能是將待端點(diǎn)檢測(cè)的聲音文件進(jìn)行分幀,進(jìn)行語音信
13、號(hào)的采樣,以便計(jì)算短時(shí)能量和過零率,為端點(diǎn)檢測(cè)做基本的準(zhǔn)備,在進(jìn)行分幀時(shí),根據(jù)實(shí)際的要求定義幀的屬性,比如幀長和幀移。在使用這個(gè)函數(shù)時(shí),非常方便,只用將其加入到MATLAB的搜索路徑,就可以直接使用該函數(shù)了。Enframe函數(shù)的語法為:f=enframe(x,len,inc);這里x為輸入語音信號(hào),len指定了幀長,inc指定幀移。函數(shù)返回為n*len的一個(gè)矩陣,每行都是一幀數(shù)據(jù)。例如對(duì)大象聲音的采樣序列進(jìn)行分幀的過程為以下所示,以下命令在MATLAB中的command window里直接就可以看到變量的屬性8。>> y=enframe(x,240,80);>> who
14、s y xName Size Bytes Class x 66156x1 529248 double array y 824x240 1582080 double arrayGrand total is 263916 elements using 2111328 bytes可以看到包含語音采樣的一維數(shù)組x經(jīng)過enframe處理后得到二維數(shù)組y,有824行,表示總的幀數(shù)為有824幀,每行都是240個(gè)采樣,為一幀,幀移是80,在進(jìn)行采樣時(shí),當(dāng)一幀采樣完時(shí),采樣第二幀,那么就有80幀與第一次采樣是一樣的,這就是幀移的用法。還可以看到屬性,比如x是66156*1的矩陣,有529248bytes,y是8
15、24*240的矩陣,有1582020bytes。如果改變幀長為120和幀移為40,輸出結(jié)果如下,同樣可以看到采樣后變量x和y的屬性如下:>> y=enframe(x,120,40);>> whos y x Name Size Bytes Class x 66156x1 529248 double array y 1651x120 1584960 double arrayGrand total is 264276 elements using 2114208 bytes3.2短時(shí)能量的計(jì)算圖2是數(shù)字“0”的波形圖,可以看到,在7500之前的部分信號(hào)幅度很低,明顯是屬于靜音
16、,而在7500以后,信號(hào)幅度開始增強(qiáng),并呈現(xiàn)比較明顯的周期性。在波形下半部分可以觀察到有規(guī)律的尖峰,兩個(gè)尖峰之間的距離就是所謂的基音周期,實(shí)際上也就是說話人的聲帶振動(dòng)的周期9。圖2 數(shù)字“0”的語音波形由圖可以很直觀地想到,可以用信號(hào)的幅度作為特征,區(qū)分靜音和語音。只要設(shè)定一個(gè)門限,當(dāng)信號(hào)的幅度超過該門限的時(shí)候,就認(rèn)為語音開始,當(dāng)幅度降低到門限以下就認(rèn)為語音結(jié)束。實(shí)際上,一般是用短時(shí)能量的概念來描述語音信號(hào)的幅度的。對(duì)于輸入的語音信號(hào)X(N),其中N為采樣點(diǎn),首先進(jìn)行幀的操作,將語音信號(hào)分成每2030毫秒一段,相鄰兩幀起始點(diǎn)之間的間隔為10毫秒,也就是說兩幀之間有1020毫秒的交疊。由于采樣頻
17、率的差異,幀長和幀移所對(duì)應(yīng)的實(shí)際采樣點(diǎn)數(shù)也是不同的。對(duì)于8KHZ采樣頻率,30毫的幀長對(duì)應(yīng)240點(diǎn),記為N,而10毫秒的幀移對(duì)應(yīng)80點(diǎn),記為M11。對(duì)于第i幀,第n個(gè)樣本,它與原始語音信號(hào)的關(guān)系為: xi(n)=x(i-1)M+n第i幀語音信號(hào)的短時(shí)能量可以用下面幾種算法得到: e(i)=|xi(n)| e(i)=x²n(n) e(i)=logx²n(n)三種定義的短時(shí)能量分別用下面三行MATLAB命令實(shí)現(xiàn):amp1 = sum(abs(y),2);amp2 = sum(y.*y,2);amp3 = sum(log(y.*y+eps),2);其中amp3中之所以加上小的浮點(diǎn)
18、數(shù)eps,是為了防止log運(yùn)算中可能出現(xiàn)的溢出。以下利用語音信號(hào)分幀的幀長和幀移的不同取值,對(duì)三種短時(shí)能量的圖形進(jìn)行分析。圖3為當(dāng)幀長len=240,幀移inc=80時(shí),大象聲音的三種短時(shí)能量的圖形:圖3 len=240,inc=80大象三種短時(shí)能量圖圖4為當(dāng)幀長len=120,幀移inc=40時(shí),大象聲音的三種短時(shí)能量的圖形:圖4 len=120,inc=40大象三種短時(shí)能量圖由以上兩圖可以看出,三種能量的輸出要由語音信號(hào)的分幀函數(shù)enframe決定,當(dāng)分幀的幀長和幀移比較大的時(shí)候,那么輸出的短時(shí)能量值就比較大,當(dāng)語音信號(hào)的分幀的幀長和幀移比較小的時(shí)候,那么輸出的短時(shí)能量值就比較小。而且由以
19、上兩圖可以看出,圖3相對(duì)應(yīng)的值幾乎是圖4的兩倍,這主要是圖3的幀長和幀移的取值是圖4的兩倍,并且短時(shí)能量的主要是對(duì)矩陣y求和的過程,所以從圖形中可以直觀地看到,不同的幀長和幀移對(duì)短時(shí)能量輸出的影響7。能量之前應(yīng)用該濾波器,還可以起到消除直流漂移、抑制隨機(jī)噪聲和提升清音部分能量的效果。將這些寫在MATLAB語句是12: amp= sum(abs(enframe(filter(1-0.9375,1,x),framelen,frameinc),2);在這里采用的是絕對(duì)值能量,實(shí)際上就是平均幅度。3.3過零率的計(jì)算將語音信號(hào)分幀后計(jì)算每幀的短時(shí)能量,再設(shè)定一個(gè)門限,就可以實(shí)現(xiàn)一個(gè)簡單的端點(diǎn)檢測(cè)算法。但
20、是這樣的算法是很不可靠的,因?yàn)槿说恼Z音分清音和濁音兩種,濁音為聲帶振動(dòng)發(fā)出,對(duì)應(yīng)的語音信號(hào)有幅度高,周期性明顯的特點(diǎn),而清音則不會(huì)有聲帶的振動(dòng),只是靠空氣在口腔中的摩擦,沖擊或爆破而發(fā)聲,其短時(shí)能量一般比較小,如聲母“s”,“ c”等的幅度很低,往往會(huì)基于能量的算法漏過去。圖5顯示的是數(shù)字“7”的波形,可見聲母“q”的范圍約為6500-7500,其幅度明顯比后面的幅度低,而比前面的靜音部分高。聲母“s”和“c”的幅度往往更低,以至于有時(shí)用肉眼都難以與靜音部分相辨別,因此基于能量的算法對(duì)這些清音信號(hào)幾乎無能為力9。圖5 數(shù)字“7”的波形對(duì)于圖5的靜音段聲母開始段,可以發(fā)現(xiàn)靜音和聲母的區(qū)分點(diǎn)大致在
21、6550左右。盡管此時(shí)不能用短時(shí)能量可靠地區(qū)分,但是可以發(fā)現(xiàn)在靜音段信號(hào)的波形變化相對(duì)比較緩慢,而在清音段,由于口腔空氣摩擦的效果,所造成的波形在幅度上的變化比較劇烈,通常可以用一幀信號(hào)中波形穿越零電平的次數(shù)來描述這種變化的劇烈程度,稱為過零率。實(shí)際應(yīng)用中,為了避免靜音段的隨機(jī)噪聲產(chǎn)生過高的過零率,通常都先設(shè)定一個(gè)門限,當(dāng)前后兩個(gè)采樣的符號(hào)不同,而且差值大于該門限的時(shí)候,就將過零率的數(shù)值加1。在MATLAB中,用以下核心代碼實(shí)現(xiàn)過零率:zcr=zeros(size(y,1),1);delta=0.02;for i=1:size(y,1)x = y(i,:);for j = 1:length(x
22、)-1 if x(j) *x(j+1)<0 & abs(x(j)-x(j+1)>delta zcr(i) = zcr(i)+1;end endend其核心思想是:判斷相鄰兩幀的符號(hào)是否小于零,并且兩幀的差值是否大于設(shè)定的一個(gè)門限值delta,如果滿足以上兩個(gè)條件,那么過零率加1。其中設(shè)置了門限delta=0.02,這是個(gè)經(jīng)驗(yàn)值,可以進(jìn)行細(xì)微的調(diào)整。在此條件下,可以得到大象的過零率波形,如圖6所示:圖6 大象聲音的過零率為了進(jìn)一步探討過零率對(duì)語音信號(hào)的判斷作用,分別對(duì)數(shù)字“7”和“5”進(jìn)行過零率輸出圖形進(jìn)行比較,圖7為數(shù)字“7”的過零率圖形,圖8為數(shù)字“5”的過零率圖形:圖7
23、 數(shù)字“7”的過零率圖8 數(shù)字“5”的過零率從圖可以看到,數(shù)字“7”語音信號(hào)部分的幅度比較低,但是其過零率的數(shù)值卻很高,峰值將近50,而在后面的韻母部分過零率則比較低,在20左右。而數(shù)字“5”語音信號(hào)部分一開始的幅度就比較高,而過零率也比較高,隨著幅度的升高,過零率也升高。由此可見,過零率能夠敏感得表示清音。在實(shí)際應(yīng)用中,通常是利用過零率來檢測(cè)清音,用短時(shí)能量來檢測(cè)濁音,兩者配合實(shí)現(xiàn)可靠的端點(diǎn)檢測(cè)。3.4端點(diǎn)檢測(cè)的流程和算法實(shí)現(xiàn)3.4.1 端點(diǎn)檢測(cè)的流程在開始進(jìn)行端點(diǎn)檢測(cè)之前,首先為短時(shí)能量和過零率分別確定兩個(gè)門限。一個(gè)是比較低的門限,其數(shù)值比較小,對(duì)信號(hào)的變化比較敏感,很容易就會(huì)被超過。另一
24、個(gè)是比較高的門限,數(shù)值比較大,信號(hào)必須達(dá)到一定的強(qiáng)度,該門限才可能被超過。低門限被超過未必就是語音的開始,有可能是時(shí)間很短的噪聲引起的。高門限被超過則可以基本確信是由于語音信號(hào)引起的。整個(gè)語音信號(hào)的端點(diǎn)檢測(cè)可以分為四段:靜音,過渡段,語音段,結(jié)束。程序中使用一個(gè)變量status來表示當(dāng)前所處的狀態(tài)。在靜音段,如果能量或過零率超過了低門限,就應(yīng)該開始標(biāo)記起始點(diǎn),進(jìn)入過度段。在過度段中,由于參數(shù)的數(shù)值比較小,不能確信是否處于真正的語音段,因此只要兩個(gè)參數(shù)的數(shù)值都回落到低門限以下,就將當(dāng)前狀態(tài)恢復(fù)到靜音狀態(tài)。而如果在過度段中兩個(gè)參數(shù)中的任一個(gè)超過了高門限,就可以確信進(jìn)入語音段了。一些突發(fā)性的噪聲也可
25、以引起短時(shí)能量或過零率的數(shù)值很高,但是往往不能維持足夠長的時(shí)間,如門窗的開關(guān)、物體的碰撞等引起的噪聲,這些都可以通過設(shè)定最短時(shí)間門限來判別。當(dāng)前狀態(tài)處于語音段時(shí),如果兩個(gè)參數(shù)的數(shù)值降低到低門限以下,而且總的記時(shí)長度小于最短時(shí)間門限,則認(rèn)為這是一段噪音,繼續(xù)掃描以后的語音數(shù)據(jù)。否則就標(biāo)記好結(jié)束端點(diǎn),并返回。3.4.2 端點(diǎn)檢測(cè)算法的實(shí)現(xiàn)在實(shí)現(xiàn)端點(diǎn)檢測(cè)的算法中,對(duì)語音信號(hào)的分幀,設(shè)幀長len=240,幀移inc=80。在進(jìn)行端點(diǎn)檢測(cè)之前,首先將語音信號(hào)進(jìn)行幅度歸一化處理到-1,1,為了避免幅度太大,不便于分析。在MATLAB中,用以下語句實(shí)現(xiàn):x=double(x);x=x/max(abs(x);
26、在端點(diǎn)檢測(cè)時(shí),設(shè)置最大靜音長度maxsilence=3,也就是為3*10ms=30ms,并且設(shè)置一個(gè)符號(hào)標(biāo)記靜音,用silence表示,在實(shí)際設(shè)置時(shí),可以根據(jù)實(shí)際情況進(jìn)行微調(diào),不同的對(duì)象發(fā)出的聲音的特點(diǎn)不同,比如音頻,音調(diào)以及發(fā)音的連續(xù)性,比如大象發(fā)出的聲音一般都是連續(xù)性的吼叫,而人發(fā)出聲音,一般都是字詞句,所以二者有者的最大靜音長度的設(shè)置有著很大的不同,大象的最大靜音長度可以設(shè)置相對(duì)小一些。在端點(diǎn)檢測(cè)的過程中,處于語音段的時(shí)候,那么就要對(duì)語音段中出現(xiàn)的靜音進(jìn)行判斷,如果出現(xiàn)靜音(silence)的長度小于maxsilence,那么認(rèn)為靜音還不夠長,語音段還尚未結(jié)束,語音還在進(jìn)行,將繼續(xù)判斷語
27、音信號(hào)。與此同時(shí),還要設(shè)置一個(gè)最小噪聲長度minlen=15,也就是為15*10ms=150ms,并且設(shè)置一個(gè)標(biāo)記語音信號(hào)的長度,用count來表示,此參數(shù)主要是用于判斷一些突發(fā)性和偶然性的噪聲,比如關(guān)門聲和關(guān)窗聲,這些突發(fā)性的聲音的能量都很大,甚至于可以達(dá)到所設(shè)定的能量的高門限,但是這些聲音屬于噪聲,并不是我們所需要的有效語音信號(hào)部分,所以必須能夠判斷出來并且過濾。在實(shí)際應(yīng)用時(shí),也可以對(duì)此參數(shù)根據(jù)實(shí)際情況進(jìn)行調(diào)整。在語音段的過程中,要對(duì)已經(jīng)滿足短時(shí)能量和過零率的語音信號(hào)進(jìn)行進(jìn)一步的判斷,如果語音信號(hào)長度標(biāo)記count小于最小噪聲長度minlen,那么認(rèn)為語音長度太短,判斷為噪聲13。在前面的
28、過零率計(jì)算方法用到了兩重循環(huán),其速度比較慢,為了提高算法的效率,在端點(diǎn)檢測(cè)中采用一種矢量化的計(jì)算方法在,MATLAB中是用以下核心代碼實(shí)現(xiàn)的:tmp1 = enframe(x(1:end-1), FrameLen, FrameInc); tmp2 = enframe(x(2:end) , FrameLen, FrameInc);signs = (tmp1.*tmp2)<0; diffs = (tmp1 -tmp2)>0.02; zcr = sum(signs.*diffs, 2); temp1和temp2都是由X得到,但是相互之間相差一個(gè)采樣點(diǎn),即相鄰的兩幀。signs為符號(hào)數(shù)組,
29、用于存儲(chǔ)相鄰兩個(gè)采樣點(diǎn)的符號(hào)是否相同,即是否穿越零電頻,如果為負(fù),則表明穿越零電頻,反之則沒有穿越。設(shè)置了門限0.02,這是個(gè)經(jīng)驗(yàn)值,diffs用來度量相鄰兩個(gè)采樣點(diǎn)之間的距離,要為相鄰兩個(gè)采樣點(diǎn)定義一個(gè)距離門限,如果信號(hào)只是簡單地穿越零電頻,也不能說明是語音信號(hào),因?yàn)橐恍┰肼曇彩怯锌赡艽┰搅汶婎l,但是其幅度很小,所以就為其設(shè)置一個(gè)門限,可以有效地防止噪聲。如果距離大于門限0.02,則為1,否則為0。然后將兩個(gè)矩陣點(diǎn)相乘就可以得到同時(shí)滿足兩個(gè)基本點(diǎn)條件的采樣點(diǎn)矩陣。然后將其按幀求和,就可以得到過零率。在計(jì)算短時(shí)能量時(shí),主要用的時(shí)取絕對(duì)值的短時(shí)能量。計(jì)算短時(shí)能量之前,首先將語音信號(hào)通過一個(gè)一階高
30、通濾波器1-0.9375z-1,可以有效濾除低頻干擾,尤其是50Hz或60Hz的工頻干擾,將對(duì)于語音識(shí)別更為有用的高頻部分的頻譜進(jìn)行提升。在計(jì)算短時(shí)能量之前應(yīng)用該濾波器,還可以起到消除直流漂移、抑制隨機(jī)噪聲和提升清音部分能量的效果。將這些寫在MATLAB語句是:amp = sum(abs(enframe(filter(1-0.9375,1,x), framelen, frameinc),2);在這里采用的是絕對(duì)值能量,實(shí)際上就是平均幅度。以上進(jìn)行了常數(shù)設(shè)置,以及短時(shí)能量和過零率的計(jì)算,然后分別為短時(shí)能量和過零率計(jì)算和定義兩個(gè)門限,一個(gè)高門限和一個(gè)低門限。以下將對(duì)端點(diǎn)檢測(cè)的四個(gè)階段進(jìn)行討論。四個(gè)
31、階段:靜音,過渡段,語音段,結(jié)束,分別用0123來表示。在靜音段和過渡段(0,1),如果語音信號(hào)的短時(shí)能量amp(n)大于短時(shí)能量的高門限amp1,那么可以確信進(jìn)入語音段,status=2;靜音silence=0;語音長度標(biāo)識(shí)count加1。如果短時(shí)能量amp(n)只大于短時(shí)能量的低門限amp2或者過零率zcr(n)大于低門限zcr2,那么只能判斷可能處于語音段,status=1。在語音段(2),如果短時(shí)能量amp(n)大于短時(shí)能量低門限amp2或者過零率zcr(n)大于過零率的低門限zcr2,那么就可以判斷保持在語音段,語音長度count加1。在語音段中,還要判斷靜音長度silence是否小
32、于最大靜音長度,如果小于,那么認(rèn)為靜音還不夠長,語音還沒有結(jié)束,語音還在進(jìn)行,語音長度count加1。同時(shí)也要判斷語音的長度count,如果count小于最小噪聲長度minlen,那么認(rèn)為語音長度count太短,不是語音信號(hào),是噪聲,status=0;count=0。最后一個(gè)階段,結(jié)束(3)10。程序在最后還將原始語音信號(hào)、短時(shí)能量和過零率繪制出來,同時(shí)在各自圖形上用紅線標(biāo)出了開始端點(diǎn)和結(jié)束端點(diǎn)。該函數(shù)vad返回兩個(gè)變量x1和x2分別為起始端點(diǎn)和結(jié)束端點(diǎn)的幀數(shù)。以下為數(shù)字“7”和數(shù)字“4”的端點(diǎn)檢測(cè)圖:圖9 數(shù)字“7”的端點(diǎn)檢測(cè)圖圖10 數(shù)字“4”的端點(diǎn)檢測(cè)圖由圖10可以看到,聲母s的短時(shí)能量
33、明顯比較低,即便是用手工標(biāo)注也很容易將其誤認(rèn)為是噪聲而切除,但是該段的過零率很高,可以很準(zhǔn)確地區(qū)分靜音和聲母,這就保證了端點(diǎn)檢測(cè)的準(zhǔn)確性2。4課題過程中遇到的困難及解決4.1遇到的主要困難本課題主要是為語音識(shí)別系統(tǒng)提供一個(gè)語音信號(hào)的端點(diǎn)檢測(cè)功能,端點(diǎn)檢測(cè)就是要能夠確定語音信號(hào)的起點(diǎn)和終點(diǎn),使語音識(shí)別系統(tǒng)處理時(shí)間減到最小,排除無聲段的噪聲干擾,從而使識(shí)別系統(tǒng)具有良好的識(shí)別功能。所以在設(shè)計(jì)端點(diǎn)檢測(cè)算法時(shí),就要使端點(diǎn)檢測(cè)具有這些功能。在實(shí)際中主要遇到以下一些困難:本課題設(shè)計(jì)的端點(diǎn)檢測(cè),不僅可以檢測(cè)大象的聲音信號(hào)的端點(diǎn),也可以檢測(cè)人的聲音信號(hào)的端點(diǎn),在信號(hào)取樣時(shí),由于大象和人的聲音特征有很大的不同,所
34、以對(duì)一些參數(shù)的設(shè)置存在困難。在發(fā)音時(shí),人的咂嘴聲或其他某些雜音會(huì)使語音波形產(chǎn)生一個(gè)很小的尖峰,并可能超過所設(shè)計(jì)的門限值,所以對(duì)門限值的設(shè)定也是一個(gè)困難。在取樣數(shù)據(jù)中,錄音的時(shí)候有時(shí)存在突發(fā)性干擾,使短時(shí)參數(shù)變得很大,持續(xù)很短的時(shí)間后又恢復(fù)為寂靜特性。應(yīng)該將其計(jì)如寂靜段中。弱摩擦聲或終點(diǎn)處是鼻音時(shí),語音的特性與噪聲極為接近,有些字的鼻韻往往還拖的很長。由于是第一次接觸語音識(shí)別方面的知識(shí),剛?cè)胧肿鲇泻芏嗬щy,比如錄音設(shè)備的限制,因?yàn)樵诙它c(diǎn)檢測(cè)主要是在MATLAB上實(shí)現(xiàn)的,在MATLAB里只能識(shí)別WAV格式的文件,并且第一次使用MATLAB這個(gè)軟件,與其他軟件存在許多不同的地方,也是一個(gè)從頭開始學(xué)習(xí)
35、的過程1。4.2困難解決基于以上的困難,在實(shí)踐中解決方法如下:對(duì)于不同的對(duì)象,比如大象和人的聲音,根據(jù)各自聲音的特征和通過前人的經(jīng)驗(yàn)數(shù)據(jù),以及自己的多次實(shí)驗(yàn),對(duì)端點(diǎn)檢測(cè)里的參數(shù)進(jìn)行不同的設(shè)置,以達(dá)到更準(zhǔn)確地確定語音信號(hào)的起點(diǎn)和終點(diǎn)。對(duì)于人的咂嘴聲或其他某些雜音會(huì)使語音波形產(chǎn)生一個(gè)很小的尖峰,在設(shè)置門限值時(shí),根據(jù)經(jīng)驗(yàn)值再做細(xì)微的調(diào)整?,F(xiàn)在對(duì)語音識(shí)別方面的知識(shí),尤其是對(duì)語音信號(hào)的端點(diǎn)檢測(cè)有了比較深的了解,并且運(yùn)用MATLAB這個(gè)軟件能夠?qū)φZ音信號(hào)進(jìn)行端點(diǎn)檢測(cè),MATLAB這個(gè)軟件在語音信號(hào)處理方面具有很大的優(yōu)勢(shì),提供了強(qiáng)大的計(jì)算、紡真、矩陣處理和繪圖功能,很多專家因此在自己擅長的領(lǐng)域用它編寫了許多專門的MATLAB工具包(toolbox),比如在使用分幀時(shí),就直接采用enframe函數(shù),不用再編寫代碼。5 結(jié)論與展望5.1 結(jié)論通過對(duì)本課題的研究,了解了一個(gè)語音識(shí)別系統(tǒng)包括語音信號(hào)的預(yù)處理部分、語音識(shí)別系統(tǒng)的核心算法部分以及語音識(shí)別系統(tǒng)的基本數(shù)據(jù)庫等幾部分。而語音信號(hào)的預(yù)處理部分是整個(gè)語音識(shí)別系統(tǒng)的前提條件,端點(diǎn)檢測(cè)是語音信號(hào)的預(yù)處理部分最基本的一個(gè)功能,做好端點(diǎn)檢測(cè),能使語音識(shí)別系統(tǒng)處理時(shí)間減到最小,排除無聲段的噪聲干擾,從而使識(shí)別系統(tǒng)具有良好的識(shí)別功能。已經(jīng)可以應(yīng)用MATLAB實(shí)現(xiàn)對(duì)語音信號(hào)三種短時(shí)能量形式圖形的輸出,過零率圖形的輸出,并且可以進(jìn)行語音信
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 裝配式建筑設(shè)計(jì)規(guī)范
- 農(nóng)業(yè)產(chǎn)業(yè)鏈延伸發(fā)展策略手冊(cè)
- 光伏發(fā)電太陽能工程
- 環(huán)保產(chǎn)業(yè)園區(qū)可行性研究報(bào)告
- 項(xiàng)目籌備及執(zhí)行計(jì)劃書
- 母嬰護(hù)理中級(jí)復(fù)習(xí)試題含答案(一)
- 醫(yī)療器械生產(chǎn)質(zhì)量管理體系建設(shè)
- 農(nóng)民合作社組織管理優(yōu)化方案
- 法律服務(wù)業(yè)務(wù)運(yùn)作手冊(cè)
- 智能財(cái)稅綜合實(shí)訓(xùn) 下篇 第五章工作領(lǐng)域三-任務(wù)四
- 【金融】銀行業(yè)DeepSeek大模型應(yīng)用跟蹤報(bào)告
- 2025年中高考百日誓師大會(huì)活動(dòng)主持詞:百日鏖戰(zhàn)酬壯志 青春逐夢(mèng)向未來
- 2025年公共交通衛(wèi)生提升方案
- 2025-2030年中國充電電池行業(yè)運(yùn)營狀況與未來發(fā)展趨勢(shì)分析報(bào)告
- 2025屆上海市高三下學(xué)期2月聯(lián)考調(diào)研英語試題【含答案解析】
- 發(fā)展我國銀發(fā)經(jīng)濟(jì)面臨的挑戰(zhàn)和優(yōu)化路徑研究
- GA/T 2146-2024法庭科學(xué)涉火案件物證檢驗(yàn)移動(dòng)實(shí)驗(yàn)室建設(shè)通用要求
- 高速鐵路設(shè)計(jì)規(guī)范
- 《電機(jī)能能效等級(jí)》課件
- 電商客服外包服務(wù)合同
- 膽囊課件教學(xué)課件
評(píng)論
0/150
提交評(píng)論