Mel頻譜和MFCC深入淺出

前言

在音頻領(lǐng)域,mel頻譜和mfcc是非常重要的特征數(shù)據(jù)甘有,在深度學(xué)習(xí)領(lǐng)域通常用此特征數(shù)據(jù)作為網(wǎng)絡(luò)的輸入訓(xùn)練模型诉儒,來解決音頻領(lǐng)域的各種分類、分離等業(yè)務(wù)亏掀,如端點(diǎn)偵測忱反、節(jié)奏識別、和弦識別滤愕、音高追蹤温算、樂器分類、音源分離间影、回聲消除等相關(guān)業(yè)務(wù)注竿。

當(dāng)然,針對深度學(xué)習(xí)音頻領(lǐng)域的業(yè)務(wù)魂贬,不是用下這兩個(gè)特征巩割、選幾個(gè)網(wǎng)絡(luò)、打個(gè)標(biāo)簽付燥,放數(shù)據(jù)訓(xùn)練就完事了宣谈, 僅僅基于mel頻譜和mfcc這兩個(gè)特征,解決好上述業(yè)務(wù)某些情況下還是遠(yuǎn)遠(yuǎn)不夠的键科,熟悉這些特征的內(nèi)在邏輯性闻丑、衍生細(xì)節(jié)和延展,才能更好的結(jié)合深度學(xué)習(xí)解決業(yè)務(wù)問題勋颖。

下面講解mel頻譜和mfcc特征的算法流程和一些細(xì)節(jié)梆掸、延展,這些細(xì)節(jié)從局部角度來看牙言,都會影響到最終特征呈現(xiàn)的細(xì)節(jié)差異酸钦,這些差異放大到模型訓(xùn)練結(jié)果的準(zhǔn)確性、魯棒性上怎么樣是非常值得研究的,某些情況下可能會有質(zhì)的變化卑硫,質(zhì)的變化無論正向還是負(fù)向都是值得關(guān)注的徒恋,最怕的是沒變化;同時(shí)欢伏,一些問題的延展從廣義角度來看入挣,帶來不同的特征組合、網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)思考等也是解決業(yè)務(wù)問題非常重要的思想源泉硝拧。

算法流程

設(shè) sr 為采樣率径筏,fftLength 為幀長度,slideLength 為滑動長度

下面是一張mel頻譜和mfcc的大概算法流程圖障陶。

flow_all.png

1. 預(yù)加重(Pre-emphasis)

如流程圖所示的第1步滋恬,屬于信號的預(yù)處理,補(bǔ)償高頻分量損失抱究,提升高頻分量恢氯,一般情況下可以忽略此步驟,屬于信號的簡單增強(qiáng)鼓寺,對特征有一定的提升效果勋拟。公式如下

x[n]=x[n]-\alpha x[n-1]

\alpha一般取0.97
公式屬于差分一階即高通濾波器。

2. 分幀(Frame)

現(xiàn)實(shí)中大多數(shù)信號都是非平穩(wěn)的妈候,但大多數(shù)短時(shí)間內(nèi)可以近似看做是平穩(wěn)的敢靡,可以用短時(shí)傅里葉變換表現(xiàn)非平穩(wěn)信號頻域特征。 一般語音中采用10ms~30ms左右苦银,樂音中可以更長一些64ms~256ms啸胧。

分幀涉及到前后重疊(overlap),一般情況下以滑動幀長的1/4或1/2(前后重疊3/4或1/2)進(jìn)行墓毒,即slideLength=\cfrac{fftLength}4或\cfrac{fftLength}2吓揪。

3. 加窗(Window)

加窗目的是減少頻譜泄露,降低泄漏頻率干擾所计,提升頻譜效果柠辞,默認(rèn)不處理即加矩形窗(Rect),干擾泄漏較嚴(yán)重主胧,一般情況下加Hann窗叭首,針對大多數(shù)信號都有不錯(cuò)的效果。公式如下
w(n)=0.5\left( 1-\cos \left(2\pi \cfrac n{N} \right)\right) , 0 \le n \le N

Hann為余弦窗踪栋,N表示階數(shù)焙格。

4. 短時(shí)傅里葉變換(STFT)

分幀加窗傅里葉變換即短時(shí)傅里葉變換。公示如下
X(\tau,f)=\int_{-\infty}^\infty x(t)w(t-\tau)e^{-j2\pi f t}dt
X(m,k)=\sum_{n=0}^{N-1} x[n]W[n-m]e^{\frac{-j2\pi kn}{N} }

設(shè)數(shù)據(jù)長度為 dataLength夷都,
t=\begin{cases} \cfrac{(dataLength-fftLength)}{slideLength}+1, &無填充 \\ \cfrac{dataLength}{slideLength}+1 , &填充fftLength\end{cases}

STFT屬于標(biāo)準(zhǔn)的數(shù)學(xué)變換眷唉,為復(fù)數(shù)域,尺寸為 t*fftLength,為表示區(qū)分冬阳,一般的如|X(m,k)|取模蛤虐,尺寸為t*(fftLength/2+1) 表示為STFT頻譜,有以下類型頻譜肝陪。

