語音信號(hào)處理中怎么理解分幀,為什么?

語音信號(hào)處理中怎么理解分幀,為什么?

語音信號(hào)處理常常要達(dá)到的一個(gè)目標(biāo),就是弄清楚語音中各個(gè)頻率成分的分布。做這件事情的數(shù)學(xué)工具是傅里葉變換。

傅里葉變換要求輸入信號(hào)是平穩(wěn)的,當(dāng)然不平穩(wěn)的信號(hào)你想硬做也可以,但得到的結(jié)果就沒有什么意義了。

而語音在宏觀上來看是不平穩(wěn)的——你的嘴巴一動(dòng),信號(hào)的特征就變了。但是從微觀上來看,在比較短的時(shí)間內(nèi),嘴巴動(dòng)得是沒有那么快的,語音信號(hào)就可以看成平穩(wěn)的,就可以截取出來做傅里葉變換了。這就是為什么語音信號(hào)要分幀處理,截取出來的一小段信號(hào)就叫一「幀」。如下圖:這段語音的前三分之一和后三分之二明顯不一樣,所以整體來看語音信號(hào)不平穩(wěn)。

紅框框出來的部分是一幀,在這一幀內(nèi)部的信號(hào)可以看成平穩(wěn)的。
那么一幀有多長(zhǎng)呢?幀長(zhǎng)要滿足兩個(gè)條件:從宏觀上看,它必須足夠短來保證幀內(nèi)信號(hào)是平穩(wěn)的。前面說過,口型的變化是導(dǎo)致信號(hào)不平穩(wěn)的原因,所以在一幀的期間內(nèi)口型不能有明顯變化,即一幀的長(zhǎng)度應(yīng)當(dāng)小于一個(gè)音素的長(zhǎng)度。

正常語速下,音素的持續(xù)時(shí)間大約是 50~200 毫秒,所以幀長(zhǎng)一般取為小于 50 毫秒。從微觀上來看,它又必須包括足夠多的振動(dòng)周期,因?yàn)楦道锶~變換是要分析頻率的,只有重復(fù)足夠多次才能分析頻率。語音的基頻,男聲在 100 赫茲左右,女聲在 200 赫茲左右,換算成周期就是 10 毫秒和 5 毫秒。

既然一幀要包含多個(gè)周期,所以一般取至少 20 毫秒。這樣,我們就知道了幀長(zhǎng)一般取為 20 ~ 50 毫秒,20、25、30、40、50 都是比較常用的數(shù)值,甚至還有人用 32(在程序猿眼里,這是一個(gè)比較「整」的數(shù)字)。
加窗的目的是讓一幀信號(hào)的幅度在兩端漸變到 0。

漸變對(duì)傅里葉變換有好處,可以提高變換結(jié)果(即頻譜)的分辨率,具體的數(shù)學(xué)就不講了。加窗的代價(jià)是一幀信號(hào)兩端的部分被削弱了,沒有像**的部分那樣得到重視。彌補(bǔ)的辦法是,幀不要背靠背地截取,而是相互重疊一部分。相鄰兩幀的起始位置的時(shí)間差叫做幀移,常見的取法是取為幀長(zhǎng)的一半,或者固定取為 10 毫秒。

頻譜上就能看出這幀語音在 480 和 580 赫茲附近的能量比較強(qiáng)。語音的頻譜,常常呈現(xiàn)出「精細(xì)結(jié)構(gòu)」和「包絡(luò)」兩種模式?!妇?xì)結(jié)構(gòu)」就是藍(lán)線上的一個(gè)個(gè)小峰,它們?cè)跈M軸上的間距就是基頻,它體現(xiàn)了語音的音高——峰越稀疏,基頻越高,音高也越高?!赴j(luò)」則是連接這些小峰峰頂?shù)钠交€(紅線),它代表了口型,即發(fā)的是哪個(gè)音。

