title: 聲學(xué)特征提取and WORLD Using
tags: 深度學(xué)習(xí),機(jī)器學(xué)習(xí),數(shù)據(jù)挖掘,
grammar_mindmap: true
renderNumberedHeading: true
grammar_code: true
Author : Errol Yan( wechat: 13075851954 QQ: 260187357 Email:2681506@gmail.com )
GitHub: https://github.com/errolyan
CSDN_ID: 纏中說禪_
Describe: "聲學(xué)特征提取and WORLD Using "
Date: 2018-12-6
[toc!?direction=lr]
聲譜圖(Spectrogram)
-
這段語音被分為很多幀,每幀語音都對應(yīng)于一個頻譜(通過短時FFT計算)禀梳,頻譜表示頻率與能量的關(guān)系朴则。在實際使用中,頻譜圖有三種蒲稳,即線性振幅譜胖翰、對數(shù)振幅譜荧缘、自功率譜(對數(shù)振幅譜中各譜線的振幅都作了對數(shù)計算,所以其縱坐標(biāo)的單位是dB(分貝)枣氧。這個變換的目的是使那些振幅較低的成分相對高振幅成分得以拉高溢十,以便觀察掩蓋在低幅噪聲中的周期信號)。
我們先將其中一幀語音的頻譜通過坐標(biāo)表示出來达吞,如上圖左≌懦冢現(xiàn)在我們將左邊的頻譜旋轉(zhuǎn)90度。得到中間的圖酪劫。然后把這些幅度映射到一個灰度級表示(也可以理解為將連續(xù)的幅度量化為256個量化值吞鸭?),0表示黑覆糟,255表示白色刻剥。幅度值越大,相應(yīng)的區(qū)域越黑滩字。這樣就得到了最右邊的圖造虏。那為什么要這樣呢御吞?為的是增加時間這個維度,這樣就可以顯示一段語音而不是一幀語音的頻譜漓藕,而且可以直觀的看到靜態(tài)和動態(tài)的信息
-
這樣我們會得到一個隨著時間變化的頻譜圖陶珠,這個就是描述語音信號的spectrogram聲譜圖。
那我們?yōu)槭裁匆诼曌V圖中表示語音呢享钞?
首先揍诽,音素(Phones)的屬性可以更好的在這里面觀察出來。另外栗竖,通過觀察共振峰和它們的轉(zhuǎn)變可以更好的識別聲音寝姿。隱馬爾科夫模型(Hidden Markov Models)就是隱含地對聲譜圖進(jìn)行建模以達(dá)到好的識別性能。還有一個作用就是它可以直觀的評估TTS系統(tǒng)(text to speech)的好壞划滋,直接對比合成的語音和自然的語音聲譜圖的匹配度即可。
通過對語音進(jìn)行分幀進(jìn)行時頻變換埃篓,得到每一幀的FFT頻譜再將各幀頻譜按照時間順序排列起來处坪,得到時間-頻率-能量分布圖。很直觀的表現(xiàn)出語音信號隨時間的頻率中心的變化架专。
倒譜分析(Cepstrum Analysis)
下面是一個語音的頻譜圖同窘。峰值就表示語音的主要頻率成分,我們把這些峰值稱為共振峰(formants)部脚,而共振峰就是攜帶了聲音的辨識屬性(就是個人身份證一樣)想邦。所以它特別重要。用它就可以識別不同的聲音委刘。
既然它那么重要丧没,那我們就是需要把它提取出來!我們要提取的不僅僅是共振峰的位置锡移,還得提取它們轉(zhuǎn)變的過程呕童。所以我們提取的是頻譜的包絡(luò)(Spectral Envelope)。這包絡(luò)就是一條連接這些共振峰點的平滑曲線淆珊。
我們可以這么理解夺饲,將原始的頻譜由兩部分組成:包絡(luò)和頻譜的細(xì)節(jié)。這里用到的是對數(shù)頻譜施符,所以單位是dB。那現(xiàn)在我們需要把這兩部分分離開,這樣我們就可以得到包絡(luò)了
那怎么把他們分離開呢奈应?也就是痒留,怎么在給定log X[k]的基礎(chǔ)上,求得log H[k] 和 log E[k]以滿足log X[k] = log H[k] + log E[k]呢骨坑?
為了達(dá)到這個目標(biāo)撼嗓,我們需要Play a Mathematical Trick柬采。這個Trick是什么呢?就是對頻譜做FFT且警。在頻譜上做傅里葉變換就相當(dāng)于逆傅里葉變換Inverse FFT (IFFT)粉捻。需要注意的一點是,我們是在頻譜的對數(shù)域上面處理的斑芜,這也屬于Trick的一部分肩刃。這時候,在對數(shù)頻譜上面做IFFT就相當(dāng)于在一個偽頻率(pseudo-frequency)坐標(biāo)軸上面描述信號
[圖片上傳失敗...(image-6d388a-1544343206485)]
由上面這個圖我們可以看到杏头,包絡(luò)是主要是低頻成分(這時候需要轉(zhuǎn)變思維盈包,這時候的橫軸就不要看成是頻率了,咱們可以看成時間)醇王,我們把它看成是一個每秒4個周期的正弦信號呢燥。這樣我們在偽坐標(biāo)軸上面的4Hz的地方給它一個峰值。而頻譜的細(xì)節(jié)部分主要是高頻寓娩。我們把它看成是一個每秒100個周期的正弦信號叛氨。這樣我們在偽坐標(biāo)軸上面的100Hz的地方給它一個峰值。
-
把它倆疊加起來就是原來的頻譜信號了棘伴。
在實際中咱們已經(jīng)知道logX[k]寞埠,所以我們可以得到了x[k]。那么由圖可以知道焊夸,h[k]是x[k]的低頻部分仁连,那么我們將x[k]通過一個低通濾波器就可以得到h[k]了!沒錯阱穗,到這里咱們就可以將它們分離開了饭冬,得到了我們想要的h[k],也就是頻譜的包絡(luò)揪阶。 x[k]實際上就是倒譜Cepstrum(這個是一個新造出來的詞伍伤,把頻譜的單詞spectrum的前面四個字母順序倒過來就是倒譜的單詞了)。而我們所關(guān)心的h[k]就是倒譜的低頻部分遣钳。h[k]描述了頻譜的包絡(luò)扰魂,它在語音識別中被廣泛用于描述特征。
倒譜分析總結(jié) (同態(tài)信號處理)
- 倒譜(cepstrum)就是一種信號的傅里葉變換經(jīng)對數(shù)運(yùn)算后再進(jìn)行傅里葉反變換得到的譜蕴茴。
它的目的是將非線性問題轉(zhuǎn)化為線性問題的處理方法劝评。對應(yīng)上面,原來的語音信號實際上是一個卷性信號(聲道相當(dāng)于一個線性時不變系統(tǒng)倦淀,聲音的產(chǎn)生可以理解為一個激勵通過這個系統(tǒng))蒋畜,第一步通過卷積將其變成了乘性信號(時域的卷積相當(dāng)于頻域的乘積)。第二步通過取對數(shù)將乘性信號轉(zhuǎn)化為加性信號撞叽,第三步進(jìn)行逆變換姻成,使其恢復(fù)為卷性信號插龄。這時候,雖然前后均是時域序列科展,但它們所處的離散時域顯然不同均牢,所以后者稱為倒譜頻域。
1)將原語音信號經(jīng)過傅里葉變換得到頻譜:X[k]=H[k]E[k]才睹;
只考慮幅度就是:|X[k] |=|H[k]||E[k] |徘跪;
2)我們在兩邊取對數(shù):log||X[k] ||= log ||H[k] ||+ log ||E[k] ||。
3)再在兩邊取逆傅里葉變換得到:x[k]=h[k]+e[k]琅攘。
梅譜分析
- List item
Mel頻率分析就是基于人類聽覺感知實驗的垮庐。實驗觀測發(fā)現(xiàn)人耳就像一個濾波器組一樣,它只關(guān)注某些特定的頻率分量(人的聽覺對頻率是有選擇性的)坞琴。也就說哨查,它只讓某些頻率的信號通過,而壓根就直接無視它不想感知的某些頻率信號剧辐。但是這些濾波器在頻率坐標(biāo)軸上卻不是統(tǒng)一分布的解恰,在低頻區(qū)域有很多的濾波器,他們分布比較密集浙于,但在高頻區(qū)域,濾波器的數(shù)目就變得比較少挟纱,分布很稀疏羞酗。
人的聽覺系統(tǒng)是一個特殊的非線性系統(tǒng),它響應(yīng)不同頻率信號的靈敏度是不同的紊服。在語音特征的提取上檀轨,人類聽覺系統(tǒng)做得非常好,它不僅能提取出語義信息, 而且能提取出說話人的個人特征欺嗤,這些都是現(xiàn)有的語音識別系統(tǒng)所望塵莫及的参萄。如果在語音識別系統(tǒng)中能模擬人類聽覺感知處理特點,就有可能提高語音的識別率煎饼。
梅爾頻率倒譜系數(shù)(Mel Frequency Cepstrum Coefficient, MFCC)考慮到了人類的聽覺特征讹挎,先將線性頻譜映射到基于聽覺感知的Mel非線性頻譜中,然后轉(zhuǎn)換到倒譜上吆玖。
梅爾頻率倒譜系數(shù)(Mel Frequency Cepstrum Coefficient, MFCC)考慮到了人類的聽覺特征筒溃,先將線性頻譜映射到基于聽覺感知的Mel非線性頻譜中,然后轉(zhuǎn)換到倒譜上沾乘。
Mel頻率倒譜系數(shù)(Mel-Frequency Cepstral Coefficients)
我們將頻譜通過一組Mel濾波器就得到Mel頻譜怜奖。公式表述就是:log X[k] = log (Mel-Spectrum)。這時候我們在log X[k]上進(jìn)行倒譜分析:
1)取對數(shù):log X[k] = log H[k] + log E[k]翅阵。
2)進(jìn)行逆變換:x[k] = h[k] + e[k]歪玲。
在Mel頻譜上面獲得的倒譜系數(shù)h[k]就稱為Mel頻率倒譜系數(shù)迁央,簡稱MFCC。
現(xiàn)在咱們來總結(jié)下提取MFCC特征的過程:(具體的數(shù)學(xué)過程網(wǎng)上太多了滥崩,這里就不想貼了)
1)先對語音進(jìn)行預(yù)加重岖圈、分幀和加窗;(加強(qiáng)語音信號性能(信噪比夭委,處理精度等)的一些預(yù)處理)
2)對每一個短時分析窗幅狮,通過FFT得到對應(yīng)的頻譜;(獲得分布在時間軸上不同時間窗內(nèi)的頻譜)
3)將上面的頻譜通過Mel濾波器組得到Mel頻譜株灸;(通過Mel頻譜崇摄,將線形的自然頻譜轉(zhuǎn)換為體現(xiàn)人類聽覺特性的Mel頻譜)
4)在Mel頻譜上面進(jìn)行倒譜分析(取對數(shù),做逆變換慌烧,實際逆變換一般是通過DCT離散余弦變換來實現(xiàn)逐抑,取DCT后的第2個到第13個系數(shù)作為MFCC系數(shù)),獲得Mel頻率倒譜系數(shù)MFCC屹蚊,這個MFCC就是這幀語音的特征厕氨;(倒譜分析,獲得MFCC作為語音特征)
-
這時候汹粤,語音就可以通過一系列的倒譜向量來描述了命斧,每個向量就是每幀的MFCC特征向量。
為何使用World
1.歌聲合成要求比較高的音頻質(zhì)量嘱兼,音頻質(zhì)量保證的關(guān)鍵音素是處理音頻軟件的準(zhǔn)確性
2.目前WORLD可以說是一個后起之秀国葬,比SPTK 好用。
3.另外一個STRAIGHT改天在介紹
使用方法
首先聲明一下WORLD常用的變量名字
I employed these names as the variable names.
(1) x represents the input signal.
(2) y represents the signal after processing.
(3) fs represents sampling frequency.
(4) f0 represents fundamental frequency (including f0 contour).
(5) t0 represents fundamental period.
(6) vuv represents voiced/unvoiced information.
(7) tmp_* represents temporal value. In WORLD, "temporal" is used as another meaning.
- WORLD - a high-quality speech analysis, manipulation and synthesis system
參考[1]:http://practicalcryptography.com/miscellaneous/machine-learning/guide-mel-frequency-cepstral-coefficients-mfccs/
參考[2]:http://www.speech.cs.cmu.edu/15-492/slides/03_mfcc.pdf
參考[3]:https://www.cnblogs.com/BaroC/p/4283380.html
[圖片上傳失敗...(image-c7efe8-1544343206485)]