|X(m,k)|驳庭,STFT幅值頻譜
|X(m,k)|^2,STFT功率頻譜
\log(|X(m,k)|)氯窍,STFT dB(分貝)頻譜
20\log\left(\cfrac{|X(m,k)|}{fftLength}\right)饲常,STFT標(biāo)準(zhǔn)dB頻譜

注:

  1. dB頻譜屬于相對譜,加減乘除對頻率相對dB值沒影響狼讨,標(biāo)準(zhǔn)dB頻譜相當(dāng)于建立一個(gè)基準(zhǔn)參考線贝淤,方便分析頻譜和量化,大多數(shù)頻譜示例都是此種類型熊楼。
  2. 深度學(xué)習(xí)中使用dB譜訓(xùn)練大多數(shù)要優(yōu)于其它數(shù)值類型的頻譜霹娄。

5. 濾波器組過程(Filter bank)

此過程是計(jì)算mel頻譜關(guān)鍵部分和mfcc的重要一步能犯。流程圖如下

filterbank.png

mel刻度(scale)是一種基于人耳聽覺設(shè)計(jì)的log壓縮刻度鲫骗,人耳針對低頻比較敏感,高頻不太敏感踩晶,比如110hz和116hz一般人都能區(qū)分出來执泰,但4000hz和4100hz大部分分不出來。mel刻度和hz的轉(zhuǎn)換公式如下
\begin{cases} mel=2595\log_{10}(1+\cfrac{hz}{700}) \\ hz=700(10^{\frac{mel}{2595}}-1) \end{cases}

圖中前三個(gè)步驟即根據(jù)業(yè)務(wù)fre邊界和num頻帶個(gè)數(shù)計(jì)算mel刻度下所映射的freBandArr渡蜻。
接下來就是STFT頻帶如何映射到mel刻度的頻帶术吝,用頻帶加三角窗進(jìn)行計(jì)算mel刻度的filterBank matrix,三角窗公式如下
w(n)=\begin{cases} \cfrac{2n}N, & 0 \le n \le \cfrac N{2} \\ 2-\cfrac{2n}N, & \cfrac N{2} \le n \le N \end{cases}

如下圖

triang.png

當(dāng)然這個(gè)是對稱的茸苇,線性頻帶用對稱的沒問題排苍,mel刻度產(chǎn)生的頻帶log比例,左右不會對稱学密,這時(shí)候使用三角窗就是非對稱的淘衙,下面是mel刻度的filterBank matrix公式
w(k,h)=\begin{cases} \cfrac{h-f_{k-1}}{f_k-f_{k-1}}, & f_{k-1} \lt h\le f_k \\ \cfrac{f_{k+1}-h}{f_{k+1}-f_k} , & f_{k} \lt h\le f_{k+1} \\ 0, & other \end{cases}

下面給出一個(gè)簡單的示意圖

filterBank_triang.png

最后,一般使用STFT功率頻譜和filterBank matrix做矩陣乘法運(yùn)算即得出mel功率頻譜腻暮。

6. 非線性校正(Rectification)

對上一步mel功率頻譜取log運(yùn)算彤守,即mel dB頻譜就是通常所使用的“mel頻譜”,一般情況下5哭靖、6步作為一個(gè)整體看待具垫,合到一塊可以理解為mel頻譜的計(jì)算。

下面是STFT頻譜和mel頻譜(num=128)的效果對比圖试幽。

stft_mel.png

7. 離散余弦變換(DCT)

離散余弦變換筝蚕,即數(shù)據(jù)為偶函數(shù)的實(shí)數(shù)傅里葉的變換,有去相關(guān)和能量集中特點(diǎn)。公式如下
X[k]=\sum_{n=0}^{N-1}x[n]e^{\frac{-j2\pi kn}{N} }=\sum_{n=0}^{N-1}x[n] \left[ \cos(\frac{2\pi kn}{N} )-j\sin( \frac{2\pi kn}{N} ) \right]

當(dāng)\sin(\theta)=0起宽,即DCT變換蔗坯, \cos(\theta)=0,即DST變換燎含。

DCT變換宾濒,屬于數(shù)據(jù)高度去相關(guān)后的特征反映,由于能量集中的特點(diǎn)屏箍,在數(shù)據(jù)壓縮領(lǐng)域廣泛常用绘梦,一般的,DCT考慮到數(shù)據(jù)解析延拓時(shí)中間點(diǎn)選取赴魁、邊界卸奉、方式等情況有8種對應(yīng)變換,常用的為DCT-II變換颖御,公式如下
X(k)=\sum_{n=0}^{N-1}x[n]\cos\left[\frac \pi{N}(n+\frac{1}2)k\right]

mel頻譜經(jīng)過DCT變換后得到倒譜系數(shù)(cepstral coeffs)即MFCCs榄棵。

8. 能量和delta