包絡(luò)上的峰叫共振峰,圖中能看出四個(gè),分別在 500、1700、2450、3800 赫茲附近。有經(jīng)驗(yàn)的人,根據(jù)共振峰的位置,就能看出發(fā)的是什么音。對(duì)每一幀信號(hào)都做這樣的傅里葉變換,就可以知道音高和口型隨時(shí)間的變化情況,也就能識(shí)別出一句話說的是什么了。

數(shù)字信號(hào)處理中為什么要加窗

對(duì)模擬信號(hào)進(jìn)行數(shù)字處理時(shí),首先要對(duì)模擬信號(hào)進(jìn)行采樣,采樣頻率由奈奎斯特采樣定理決定。對(duì)采樣而來的數(shù)字信號(hào)進(jìn)行DTFT處理得到其頻譜。

由DTFT的計(jì)算公式可知,DTFT的計(jì)算需要用到信號(hào)的所有采樣點(diǎn),當(dāng)信號(hào)為無限長(zhǎng)或者是相當(dāng)長(zhǎng)時(shí),這樣的計(jì)算不可行也沒有實(shí)際意義。

因此會(huì)把信號(hào)分成許多一定長(zhǎng)度的數(shù)據(jù)段,然后分段處理。如果把數(shù)據(jù)進(jìn)行分段,相當(dāng)于對(duì)信號(hào)進(jìn)行了加矩形窗的處理,對(duì)加窗后的信號(hào)做DFT,將會(huì)出現(xiàn)由于加窗而引入的高頻分量。既然加窗不可避免,就選擇一個(gè)合適的吧。窗的形狀有許多種,選用合適的窗函數(shù),則可以增大對(duì)高頻分量的衰減。

關(guān)于信號(hào)加窗

1)?

在頻譜分析中,為什么加窗可以改善頻譜估計(jì)精度

加窗是為了減小泄漏!1、信號(hào)截?cái)嗉澳芰啃孤┬?yīng)數(shù)字信號(hào)處理的主要數(shù)學(xué)工具是傅里葉變換。應(yīng)注意到,傅里葉變換是研究整個(gè)時(shí)間域和頻率域的關(guān)系。

然而,當(dāng)運(yùn)用計(jì)算機(jī)實(shí)現(xiàn)工程測(cè)試信號(hào)處理時(shí),不可能對(duì)無限長(zhǎng)的信號(hào)進(jìn)行測(cè)量和運(yùn)算,而是取其有限的時(shí)間片段進(jìn)行分析。

做法是從信號(hào)中截取一個(gè)時(shí)間片段,然后用觀察的信號(hào)時(shí)間片段進(jìn)行周期延拓處理,得到虛擬的無限長(zhǎng)的信號(hào),然后就可以對(duì)信號(hào)進(jìn)行傅里葉變換、相關(guān)分析等數(shù)學(xué)處理。周期延拓后的信號(hào)與真實(shí)信號(hào)是不同的,下面從數(shù)學(xué)的角度來看這種處理帶來的誤差情況。設(shè)有余弦信號(hào)x(t)在時(shí)域分布為無限長(zhǎng)(- ∞,∞),將截?cái)嘈盘?hào)的譜XT(ω)與原始信號(hào)的譜X(ω)相比,它已不是原來的兩條譜線,而是兩段振蕩的連續(xù)譜。這表明原來的信號(hào)被截?cái)嘁院螅漕l譜發(fā)生了畸變,原來集中在f0處的能量被分散到兩個(gè)較寬的頻帶中去了,這種現(xiàn)象稱之為頻譜能量泄漏(Leakage)。

