Feature extraction (kaldi 翻譯+個人理解)

kaldi原文地址:http://www.kaldi-asr.org/doc/feat.html

Introduction:

我們的特徵抽取和讀波形的代碼旨在創建標準的MFCC和PLP特徵,在程序中已經設置好合理的默認值並且還留下了可選擇項使用戶可以適度調整,比如mel bins的數目,頻率截斷值得最大值和最小值。這個代碼值讀包含pcm數據的wav文件。這些文件普遍都有wav和pcm的後綴(儘管有時pcm後綴的文件被應用在sphere files中(不明覺厲))。在這種情況下,這文件就會被轉換。如果源數據不是一個wave文件,然後就取決於用戶用命令行工具去轉換它,但爲了掩蓋一個普通情況,我們爲sph2pipe提供一個安裝指導。這個命令行工具compute-mfcc0feats和compute-plp-feats計算這些特徵,和其他kaldi工具類似,不帶參數運行他們會給出一個選項列表。scripts中的例子展示了這些工具的用法。

computing MFCC features:

通過命令行工具compute-mfcc-feats,我們描述MFCC特徵使如何被計算的。這個項目需要兩個命令行參數:一個rspecifier(度wav數據,indexed by utterance) ,另一個是wspecifier(用來寫特徵,indexed by utterance)。

kaldi把數據寫成一個大的archive文件,同時也寫一個scp文件方便的隨機訪問。這個項目不添加delta特徵,kaldi也接受一個選項-channel來選擇channel(如-channel=0,-channel=1),當讀stereo(立體聲)數據時會起作用。

MFCC特徵的計算是通過Mfcc類型對象完成的,這是一個Compute()函數來計算來自waveform的特徵。

1 得到文件中幀的數目(典型的是25ms幀長10ms的幀移)

2 對於每一幀:

  2.1 抽取數據,做可選抖動、預相位和直流偏移消除,用窗函數對其進行相乘(如漢明窗)

  2.2 算出這個點的能量(如果用log-energy,而不是C0)

  2.2 做FFT變換,計算能量譜。

  2.3 計算每一個mel bin的能量,例如,23個三角形重疊箱,其中心在mel頻域中等距分佈

  2.4 計算log能量,並進行cos變換,保持指定的係數(如13)

  2.5 有選擇地做倒譜擡舉,這只是一個係數縮放,確保其在一個合理的範圍

頻率低的值或者高的值都被截斷了,通過選項-low-freq和-high-freq,總被設置爲0和奈奎斯特頻率,如(對於16kHZ採樣的語音來說,-low-fre1=20,-hith-freq=7800 )。

該工具提取的特徵與htk提取的特徵不同,其大多因爲默認的參數不同導致的,設置選項-htk=true並且正確設置參數,從理論上來講是接近HTK特徵的。一個可能重要的選項是我們不支持能量max-normalization。這是因爲我們你們更偏向於可以以無狀態方式應用的標準化方式。希望保留特徵計算,以便原則上可以逐幀進行,並且仍然給出相同的結果。但是命令行compute-mfcc-feats有一個選項是-subtract-mean來減去特徵的均值。這會在每幀上都進行,對於每個人有不同的處理方式(如cmvn,意味着譜平均和方差標準化)。

Computing PLP features

在前面階段,計算PLP和計算MFCC是類似的,感知線性預測(Perceptual linear predictive, PLP).

 

Feature-level Vocal Tract Length Normalization(VTLN)

特徵級聲道長度標準化。

命令行compute-mfcc-feats和compute-plp-feats都接受一個VTLN變形因子選項。在當前scripts中這僅僅被當作是VTLN線性版本的一種初始化線性變換的方法。VTLN的作用是移動三角形頻率箱的中心頻率位置。在頻率空間中,移動頻率箱的翹曲函數是一個分段線性函數要理解它,請記住以下數量0 <= low-freq <= vtln-low < vtln-high < high-freq <= nyquist。

我們執行的VTLN翹曲函數是一個分段的函數,一共分爲三段映射到[low-freq,high-freq],設該翹曲函數爲W(f),其中f就是頻率。中心段將f映射爲f/scale,其中scale爲VTLN的翹曲因子(通常設置在0.8-1.3之間)。X軸的下段與中間段相連的點是f點,使得min(f,W(f))=vtln-low。X軸的下段與中間段相連的點是f點,使得max(f,W(f))=vtln-high.低段和高段的斜坡於偏置由連續性決定,並且滿足W(low-freq)=low-freq and W(high-freq)=high-freq,這個變形函數於HTK的不同,在HTK的版本中,“vtln-low”和“vtln-high”量被解釋爲X軸上不連續發生的點。這就意味着vtln-high變量需要基於已知翹曲因子的範圍來認真選擇(否則空mel bins這種情況會發生)。

對於16k的語音數據來說,可參考如下設置

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章