能量和delta的計(jì)算屬于mfcc特征體系下的可選操作。
能量特征相當(dāng)于給mfcc加上bias偏置潘拱,具有一定抗噪作用疹鳄,公式如下
energy=\sum_{n=1}^N x^2[n] =\frac{1}{N}\sum_{m=1}^N |X[m]|^2

根據(jù)公式,可以從時(shí)域計(jì)算芦岂,也可以基于頻域計(jì)算瘪弓,很明顯,這樣計(jì)算出的結(jié)果動態(tài)范圍太小禽最,一般針對結(jié)果取log運(yùn)算即energy=\log(\sum_{n=1}^N x^2[n] )腺怯,又稱log能量,可以替換首個(gè)mfcc直流分量值或首位置追加川无。

delta是計(jì)算數(shù)據(jù)的變化呛占,基于當(dāng)前點(diǎn)區(qū)域的局部斜率最小二乘近似值,公式如下
delta=\cfrac{\sum_{k=-M}^Mkx[k]}{\sum_{k=-M}^Mk^2}

M為階數(shù)懦趋,為奇數(shù)晾虑,一般取9

針對mfcc計(jì)算其delta,然后再計(jì)算delta的delta愕够,可以偵測mfcc狀態(tài)的變化走贪,變化的變化,可以作為mfcc的兩組輔助特征參與網(wǎng)絡(luò)模型的訓(xùn)練惑芭,某些情況下起到更好的準(zhǔn)確性和泛化能力坠狡。

mfcc相關(guān)效果圖如下

mfcc.png

綜上所有,詳細(xì)描述解釋了算法流程中每一步計(jì)算流程遂跟,下面將對一些步驟流程涉及到的細(xì)節(jié)思考點(diǎn)和延伸點(diǎn)做深入的展開逃沿。

相關(guān)細(xì)節(jié)

1. weight-A計(jì)權(quán)

針對上面預(yù)加重方式而言婴渡,本質(zhì)上是一個(gè)高通濾波器,是衰減低頻的凯亮,本身并不會提升高頻边臼,“補(bǔ)償高頻分量損失,提升高頻分量”并不太嚴(yán)謹(jǐn)?shù)容^形象假消,衰減低頻相對來說就是變相提升高頻柠并,是縮減高低頻動態(tài)范圍的。

為什么要縮減高低頻動態(tài)范圍富拗,有沒有更好的方式臼予,答案就是weight-A計(jì)權(quán)。

上面有提到“人耳對低頻比較敏感啃沪,高頻不太敏感”粘拾,這個(gè)敏感是針對頻率分辨而言的,針對頻率的強(qiáng)度而言创千,這句話是反過來的即人耳對高頻比較敏感缰雇,低頻不太敏感,以吉他樂器為例追驴,用同樣力度撥最粗和最細(xì)的弦發(fā)出的音械哟,即物理上兩者強(qiáng)度(振幅)是一樣的,但聽覺上高頻比低頻要響的多氯檐,人們用weight-A計(jì)權(quán)來量化這種“響度”的心理指標(biāo)戒良,數(shù)學(xué)上表示不同頻段的log函數(shù)加減体捏,效果如下圖冠摄。

weight_A.png

如圖所示,整個(gè)頻段不僅有衰減几缭、還有真正的提升區(qū)域河泳。

針對一些業(yè)務(wù)的深度學(xué)習(xí)模型訓(xùn)練,加weight-A計(jì)權(quán)能提升4%~5%左右精度年栓。

2. overlap重疊

數(shù)據(jù)分幀涉及到幀長和重疊兩個(gè)問題拆挥,幀長決定頻域的頻率分辨率和時(shí)域的時(shí)間分辨率,幀長越長某抓,頻域分辨率越精確纸兔,時(shí)域分辨率越模糊,但受限大多數(shù)信號本身非平穩(wěn)特點(diǎn)不可能無限長否副,幀長越短汉矿,時(shí)域分辨率越精確,頻域分辨率越模糊备禀。

重疊問題洲拇,就是相對當(dāng)前幀滑動的問題奈揍,如上面分幀流程所述一般情況下滑動幀長的1/4或1/2,當(dāng)然赋续,滑動長度也可以等同幀長(前后重疊為0)男翰,甚至超過幀長(沒有重疊,前后跳躍)纽乱。

重疊多少還是不重疊還是跳躍蛾绎,本身并不會提升時(shí)域分辨率,可以理解為頻譜t維度的不同時(shí)間間隔采樣鸦列,滑動小相當(dāng)于頻譜圖的插值升采樣秘通,滑動大相當(dāng)于頻譜圖的抽取降采樣,針對端點(diǎn)偵測業(yè)務(wù)頻域的相關(guān)算法敛熬,滑動太小或跳動過大都不會有好的效果肺稀,如下面效果對比。

overlap.png

如圖所見应民,紫色和綠色是滑動極小和跳動過大效果话原。

針對端點(diǎn)偵測相關(guān)業(yè)務(wù),選擇合適幀長后诲锹,前后滑動一般沒有重疊或少許跳動效果相對好一些繁仁。

3. window窗函數(shù)