信號(hào)截?cái)嘁院螽a(chǎn)生的能量泄漏現(xiàn)象是必然的,因?yàn)榇昂瘮?shù)w(t)是一個(gè)頻帶無限的函數(shù),所以即使原信號(hào)x(t)是限帶寬信號(hào),而在截?cái)嘁院笠脖厝怀蔀闊o限帶寬的函數(shù),即信號(hào)在頻域的能量與分布被擴(kuò)展了。又從采樣定理可知,無論采樣頻率多高,只要信號(hào)一經(jīng)截?cái)?,就不可避免地引起混疊,因此信號(hào)截?cái)啾厝粚?dǎo)致一些誤差,這是信號(hào)分析中不容忽視的問題。如果增大截?cái)嚅L(zhǎng)度T,即矩形窗口加寬,則窗譜W(ω)將被壓縮變窄(π/T減?。?/p>

雖然理論上講,其頻譜范圍仍為無限寬,但實(shí)際上中心頻率以外的頻率分量衰減較快,因而泄漏誤差將減小。當(dāng)窗口寬度T趨于無窮大時(shí),則譜窗W(ω)將變?yōu)棣模é兀┖瘮?shù),而δ(ω)與X(ω)的卷積仍為H(ω),這說明,如果窗口無限寬,即不截?cái)啵筒淮嬖谛孤┱`差。為了減少頻譜能量泄漏,可采用不同的截取函數(shù)對(duì)信號(hào)進(jìn)行截?cái)啵財(cái)嗪瘮?shù)稱為窗函數(shù),簡(jiǎn)稱為窗。

泄漏與窗函數(shù)頻譜的兩側(cè)旁瓣有關(guān),如果兩側(cè)p旁瓣的高度趨于零,而使能量相對(duì)集中在主瓣,就可以較為接近于真實(shí)的頻譜,為此,在時(shí)間域中可采用不同的窗函數(shù)來截?cái)嘈盘?hào)。2、 常用窗函數(shù)實(shí)際應(yīng)用的窗函數(shù),可分為以下主要類型:冪窗:采用時(shí)間變量某種冪次的函數(shù),如矩形、三角形、梯形或其它時(shí)間函數(shù)x(t)的高次冪;三角函數(shù)窗:應(yīng)用三角函數(shù),即正弦或余弦函數(shù)等組合成復(fù)合函數(shù),例如漢寧窗、海明窗等;指數(shù)窗。:采用指數(shù)時(shí)間函數(shù),如e-st形式,例如高斯窗等。

下面介紹幾種常用窗函數(shù)的性質(zhì)和特點(diǎn)。(l) 矩形窗矩形窗使用最多,習(xí)慣上不加窗就是使信號(hào)通過了矩形窗。這種窗的優(yōu)點(diǎn)是主瓣比較集中,缺點(diǎn)是旁瓣較高,并有負(fù)旁瓣,導(dǎo)致變換中帶進(jìn)了高頻干擾和泄漏,甚至出現(xiàn)負(fù)譜現(xiàn)象。(2) 三角窗三角窗亦稱費(fèi)杰(Fejer)窗,是冪窗的一次方形式,三角窗與矩形窗比較,主瓣寬約等于矩形窗的兩倍,但旁瓣小,而且無負(fù)旁瓣(3) 漢寧窗漢寧(Hanning)窗又稱升余弦窗,漢寧窗可以看作是3個(gè)矩形時(shí)間窗的頻譜之和,它可以使用旁瓣互相抵消,消去高頻干擾和漏能。

漢寧窗與矩形窗的譜圖對(duì)比,可以看出,漢寧窗主瓣加寬(**個(gè)零點(diǎn)在2π/T處)并降低,旁瓣則顯著減小。**個(gè)旁瓣衰減一32dB,而矩形窗**個(gè)旁瓣衰減-13dB。此外,漢寧窗的旁瓣衰減速度也較快,約為60dB/(10oct),而矩形窗為20dB/(10oct)。由以上比較可知,從減小泄漏觀點(diǎn)出發(fā),漢寧窗優(yōu)于矩形窗。

但漢寧窗主瓣加寬,相當(dāng)于分析帶寬加寬,頻率分辨力下降。(4) 海明窗海明(Hamming)窗也是余弦窗的一種,又稱改進(jìn)的升余弦窗,海明窗與漢寧窗都是余弦窗,只是加權(quán)系數(shù)不同。海明窗加權(quán)的系數(shù)能使旁瓣達(dá)到更小。分析表明,海明窗的**旁瓣衰減為-42dB。

海明窗的頻譜也是由 3個(gè)矩形時(shí)窗的頻譜合成,但其旁瓣衰減速度為20dB/(10oct),這比漢寧窗衰減速度慢。海明窗與漢寧窗都是很有用的窗函數(shù)。(5) 高斯窗是一種指數(shù)窗,高斯窗譜無負(fù)的旁瓣,**旁瓣衰減達(dá)一55dB。

高斯窗譜的主瓣較寬,故而頻率分辨力低。高斯窗函數(shù)常被用來截?cái)嘁恍┓侵芷谛盘?hào),如指數(shù)衰減信號(hào)等。除了以上幾種常用窗函數(shù)以外,尚有多種窗函數(shù),如平頂窗、帕仁(Parzen)窗、布拉克曼(Blackman)窗、凱塞(kaiser)窗等。

對(duì)于窗函數(shù)的選擇,應(yīng)考慮被分析信號(hào)的性質(zhì)與處理要求。如果僅要求**讀出主瓣頻率,而不考慮幅值精度,則可選用主瓣寬度比較窄而便于分辨的矩形窗,例如測(cè)量物體的自振頻率等;如果分析窄帶信號(hào),且有較強(qiáng)的干擾噪聲,則應(yīng)選用旁瓣幅度小的窗函數(shù),如漢寧窗、三角窗等;對(duì)于隨時(shí)間按指數(shù)衰減的函數(shù),可采用指數(shù)窗來提高信噪比。3、窗函數(shù)選擇指南如果在測(cè)試中可以保證不會(huì)有泄露的發(fā)生,則不需要用任何的窗函數(shù)(在中可選擇uniform)。但是如同剛剛討論的那樣,這種情況只是發(fā)生在時(shí)間足夠長(zhǎng)的瞬態(tài)捕捉和一幀數(shù)據(jù)中正好包含信號(hào)整周期的情況。

如果測(cè)試信號(hào)有多個(gè)頻率分量,頻譜表現(xiàn)的十分復(fù)雜,且測(cè)試的目的更多關(guān)注頻率點(diǎn)而非能量的大小。在這種情況下,需要選擇一個(gè)主畔夠窄的窗函數(shù),漢寧窗是一個(gè)很好的選擇。如果測(cè)試的目的更多的關(guān)注某周期信號(hào)頻率點(diǎn)的能量值,比如,更關(guān)心其EUpeak,EUpeak-peak,EUrms或者EUrms2,那么其幅度的準(zhǔn)確性則更加的重要,可以選擇一個(gè)主畔稍寬的窗,flattop窗在這樣的情況下經(jīng)常被使用。

對(duì)沖擊實(shí)驗(yàn)的數(shù)據(jù)進(jìn)行分析時(shí),因?yàn)樵跀?shù)據(jù)幀開始段的一些重要信息會(huì)被一般的窗函數(shù)所衰減,因此可以使用force/exponential窗。Force窗一移去了數(shù)據(jù)幀末端的噪聲,對(duì)激勵(lì)信號(hào)有用。而exponential窗則確保響應(yīng)信號(hào)在末端的振動(dòng)衰減為零值。

什么是漢明窗?加Hanmming窗的作用

是語音信號(hào)進(jìn)行加窗分幀的一種方法語音信號(hào)是一種非平穩(wěn)的時(shí)變信號(hào),其產(chǎn)生過程與發(fā)聲器官的運(yùn)動(dòng)緊密相關(guān)。而發(fā)聲器官的狀態(tài)變化速度較聲音振動(dòng)的速度要緩慢的多,因此語音信號(hào)可以認(rèn)為是短時(shí)平穩(wěn)的。

研究發(fā)現(xiàn),在10~30ms的范圍內(nèi),語音頻譜特征和一些物理特征參數(shù)基本保持不變。

因此可以將平穩(wěn)過程的處理方法和理論引入到語音信號(hào)的短時(shí)處理中,將語音信號(hào)劃分為很多短時(shí)的語音段,每個(gè)短時(shí)的語音段稱為一個(gè)分析幀。這樣,對(duì)一幀語音信號(hào)進(jìn)行處理就相當(dāng)于對(duì)特征固定的持續(xù)信號(hào)進(jìn)行處理。幀既可以是連續(xù)的,也可以采用交疊分幀,一般幀長(zhǎng)取10~30ms。一般每秒的幀數(shù)約為33~100幀,視實(shí)際情況而定。

分幀雖然可以采用連續(xù)分段的方法,但一般要采用交疊分段的方法,這是為了使幀與幀之間平滑過度,保持其連續(xù)性。前一幀和后一幀的交疊部分稱為幀移。幀移與幀長(zhǎng)的比值一般取為0~1/2。

分幀是用可移動(dòng)的有限長(zhǎng)度窗口進(jìn)行加權(quán)的方法來實(shí)現(xiàn)的,就是用一定的窗函數(shù)w(n)來乘S(n)。

基于Fbank的語音數(shù)據(jù)特征提取

Fbank是需要語音特征參數(shù)提取方法之一,因其獨(dú)特的基于倒譜的提取方式,更加的符合人類的聽覺原理,因而也是最為普遍、最有效的語音特征提取算法?;跒V波器組的特征 Fbank(Filter bank), Fbank 特征提取方法就是相當(dāng) 于 MFCC 去掉**一步的離散余弦變換(有損變換),跟 MFCC 特征, Fbank 特征保留了更多的原始語音數(shù)據(jù)。

MFCC語音特征的提取過程,如下圖: 需要對(duì)語音信號(hào)進(jìn)行預(yù)加重、分幀、加窗等等處理,而這些處理的方式均是為了能夠**化語音信號(hào)的某些信息,以達(dá)到**特征參數(shù)的提取。

語音讀取及可視化: 結(jié)果: 預(yù)加重其實(shí)就是將語音信號(hào)通過一個(gè)高通濾波器,來增強(qiáng)語音信號(hào)中的高頻部分,并保持在低頻到高頻的整個(gè)頻段中,能夠使用同樣的信噪比求頻譜。在本實(shí)驗(yàn)中,選取的高通濾波器傳遞函數(shù)為: 預(yù)加重系數(shù)?a=0.97 式中a的值介于0.9-1.0之間,我們通常取0.97。同時(shí),預(yù)加重也是為了消除發(fā)生過程中聲帶和嘴唇的效應(yīng),來補(bǔ)償語音信號(hào)受到發(fā)音系統(tǒng)所抑制的高頻部分,也為了突出高頻的共振峰。 結(jié)果: 分幀是指在跟定的音頻樣本文件中,按照某一個(gè)固定的時(shí)間長(zhǎng)度分割,分割后的每一片樣本,稱之為一幀,這里需要區(qū)分時(shí)域波形中的幀,分割后的一幀是分析提取Fbank的樣本,而時(shí)域波形中的幀是時(shí)域尺度上對(duì)音頻的采樣而取到的樣本。

分幀是先將N個(gè)采樣點(diǎn)**成一個(gè)觀測(cè)單位,也就是分割后的幀。通常情況下N的取值為512或256,涵蓋的時(shí)間約為20-30ms。也可以根據(jù)特定的需要進(jìn)行N值和窗口間隔的調(diào)整。

為了避免相鄰兩幀的變化過大,會(huì)讓兩相鄰幀之間有一段重疊區(qū)域,此重疊區(qū)域包含了M個(gè)取樣點(diǎn),一般M的值約為N的1/2或1/3。 語音識(shí)別中所采用的信號(hào)采樣頻率一般為8kHz或16kHz。以8kHz來說,若幀長(zhǎng)度為256個(gè)采樣點(diǎn),則對(duì)應(yīng)的時(shí)間長(zhǎng)度是256/8000×1000=32ms。

本次實(shí)驗(yàn)中所使用的采樣率(Frames Per Second)16kHz,窗長(zhǎng)25ms(400個(gè)采樣點(diǎn)),窗間隔為10ms(160個(gè)采樣點(diǎn))。 結(jié)果: 在對(duì)音頻進(jìn)行分幀之后,需要對(duì)每一幀進(jìn)行加窗,以增加幀左端和右端的百科連續(xù)性,減少頻譜泄漏。在提取Fbank的時(shí)候,比較常用的窗口函數(shù)為Hamming窗。

假設(shè)分幀后的信號(hào)為 S(n),n=0,1,2…,N-1,其中N為幀的大小,那么進(jìn)行加窗的處理則為:W(n)的形式如下: 不同的a值會(huì)產(chǎn)生不同的漢明窗,一般情況下a取值0.46。進(jìn)行值替換后,W(n)則為: 對(duì)應(yīng)的漢明窗時(shí)域波形類似下圖: 結(jié)果: 由于信號(hào)在時(shí)域上的變換通常很難看出信號(hào)的特性,所有通常將它轉(zhuǎn)換為頻域上的能量分布來觀察,不同的能量分布,代表不同語音的特性。所以在進(jìn)行了加窗處理后,還需要再經(jīng)過離散傅里葉變換以得到頻譜上的能量分布。對(duì)分幀加窗后的各幀信號(hào)進(jìn)行快速傅里葉變換得到各幀的頻譜。

并對(duì)語音信號(hào)的頻譜取模平方得到語音信號(hào)的功率譜。設(shè)語音信號(hào)的DFT為:?能量的分布為: 下圖是有頻譜到功率譜的轉(zhuǎn)換結(jié)果示意圖: 結(jié)果: Fbank考慮到了人類的聽覺特征,先將線性頻譜映射到基于聽覺感知的Mel非線性頻譜中,然后轉(zhuǎn)換到倒譜上。 在Mel頻域內(nèi),人對(duì)音調(diào)的感知度為線性關(guān)系。舉例來說,如果兩段語音的Mel頻率相差兩倍,則人耳聽起來兩者的音調(diào)也相差兩倍。

Mel濾波器的本質(zhì)其實(shí)是一個(gè)尺度規(guī)則,通常是將能量通過一組Mel尺度的三角形濾波器組,如定義有M個(gè)濾波器的濾波器組,采用的濾波器為三角濾波器,中心頻率為 f(m),m=1,2…M,M通常取22-26。f(m)之間的間隔隨著m值的減小而縮小,隨著m值的增大而增寬,如圖所示: 從頻率到Mel頻率的轉(zhuǎn)換公式為: 其中 f 為語音信號(hào)的頻率,單位赫茲(Hz)。 假如有10個(gè)Mel濾波器(在實(shí)際應(yīng)用中通常一組Mel濾波器組有26個(gè)濾波器。),首先要選擇一個(gè)**頻率和**頻率,通常**頻率為8000Hz,**頻率為300Hz。

使用從頻率轉(zhuǎn)換為Mel頻率的公式將300Hz轉(zhuǎn)換為401.25Mels,8000Hz轉(zhuǎn)換為2834.99Mels,由于有10個(gè)濾波器,每個(gè)濾波器針對(duì)兩個(gè)頻率的樣點(diǎn),樣點(diǎn)之間會(huì)進(jìn)行重疊處理,因此需要12個(gè)點(diǎn),意味著需要在401.25和2834.99之間再線性間隔出10個(gè)附加點(diǎn),如:現(xiàn)在使用從Mel頻率轉(zhuǎn)換為頻率的公式將它們轉(zhuǎn)換回赫茲:將頻率映射到最接近的DFT頻率: 于是,我們得到了一個(gè)由10個(gè)Mel濾波器構(gòu)成的Mel濾波器組。