張皓斐,張皓博
(1.青島理工大學(xué)信息與控制工程學(xué)院,山東青島 266525;2.齊魯工業(yè)大學(xué) 電氣工程與自動(dòng)化學(xué)院,山東濟(jì)南 250353)
隨著音頻處理和語(yǔ)音識(shí)別技術(shù)的發(fā)展,樂音識(shí)別技術(shù)在音樂領(lǐng)域展現(xiàn)出了重要的實(shí)用價(jià)值。
從頻域角度講,單一的樂音音符是典型的平穩(wěn)定常復(fù)合信號(hào),它是由基頻和泛頻共同構(gòu)成的,而樂音識(shí)別的核心任務(wù)就是識(shí)別樂音的基頻,以此來(lái)確定樂音的音高[1]?;l檢測(cè)的方法主要有離散小波變換(Discrete Wavelet Transform,DWT)結(jié)合快速傅里葉變換(Fast Fourier Transform,F(xiàn)FT)[2]、倒譜分析法[3]、自相關(guān)函數(shù)[4]以及線性預(yù)測(cè)系數(shù)(Linear Prediction Coefficient,LPC)等,這些方法均可在低噪背景下較為精確地識(shí)別信號(hào)基頻。但由于樂音音域?qū)拸V的特點(diǎn)以及加性環(huán)境噪聲的干擾,以上所提方法的魯棒性并不理想。為此,設(shè)計(jì)了一套采用卡爾曼濾波器(Kalman filter)結(jié)合小波閾值法去噪,進(jìn)而通過自相關(guān)函數(shù)提取基頻的算法,并將其與DWT 結(jié)合FFT 的基頻檢測(cè)算法進(jìn)行了深入比較。此外,使用了語(yǔ)音質(zhì)量感知評(píng)估(Perceptual Evaluation of Speech Quality,PESQ)以驗(yàn)證全頻域段內(nèi)音頻質(zhì)量的增強(qiáng)效果以及樂音基頻檢測(cè)算法的可行性。
十二平均律是規(guī)范兩音符相對(duì)音高的定律方法,將一個(gè)純八度音程即倍頻程平均分為十二等份的半音音階[5],故兩相鄰樂音音階的頻率之比為:
現(xiàn)代調(diào)音標(biāo)準(zhǔn)規(guī)定a1的頻率為440 Hz,則c1(中央C)的頻率約為261.626 Hz。在低、中、高3 個(gè)音區(qū)各自抽取一個(gè)音組,并以其為例,通過十二平均律可推得這3 個(gè)音組共36 個(gè)音符所對(duì)應(yīng)基頻如表1所示。
表1 各音組的音符和基頻對(duì)應(yīng)表
自適應(yīng)卡爾曼濾波是在受環(huán)境噪聲干擾下的最優(yōu)化最小均方誤差遞推估計(jì)算法[6],因此對(duì)含噪信號(hào)的處理是卡爾曼濾波非常適用的對(duì)象。
考慮純凈音頻信號(hào):
將該式假設(shè)為一全極點(diǎn)線性系統(tǒng)的輸出信號(hào),則p階的AR 模型形式為:
其中,ai(k),i=1,…,p為AR 模型的系數(shù),w(k)是方差為的系統(tǒng)過程白噪聲向量,p為階次。
考慮受外部白噪聲干擾的含噪音頻信號(hào):
其中,v(k)是方差為的觀測(cè)過程白噪聲向量。
將上述模型表示為狀態(tài)空間的表達(dá)形式:
在被公式表述的狀態(tài)空間表達(dá)形式里,X(k)和y(k)分別是狀態(tài)和觀測(cè)向量,A為在該時(shí)刻系統(tǒng)的狀態(tài)轉(zhuǎn)移矩陣,H為在該系統(tǒng)的觀測(cè)矩陣,G為H的轉(zhuǎn)置矩陣。
當(dāng)被觀測(cè)系統(tǒng)的參數(shù)確定時(shí),可推得該系統(tǒng)的最優(yōu)狀態(tài)估計(jì)五大基本公式:
在卡爾曼濾波算法執(zhí)行之前需要初始化其參數(shù),主要有系統(tǒng)模型的系數(shù)、系統(tǒng)白噪聲方差Q、觀測(cè)白噪聲方差R和誤差協(xié)方差矩陣P。
因?yàn)樵撓到y(tǒng)狀態(tài)方程中的系數(shù)A(k)是一個(gè)動(dòng)態(tài)參數(shù),因此需要對(duì)和Q進(jìn)行迭代計(jì)算,故可暫時(shí)初始化為含噪音頻的及Q。具體計(jì)算流程為:對(duì)每一幀含噪音頻信號(hào),首先使用LPC 算法直接計(jì)算以及Q,然后在卡爾曼濾波模塊中代入該參數(shù)以對(duì)含噪音頻進(jìn)行處理,如此反復(fù)迭代多次以更新和Q,直到音頻模型中的殘差項(xiàng)位于較為合適的閾值范圍內(nèi)為止。
在初始化R時(shí),可以假定信號(hào)開端只含有噪聲信號(hào),而無(wú)有效的樂音時(shí)段,從而可對(duì)音頻信號(hào)開端的噪聲信號(hào)求方差得到R,作為噪聲的統(tǒng)計(jì)先驗(yàn)知識(shí),而P在取初值時(shí)可以與R等同。
在小波分析中,小波變換易于在時(shí)間和頻率層次上進(jìn)行信號(hào)的多分辨定位分析[7]。多分辨分析是將f(t)∈L2(R)在不同頻帶中逐級(jí)分解的過程。
設(shè)Wj和Vj分別為多分辨分解中的小波空間和尺度空間,則Wj為Vj在Vj-1中的正交補(bǔ)空間:
則通過正交小波函數(shù)可將任意f(t)∈V0分解為小波細(xì)節(jié)W1和小波逼近V1,再對(duì)V1進(jìn)一步分解,從而實(shí)現(xiàn)對(duì)f(t)的多分辨分解,即:
將f(t)∈L2(R)按照空間組合展開,可得:
其中,ψ(t)稱為小波函數(shù),φ(t)稱為尺度函數(shù),稱為尺度為j的小波系數(shù),稱為尺度為j的尺度系數(shù)。
在工程實(shí)際中通常使用Mallat 算法來(lái)進(jìn)行小波分析,圖1 所示為小波三層Mallat 分解結(jié)構(gòu)。其設(shè)計(jì)思路可簡(jiǎn)要概述為信號(hào)受一系列分解帶通濾波器組濾波并得到若干帶通分量的過程[8]。
圖1 小波三層Mallat分解結(jié)構(gòu)圖
在一般情況下,對(duì)信號(hào)的小波閾值量化處理有如下幾個(gè)基本步驟[9-11]:
1)選定一個(gè)正交小波基,并對(duì)含噪信號(hào)f(t)進(jìn)行N層小波分解;
2)對(duì)含噪信號(hào)各層的高頻系數(shù)通過閾值函數(shù)量化處理,第N層低頻系數(shù)不作處理;
3)重構(gòu)各層小波系數(shù)以獲得去噪信號(hào)。
音頻去噪工作成功與否主要在于小波基和分解層數(shù)的選擇、閾值函數(shù)的選擇及閾值的確定。
1)小波基和分解層數(shù)的選擇
緊支集正交小波系Symlet 具有良好的正則性和對(duì)稱性,能夠減少對(duì)信號(hào)造成的相位失真現(xiàn)象,故經(jīng)綜合考慮,將sym6 小波基進(jìn)行4 層分解,以降低分解層數(shù)N和小波基及其階數(shù)對(duì)運(yùn)算速度的影響。
2)閾值函數(shù)的選擇
由于經(jīng)卡爾曼濾波后的音頻信號(hào)噪聲含量較少,軟閾值處理后的損害程度相對(duì)較小,故經(jīng)綜合考慮,選擇軟閾值函數(shù)進(jìn)行去噪處理。
3)閾值的確定
圖2 為4 種常用閾值估計(jì)方法的實(shí)際去噪效果,為確保重構(gòu)信號(hào)具有較高的逼近性,選用無(wú)偏似然估計(jì)閾值法。
圖2 4種閾值估計(jì)的去噪效果
自相關(guān)函數(shù)法是一種具有良好抗干擾能力的時(shí)域估計(jì)算法,其運(yùn)算量較少,常用于基頻檢測(cè)[12]。
將去噪后的樂音信號(hào)記為s(n),對(duì)每一幀信號(hào)利用短時(shí)自相關(guān)函數(shù)的公式[13-14]進(jìn)行運(yùn)算:
其中,N為每幀信號(hào)的長(zhǎng)度,k為時(shí)延,i表示第i幀,n為第i幀內(nèi)的樣點(diǎn)。
自相關(guān)函數(shù)在基音周期整數(shù)倍處取得峰值,對(duì)其第一極大值點(diǎn)進(jìn)行搜尋并將其作為基音頻率點(diǎn)就可以提取信號(hào)的基音頻率[12,15]。
在對(duì)信號(hào)加窗分幀處理時(shí)通常采用矩形窗,且窗長(zhǎng)至少要大于兩個(gè)基音周期,依照十二平均律,最低音階對(duì)應(yīng)頻率為27.5 Hz,即36.4 ms,所以合適的窗長(zhǎng)為80 ms,幀移比例為1。圖3 為經(jīng)濾波去噪前后信號(hào)的自相關(guān)函數(shù)圖像,可知去噪后顯著提高曲線的平滑性,能夠更加精確地檢測(cè)其基音頻率。
圖3 濾波去噪處理前后信號(hào)的自相關(guān)函數(shù)
綜上所述,樂音基頻檢測(cè)算法可用流程圖如圖4表示。
圖4 算法流程圖
基頻檢測(cè)流程可用如下幾個(gè)步驟表述:
1)加窗分幀樂音信號(hào),并初始化濾波參數(shù);
2)對(duì)每一幀信號(hào)運(yùn)用LPC 迭代更新濾波參數(shù)法進(jìn)行自適應(yīng)卡爾曼濾波,濾除大部分噪聲;
3)選用sym6 小波基進(jìn)行4 層正交小波分解;
4)根據(jù)第一層小波系數(shù)進(jìn)行噪聲標(biāo)準(zhǔn)差估計(jì),各層的高頻系數(shù)均采用軟閾值函數(shù)和無(wú)偏似然估計(jì)法調(diào)整閾值以進(jìn)行閾值量化處理;
5)利用小波重構(gòu)算法重構(gòu)信號(hào),對(duì)各幀信號(hào)進(jìn)行自相關(guān)運(yùn)算,通過檢測(cè)峰值的方法提取基音頻率。
實(shí)驗(yàn)所用純凈樂音樣本為16 kHz 采樣率的虛擬三角鋼琴軟音源。以中央C 音階為例,在純凈信號(hào)中加入白噪聲,設(shè)置信噪比為-5 dB,純凈信號(hào)與低信噪比含噪信號(hào)的波形如圖5 所示。
圖5 純凈信號(hào)與含噪信號(hào)的波形
分別用重構(gòu)DWT 低通分量的方式和卡爾曼濾波結(jié)合小波變換閾值去噪方式對(duì)含噪樂音信號(hào)去噪處理,結(jié)果如圖6 所示。
圖6 兩種方式對(duì)信號(hào)去噪的效果
通過圖6 可以觀察到,重構(gòu)DWT 低通分量的方式在低信噪比下無(wú)法有效消除噪聲影響,而文中方法則克服了該缺點(diǎn),首先通過卡爾曼濾波能夠?yàn)V除全頻段大部分噪聲,然后對(duì)小波變換的各層高頻分量作閾值處理,而非簡(jiǎn)單地置零,在進(jìn)一步去除殘留噪聲的同時(shí)保留了高頻段的信號(hào)特征以減少失真。
為更加客觀地對(duì)處理后的音頻信號(hào)進(jìn)行質(zhì)量評(píng)估,選用PESQ 法并在-5 dB 信噪比下進(jìn)行評(píng)估,結(jié)果如表2 所示。其評(píng)估原始得分在-0.5 到4.5 之間[16],音頻質(zhì)量越高則分?jǐn)?shù)越高。
表2 低信噪比下PESQ評(píng)估對(duì)比
在對(duì)含噪樂音去噪處理后,分別用FFT 算法和自相關(guān)函數(shù)法對(duì)各自的去噪信號(hào)有效樂音段進(jìn)行基頻檢測(cè)對(duì)比實(shí)驗(yàn),檢測(cè)結(jié)果如圖7 所示。
圖7 兩種方式對(duì)基頻檢測(cè)的效果
由圖7 可知,卡爾曼濾波結(jié)合小波閾值去噪法有著較強(qiáng)的抗干擾能力,對(duì)噪聲的消除較為徹底,利用自相關(guān)函數(shù)對(duì)基頻檢測(cè)的軌跡更為穩(wěn)定和平滑。
為驗(yàn)證文中方法對(duì)基頻檢測(cè)的魯棒性,在低、中、高3 個(gè)音區(qū)中各自抽取一個(gè)音組,并在-5 dB 信噪比環(huán)境下計(jì)算出經(jīng)該方法與DWT 結(jié)合FFT 算法分別處理得到的有效基頻識(shí)別數(shù)據(jù)的平均識(shí)別誤差率,結(jié)果如表3 所示。據(jù)表可知,該方法在全頻域段內(nèi)的平均識(shí)別誤差率相比下降了0.89%,而由式(1)可得相鄰音階頻率的偏差率約為5.946%,在各音區(qū)內(nèi)均高于文中方法的平均識(shí)別誤差率,從而佐證了該方法在全頻域段內(nèi)的較高魯棒性。
表3 各音組的平均識(shí)別誤差率
為在較低信噪比環(huán)境下實(shí)現(xiàn)音頻信號(hào)的增強(qiáng)和樂音基頻的準(zhǔn)確檢測(cè),提出了一種利用自適應(yīng)卡爾曼濾波結(jié)合小波閾值降噪的自相關(guān)檢測(cè)方法。實(shí)驗(yàn)分析表明,與DWT 結(jié)合FFT 的基頻檢測(cè)算法相比,文中方法不僅能夠很好地抑制樂音中混雜的白噪聲,有效增強(qiáng)音頻信號(hào)的質(zhì)量,又能在全頻域段內(nèi)準(zhǔn)確檢測(cè)樂音的基音頻率,具有較高的魯棒性。