時(shí)域加窗目的是減少頻譜泄露,上述算法流程描述中归园,一般情況下加Hann窗黄虱,但窗函數(shù)有很多,如Triang庸诱,Hann捻浦,Hamm,Guass桥爽,Kaiser朱灿,F(xiàn)lattop,Blackman等等钠四。

不同窗如何選擇盗扒,在深度學(xué)習(xí)一些業(yè)務(wù)中,不同窗的選擇對模型的訓(xùn)練和結(jié)果影響是怎樣的缀去,或者哪些窗在業(yè)務(wù)中是值得做嘗試的侣灶。

Guass,Kaiser非常值得嘗試缕碎,公式如下
\begin{cases} guass(n)=e^{-n^2/2\sigma^2} =e^{ -\frac12 \left( \alpha \frac{n}{ (N-1)/2 } \right)^2} , -(N-1)/2 \le n \le (N-1)/2 \\ kaiser(n)=\cfrac {I_0 \left( \beta \sqrt{1- \left( { \cfrac {n-N/2}{N/2} } \right)^2 } \right) } {I_0(\beta)} , 0 \le n \le N \end{cases}

針對Guass:

\sigma=(N-1)/(2\alpha), 兩者之間互為反比

默認(rèn)\alpha=2.5

針對Kaiser:

I_0(\beta)為零階第一類修正貝塞爾函數(shù)褥影,可有下面公式級數(shù)計(jì)算,
I_0(\beta)=1+\sum_{k=1}^{\infty} \left[ \cfrac1{k!} \left (\cfrac \beta 2 \right)^k \right] ^2阎曹,一般取15項(xiàng)左右
默認(rèn)\beta=5

Gauss伪阶,Kaiser相比其它大多數(shù)窗而言煞檩,屬于窗口可變窗,一般窗口寬度越大栅贴,分辨率越細(xì)斟湃,過渡帶越小,但阻帶衰減偏大檐薯;一般窗口寬度越窄凝赛,分辨率越大,過渡帶越大坛缕,但阻帶衰減偏小墓猎。

針對Guass和Kaiser這兩種可以調(diào)整寬度的窗,在一些業(yè)務(wù)中可以選擇最大化旁瓣衰減赚楚,用相應(yīng)的頻譜特征訓(xùn)練深度學(xué)習(xí)業(yè)務(wù)模型時(shí)毙沾,可能會有不錯(cuò)的表現(xiàn)。

4. rectification非線性校正

上述算法流程描述中宠页,一般而言5左胞、6步合到一起是標(biāo)準(zhǔn)的頻譜呈現(xiàn)結(jié)果,但從功率頻譜非線性校正角度而言举户,
不止log函數(shù)一種烤宙,當(dāng)然log是最重要最常用的一種,可以用cubic root(三次開方)俭嘁,類Relu等其它方式躺枕。

從深度學(xué)習(xí)角度來看,可以把類mel頻譜當(dāng)做一種網(wǎng)絡(luò)層計(jì)算供填,log拐云、cubic root等非線性操作當(dāng)做激活函數(shù)。

從這個(gè)角度來看捕虽,針對不同的業(yè)務(wù)慨丐,激活函數(shù)的不同選擇設(shè)計(jì),對模型的訓(xùn)練和結(jié)果的影響有可能是天翻地覆的泄私,在研發(fā)業(yè)務(wù)中是很值得關(guān)注測試的一個(gè)點(diǎn)。

各種刻度

1. 其它刻度

mel頻譜如此知名备闲,難道做音頻領(lǐng)域深度學(xué)習(xí)就只有mel頻譜晌端?當(dāng)然不是,有些情況mel頻譜不一定是最優(yōu)的恬砂。

如上面算法流程描述中mel刻度的解釋咧纠,是一種基于人耳聽覺設(shè)計(jì)的log壓縮刻度,后面發(fā)展出更準(zhǔn)確人耳聽覺模型刻度泻骤,Bark和ERB刻度漆羔,公式如下
bark=\frac{26.81hz}{1960+hz}-0.53, \quad hz=1960(\frac{bark+0.53}{26.81-bark})
\quad erb=A\log_{10}{(1+0.00437hz)}, \quad hz=\frac{10^{\frac{erb}A}-1}{0.00437}

A=\frac{1000\ln(10)}{(24.7)(4.37)}

2. Gammatone filter

g(t)=at^{n-1}e^{-2\pi bt}\cos(2\pi f_ct+\phi)

公式中 at^{n-1}e^{-2\pi bt} 部分為 \Gamma 形式函數(shù)梧奢,\cos 理解為tone,稱之為gammatone演痒。
一般情況下亲轨,人耳聽覺模型中的ERB刻度和gammatone filter的bandwidth相關(guān)聯(lián),即b為ERB刻度的bandwidth鸟顺。

基于這個(gè)濾波器求頻響非常復(fù)雜惦蚊,只能給出近似公式,論文公式推導(dǎo)足足有20多頁讯嫂,已超過大部分人的研究上限蹦锋,即使拿論文的結(jié)果公式直接編程實(shí)現(xiàn)也不輕松。幸運(yùn)的是audioFlux開源項(xiàng)目有比較標(biāo)準(zhǔn)的實(shí)現(xiàn)欧芽,感興趣的朋友可以研究一下莉掂。

3. 刻度頻譜

除了上述刻度以外,還有基于樂音八度的octave刻度千扔,更通用的log刻度等等巫湘,基于上面算法流程,mel刻度產(chǎn)生mel頻譜和mfcc特征昏鹃,同樣的流程尚氛,bark/erb等刻度產(chǎn)生對應(yīng)的bark/erb頻譜和相應(yīng)倒譜系數(shù),一些不同刻度頻譜的對比圖如下

scale.png

更多的不同刻度頻譜類型可嘗試使用audioFlux庫測試洞渤。

4. 可能的問題

在一些業(yè)務(wù)中阅嘶,比如樂器相關(guān)業(yè)務(wù)中,上面所有的刻度中载迄,可能都會有一些小問題讯柔,針對低頻的頻帶,可能有些已經(jīng)小于STFT的最小分辨率护昧,這時(shí)候顯然沒意義魂迄,額外的造成干涉發(fā)散效果;針對中頻的頻帶惋耙,有些可能過大捣炬,分辨不夠細(xì);針對高頻的頻帶绽榛,可能還不夠大湿酸,分辨還是相對過小。

上述情況下灭美,在一些業(yè)務(wù)中推溃,特定的一些網(wǎng)絡(luò)結(jié)構(gòu)中,中低頻的分辨率差可能會導(dǎo)致訓(xùn)練模型的欠擬合届腐,很難達(dá)到一定準(zhǔn)確度铁坎,或者高頻的分辨率過小可能會導(dǎo)致訓(xùn)練模型的欠擬合蜂奸,泛化能力差,出現(xiàn)這種情況后可以嘗試以下方式:

1硬萍,適當(dāng)?shù)脑黾訑?shù)據(jù)集扩所、調(diào)整網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù)等通用方式。
2襟铭,增加不同維度的特征輸入碌奉,讓網(wǎng)絡(luò)找到最優(yōu)解或跳出局部最優(yōu)解。
3寒砖,自定義刻度赐劣,既然明確原因,從特征本身優(yōu)化上入手哩都。

綜上魁兼,不同scale下產(chǎn)生的頻譜數(shù)據(jù)高低頻細(xì)節(jié)、能量聚集漠嵌、對比度都會有不同的差異咐汞,這種差異放大到一些業(yè)務(wù)實(shí)踐中,模型的準(zhǔn)確度和魯棒性怎么樣儒鹿,就非常有嘗試研究價(jià)值化撕。

在深度學(xué)習(xí)一些業(yè)務(wù)中,如果mel刻度下的相關(guān)特征可以出結(jié)果约炎,使用bark相關(guān)特征替換植阴,往往有一定的效果提升。

濾波器組

1. 概念

數(shù)字信號中圾浅,濾波器有基礎(chǔ)的高通濾波器和低通濾波器掠手, 帶通濾波器可以有低通和高通串聯(lián)而成,F(xiàn)ilter bank可以理解為多個(gè)帶通濾波器狸捕。

濾波器組是一個(gè)映射矩陣喷鸽,表示STFT線性頻帶和不同刻度下的頻帶映射關(guān)系,至于怎么映射灸拍,就是算法流程描述第5步中的三角窗函數(shù)法做祝,三角窗的Filter bank如下圖所示

filterBank_triang.png

2. 歸一化

如上圖所示,一般刻度產(chǎn)生的頻帶株搔,低頻帶寬小剖淀,高頻越來越大,意味著高頻區(qū)域很長的一段頻帶都會參與當(dāng)前頻率分量的映射計(jì)算纤房,相對低頻而言顯然不太合理,這時(shí)候需要對Filter bank進(jìn)行歸一化處理翻诉。

歸一化方式有以帶寬和面積區(qū)域兩種方式炮姨,以帶寬方式歸一化效果如下圖

filterBank_triang_norm.png

3. 不同的窗

針對Filter bank的計(jì)算捌刮,難道就只有三角窗函數(shù)法,當(dāng)然不是舒岸,可以使用Rect绅作,Hann,Hamm等等這些窗函數(shù)蛾派,Gammatone也是一種特殊的窗函數(shù)俄认,某種角度上講甚至可以不計(jì)算,下面是幾種不同窗下Filter bank的對比圖

filterBank_compare.png

下面是不同窗下的頻譜對比圖

style.png

圖中Slaney和ETSI是兩種不同類型的三角窗洪乍,其它更多窗類型測試可嘗試使用audioFlux庫眯杏。

4. 加窗方式

窗函數(shù)重疊處處理有很多細(xì)化方式,頻帶前后窗都是有重疊的壳澳,一般的處理方式是重疊點(diǎn)后面不再參與之前計(jì)算岂贩,重疊點(diǎn)之前不再參與之后計(jì)算,如下面圖所示

window_way.png

如果各個(gè)頻帶窗函數(shù)可以等比例縮放巷波,這樣的話對不同刻度下的頻帶都變成可調(diào)整的萎津,窗函數(shù)不同的寬度選擇,對應(yīng)時(shí)頻分辨率不同的變化抹镊,結(jié)合PWT(偽小波變換)锉屈,就是另外一種CWT效果的同等變體,不同于CWT對波函數(shù)的限定要求垮耳,可以用更廣泛的窗函數(shù)研究CWT颈渊。

綜上,針對Filter bank的計(jì)算氨菇,加什么窗儡炼?怎么加窗娘荡?何種歸一化方式犁河?使用這些組合產(chǎn)生出更多細(xì)粒度的不同特征届巩,訓(xùn)練出模型準(zhǔn)確性和魯棒性如何慢哈,是非常值得嘗試研究的玛荞。

倒譜系數(shù)

1. 概念

什么是倒譜系數(shù)契讲,為什么DCT計(jì)算后是倒譜系數(shù)带膀?

倒譜的標(biāo)準(zhǔn)公式定義如下
C(r)=F\{\log(F\{f(t)\})\}

數(shù)據(jù)經(jīng)過FFT變換后取log后撩银,再次FFT變換一般稱為倒譜鹃共,更廣義的講即時(shí)域數(shù)據(jù)經(jīng)過FFT變?yōu)轭l域數(shù)據(jù)鬼佣,頻域數(shù)據(jù)再次
FFT變換即倒譜變換。

DCT是DFT的特例霜浴,所以DCT針對之前FFT結(jié)果再次變換符合上述公式概念定義晶衷,也稱倒譜系數(shù);相比DFT,DCT能量較聚集晌纫,相當(dāng)于頻譜數(shù)據(jù)的再壓縮税迷,用小部分系數(shù)就能反映出數(shù)據(jù)的高度去相關(guān)的特征。

2. 倒譜應(yīng)用

倒譜可以干什么锹漱?

可以估算音高箭养,可以作為解卷積(deconv)的一種方式,分離信號哥牍,計(jì)算包絡(luò)(envelope)/共振峰(Formant)等等毕泌,
解卷積推導(dǎo)公式如下
\begin{cases} x(t)=g(t)*h(t) \\ F\{x(t)\}=X(\omega)=G(\omega)H(\omega) \\ \log X(\omega)=\hat X(\omega)=\hat G(\omega)+\hat H(\omega) \\ F^{-1}\{\hat X(\omega)\}=\hat x(k)=\hat g(k)+\hat h(k) \end{cases}

3. 延展

分?jǐn)?shù)傅里葉變換(FRFT)

根據(jù)倒譜的定義,延展一下嗅辣,能否多次FFT撼泛,多次FFT的意義是什么,多次變換引申如下
F^2=F(F(x))
F^n(x)=F^{(n-1)}(F(x))
設(shè)n=\frac{2\phi}\pi辩诞,換元后定義
F_\phi(x)=F^{2\phi/\pi}(x)

引用\phi后坎弯,F(xiàn)FT變換的次數(shù)可以非整數(shù)即分?jǐn)?shù)傅里葉變換,物理意義的表現(xiàn)就是旋轉(zhuǎn)頻譜一定角度译暂,可以多一個(gè)維度分析頻譜抠忘,同時(shí)也帶來其它概念的延伸,如分?jǐn)?shù)卷積等等外永。

方法論

1. 大特征(big feature)式訓(xùn)練

曾經(jīng)看到國外有一個(gè)做音頻分類的一個(gè)小業(yè)務(wù)崎脉,網(wǎng)絡(luò)輸入包括時(shí)域的能量、均方根伯顶、過零率囚灼、均值、方差祭衩、協(xié)方差灶体、偏度、峰度掐暮、矩蝎抽、中值、中位數(shù)路克、相關(guān)系數(shù)等等數(shù)十種時(shí)域相關(guān)的統(tǒng)計(jì)特征樟结,不管三七二十一,合理歸一化后精算,扔給一個(gè)卷積網(wǎng)絡(luò)跑模型訓(xùn)練瓢宦,最后能達(dá)到90%以上準(zhǔn)確率。

這種方式不能說是好還是壞灰羽,從業(yè)務(wù)結(jié)果上來說驮履,把網(wǎng)絡(luò)完全當(dāng)做一個(gè)黑箱鱼辙,輸入盡可能多的自身掌握的各種特征,打好標(biāo)簽疲吸,扔給網(wǎng)絡(luò)跑座每,只要能出結(jié)果就是好的前鹅。

如果把這種操作延展摘悴,在音頻領(lǐng)域特征選擇上,一個(gè)體系的舰绘、全面的蹂喻、多維度的任意不同粒度組合成一個(gè)靈活的大的特征數(shù)據(jù),相對單一或少量組合的特征捂寿,作為網(wǎng)絡(luò)輸入訓(xùn)練模型是否更具有優(yōu)勢口四,這個(gè)問題是值得思考研究的。

針對大特征數(shù)據(jù)的訓(xùn)練秦陋,有以下幾種方式可以嘗試:
1蔓彩,大特征數(shù)據(jù)合理歸一化整體作為輸入,單一輸入驳概,經(jīng)典網(wǎng)絡(luò)和不同網(wǎng)絡(luò)結(jié)構(gòu)組合訓(xùn)練赤嚼。
2,大特征數(shù)據(jù)合理歸一化整體作為輸入顺又,同樣數(shù)據(jù)多路輸入更卒,各種不同網(wǎng)絡(luò)結(jié)構(gòu)組合訓(xùn)練。
3稚照,大特征數(shù)據(jù)不同的特征維度蹂空,不同數(shù)據(jù)多路輸入,分別走相同的網(wǎng)絡(luò)結(jié)構(gòu)和不同的網(wǎng)絡(luò)結(jié)構(gòu)組合訓(xùn)練果录。
4上枕,基于第3種方式,一些特征直接作為中間隱藏?cái)?shù)據(jù)插入內(nèi)部不同網(wǎng)絡(luò)結(jié)構(gòu)中組合訓(xùn)練弱恒。

2. 內(nèi)嵌式網(wǎng)絡(luò)訓(xùn)練

深度學(xué)習(xí)中辨萍,全連接、卷積斤彼、RNN等這些基礎(chǔ)網(wǎng)絡(luò)分瘦,在空間和時(shí)間維度上不同的細(xì)化神經(jīng)元線性運(yùn)算加各種非線性激活操作來完善自身通識的算法體系,解耦數(shù)據(jù)特征工程琉苇、特征建模和目標(biāo)結(jié)果的層層依賴嘲玫,成為一種通識的算法思維。傳統(tǒng)基于統(tǒng)計(jì)學(xué)的機(jī)器學(xué)習(xí)和模式識別在此面前顯得不堪一擊并扇,像一個(gè)暴發(fā)戶一樣去团,前人們含辛茹苦積累數(shù)十年的領(lǐng)域經(jīng)驗(yàn),一個(gè)門外漢幾天就給顛覆了,關(guān)鍵是結(jié)果還比你好土陪。

當(dāng)然昼汗,從學(xué)習(xí)研究角度來看,如HMM鬼雀、GMM顷窒、CRF等這些前人積累的經(jīng)典算法模型,在后續(xù)業(yè)務(wù)中有可能用不到源哩,但這些算法思維是很值得借鑒學(xué)習(xí)的鞋吉,備足思維“原料”,任何時(shí)候都不過時(shí)励烦。

這些網(wǎng)絡(luò)的根在哪里谓着,從算法角度來看就是數(shù)值計(jì)算和數(shù)值優(yōu)化,數(shù)值計(jì)算層面網(wǎng)絡(luò)里有大量的線代運(yùn)算坛掠,自然有CUDA和各種BLAS作為支撐赊锚,最優(yōu)化理論上,大部分情況下是訓(xùn)練收斂快慢屉栓、震蕩的問題舷蒲,相關(guān)理論研究積累目前來看相對成熟。

從工程角度來看系瓢,基于最速下降體系的反向傳播算法已成事實(shí)上的標(biāo)準(zhǔn)阿纤,其它諸如二階求導(dǎo)、牛頓法等始終為小眾市場夷陋,但問題是自動微分工程上的實(shí)踐欠拾,有pytorch在手,實(shí)現(xiàn)各種網(wǎng)絡(luò)結(jié)構(gòu)骗绕、自定義各種網(wǎng)絡(luò)結(jié)構(gòu)等算法難度上呈指數(shù)級下降藐窄,現(xiàn)在的玩法更多是網(wǎng)絡(luò)的深度,網(wǎng)絡(luò)的各種組合上酬土,這可能才是目前網(wǎng)絡(luò)的根結(jié)所在荆忍。

現(xiàn)在,回歸到內(nèi)嵌式網(wǎng)絡(luò)訓(xùn)練 撤缴,這些基礎(chǔ)的網(wǎng)絡(luò)本質(zhì)上可以看做是積分變換刹枉,而音頻領(lǐng)域有數(shù)十種經(jīng)典的積分變換,這些變換不同于前人積累的特定領(lǐng)域的經(jīng)典模型算法屈呕,它本身就是典型的高度抽象的數(shù)學(xué)公式微宝,自帶通識基礎(chǔ)。

第一種方式
拿最常見的mel頻譜來說虎眨,姑且認(rèn)為它是STFT變換的一種蟋软,我們可以直接拿mel頻譜當(dāng)做網(wǎng)絡(luò)輸入訓(xùn)練镶摘,同樣的,我們可以把mel頻譜寫入網(wǎng)絡(luò)結(jié)構(gòu)的前向計(jì)算中岳守,這時(shí)可以直接拿時(shí)域數(shù)據(jù)當(dāng)做網(wǎng)絡(luò)輸入訓(xùn)練凄敢,這兩者之間的差別在哪,答案是沒有差別湿痢,之前是mel頻譜作為特征輸入涝缝,現(xiàn)在只不過不是mel頻譜的計(jì)算放在網(wǎng)絡(luò)開頭計(jì)算而已,速度可能會快一些蒙袍,叫一個(gè)更有逼格的名字俊卤,Mel-CNN、CWT-Transformer害幅、NSGT-RNN、CRF-LSTM岂昭、PCA-Inception等等網(wǎng)絡(luò)以现。

第二種方式
可以把mel頻譜計(jì)算放到網(wǎng)絡(luò)的中間,這時(shí)候mel頻譜計(jì)算可以作為一個(gè)算子參與到前向约啊、后向這些計(jì)算邑遏,影響前后神經(jīng)元權(quán)重參數(shù)的更新,這時(shí)候可以稱之為Mel-CNN等等總算是更進(jìn)一步恰矩,更準(zhǔn)確說是mel頻譜激活函數(shù)记盒。

第三種方式
mel頻譜有自己的神經(jīng)元,開始成為真正的mel頻譜網(wǎng)絡(luò)層外傅,同樣的延展纪吮,類如mel頻譜等積分變換,什么都不操作萎胰,它就是一個(gè)稍微復(fù)雜點(diǎn)的算子碾盟、激活函數(shù),如果在空間和時(shí)間維度上加上神經(jīng)元設(shè)計(jì)技竟,誰能保證不會出現(xiàn)下一個(gè)類卷積網(wǎng)絡(luò)的通識結(jié)構(gòu)呢冰肴,當(dāng)然,這種設(shè)計(jì)要求有較強(qiáng)的理論推導(dǎo)能力和大量的基礎(chǔ)測試榔组,足以支撐構(gòu)建新設(shè)計(jì)網(wǎng)絡(luò)的理論基礎(chǔ)和業(yè)務(wù)邏輯解釋熙尉。

最后,音頻領(lǐng)域數(shù)十種經(jīng)典的積分變換加上傳統(tǒng)機(jī)器學(xué)習(xí)的經(jīng)典模型算法搓扯,如何內(nèi)嵌式網(wǎng)絡(luò)訓(xùn)練检痰,最最起碼視野開闊很多,對于業(yè)務(wù)而言擅编,真正的網(wǎng)絡(luò)層實(shí)現(xiàn)可能算是標(biāo)準(zhǔn)的科研攀细,而作為一個(gè)算子激活函數(shù)的使用是應(yīng)該嘗試的箫踩,最不濟(jì),把這些當(dāng)做不同維度的特征輸入也總比什么都沒有好谭贪,多一個(gè)維度境钟,多一種特征,多一種選擇俭识。

總結(jié)

本文大體上分四個(gè)部分慨削,算法流程詳細(xì)描述解釋了每一步計(jì)算流程,相關(guān)細(xì)節(jié)算是簡單步驟流程的細(xì)節(jié)點(diǎn)思考和延展套媚,各種刻度缚态、濾波器組倒譜系數(shù)算是重要概念和重要步驟的細(xì)節(jié)點(diǎn)思考和延展堤瘤,以上三個(gè)部分算是整個(gè)“深入”部分玫芦,方法論是“淺出”部分。

備足思維“原料”本辐,任何時(shí)候都不過時(shí)
多一個(gè)維度桥帆,多一種特征,多一種選擇

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末慎皱,一起剝皮案震驚了整個(gè)濱河市老虫,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌茫多,老刑警劉巖祈匙,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異天揖,居然都是意外死亡夺欲,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進(jìn)店門宝剖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來洁闰,“玉大人,你說我怎么就攤上這事万细∑嗣迹” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵赖钞,是天一觀的道長腰素。 經(jīng)常有香客問我,道長雪营,這世上最難降的妖魔是什么弓千? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮献起,結(jié)果婚禮上洋访,老公的妹妹穿的比我還像新娘镣陕。我一直安慰自己,他們只是感情好姻政,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布呆抑。 她就那樣靜靜地躺著,像睡著了一般汁展。 火紅的嫁衣襯著肌膚如雪鹊碍。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天食绿,我揣著相機(jī)與錄音侈咕,去河邊找鬼。 笑死器紧,一個(gè)胖子當(dāng)著我的面吹牛耀销,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播品洛,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼树姨,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了桥状?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤硝清,失蹤者是張志新(化名)和其女友劉穎辅斟,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體芦拿,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡士飒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蔗崎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片酵幕。...
    茶點(diǎn)故事閱讀 39,779評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖缓苛,靈堂內(nèi)的尸體忽然破棺而出芳撒,到底是詐尸還是另有隱情,我是刑警寧澤未桥,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布笔刹,位于F島的核電站,受9級特大地震影響冬耿,放射性物質(zhì)發(fā)生泄漏舌菜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一亦镶、第九天 我趴在偏房一處隱蔽的房頂上張望日月。 院中可真熱鬧袱瓮,春花似錦、人聲如沸爱咬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽台颠。三九已至褐望,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間串前,已是汗流浹背瘫里。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留荡碾,地道東北人谨读。 一個(gè)月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像坛吁,于是被迫代替她去往敵國和親劳殖。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容