何曉亮,賈 亮,秦文健
(1.沈陽(yáng)航空航天大學(xué) 電子信息工程學(xué)院,遼寧 沈陽(yáng) 110136;2.中國(guó)科學(xué)院深圳先進(jìn)技術(shù)研究院 醫(yī)療機(jī)器人與微創(chuàng)手術(shù)中心,廣東 深圳 581055)
在舞蹈機(jī)器人中,要求機(jī)器人能夠根據(jù)音樂表達(dá)出來的不同情感選擇不同風(fēng)格的舞蹈,能夠跟隨音樂的旋律、節(jié)奏、和鼓點(diǎn)等信息做出快速準(zhǔn)確的舞蹈動(dòng)作,這就要求對(duì)音樂信號(hào)的特征參數(shù)進(jìn)行快速有效解析。音樂信號(hào)的特征參數(shù)可以分為3個(gè)層次,即音樂信號(hào)的基本特征、復(fù)雜特征和整體特征。音樂信號(hào)的基本特征參數(shù)包括音樂的音強(qiáng)、音長(zhǎng)和音高等;復(fù)雜特征參數(shù)包括音樂的旋律、節(jié)奏和節(jié)拍等信息;整體特征參數(shù)包括音樂表達(dá)出來的情感等信息。在提取了音樂信號(hào)基本特征參數(shù)的基礎(chǔ)之上,分析和提取音樂信號(hào)的復(fù)雜特征參數(shù),進(jìn)而分析和提取音樂信號(hào)的整體特征。音樂信號(hào)的音高作為音樂信號(hào)的基本特征參數(shù),決定了音樂信號(hào)的旋律變化。而音樂音符的音高與音樂信號(hào)的基音頻率是一一對(duì)應(yīng)的關(guān)系,因此,音樂的基音頻率是音樂信號(hào)特征參數(shù)識(shí)別中及其重要的參數(shù)之一。音樂信號(hào)的基音頻率提取的質(zhì)量對(duì)音樂的音高、節(jié)奏、旋律和情感等特征參數(shù)的提取具有重要的意義,將會(huì)直接影響到音樂信號(hào)特征參數(shù)提取的效果。作為音樂識(shí)別領(lǐng)域內(nèi)重要的研究?jī)?nèi)容之一,目前常用的音樂信號(hào)基音頻率的提取方法主要有自相關(guān)函數(shù)法(ACF)[1]、平均幅度差函數(shù)法(AMDF)[2]、倒譜法(CEP)和小波變換法[3]等,而單純的利用自相關(guān)函數(shù)法或者平均幅度差函數(shù)法等一般都會(huì)產(chǎn)生一定的基音檢測(cè)錯(cuò)誤,采用自相關(guān)函數(shù)法提取音樂信號(hào)的基因頻率,需要識(shí)別出自相關(guān)函數(shù)的峰值及峰值的位置,但是在自相關(guān)函數(shù)中,高次諧波的峰值可能會(huì)大于真實(shí)的基因頻率對(duì)應(yīng)的峰值,這樣提取出來的峰值是錯(cuò)誤的,會(huì)造成音樂信號(hào)基音頻率提取錯(cuò)誤,同時(shí),自相關(guān)函數(shù)的計(jì)算需要計(jì)算大量的乘法運(yùn)算,計(jì)算量較大,會(huì)影響到音樂信號(hào)基音頻率提取的實(shí)時(shí)性;而采用平均幅度差函數(shù)法,雖然其運(yùn)算復(fù)雜度較小,并且其在信號(hào)基音周期處的谷點(diǎn)也比較尖銳,有利于提高基音頻率提取的精度,但是平均幅度差函數(shù)法對(duì)音樂信號(hào)幅度的快速變化非常敏感,也會(huì)影響基音頻率提取的精度。近年來相關(guān)文獻(xiàn)中提出了很多改進(jìn)的基音頻率的提取方法,文獻(xiàn)[4]中提出對(duì)語(yǔ)音信號(hào)進(jìn)行3層小波分解,并用小波系數(shù)加權(quán)法和互相關(guān)函數(shù)結(jié)合的方法提取語(yǔ)音的基音周期,取得了較好的效果;文獻(xiàn)[5-7]中提出在頻域和對(duì)數(shù)域中對(duì)音樂信號(hào)進(jìn)行自相關(guān)處理的方法,可以較好地提取信號(hào)的基音頻率;文獻(xiàn)[8]中,提出了一種基于智能神經(jīng)網(wǎng)絡(luò)(Neural Network System)的基因頻率提取方法,這種方法的提出相對(duì)于傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)基因頻率提取的方法,能夠?qū)崿F(xiàn)對(duì)基音頻率的有效提取,但是計(jì)算量較大實(shí)時(shí)性不強(qiáng)。
因此,筆者提出了一種基于自相關(guān)函數(shù)法的音樂信號(hào)基音頻率提取的方法,即首先對(duì)音樂信號(hào)進(jìn)行預(yù)處理,確定采樣率以及幀長(zhǎng)和幀移,消除工頻干擾等噪聲干擾,再對(duì)音樂信號(hào)進(jìn)行切比雪夫?yàn)V波進(jìn)一步消除噪聲干擾,利用三電平中心削波[3]對(duì)音樂信號(hào)進(jìn)行處理以減少自相關(guān)函數(shù)的計(jì)算量,進(jìn)而利用兩次計(jì)算音樂信號(hào)的自相關(guān)函數(shù)提取音樂的基音周期,從而提取音樂信號(hào)的基音頻率。這種方法計(jì)算量小、提取速度快,提取準(zhǔn)確,對(duì)音樂基音頻率的提取效果較好,可以滿足舞蹈機(jī)器人對(duì)音樂特征參數(shù)提取速度實(shí)時(shí)性的要求。
基音頻率提取的流程圖如圖1所示。
圖1 基音頻率提取的流程圖Fig.1 Flow chart of pitch detection
音頻信號(hào)的預(yù)處理一般包括預(yù)濾波、加窗分幀等。預(yù)濾波的目的是:1)抑制輸入信號(hào)各頻率分量中頻率超過fs/2的所有分量(fs為采樣頻率),以防止混疊干擾;2)抑制50 Hz的電源干擾。預(yù)濾波處理相當(dāng)于使用一個(gè)帶通濾波器對(duì)信號(hào)進(jìn)行處理。
進(jìn)行數(shù)字預(yù)濾波之后要對(duì)音樂信號(hào)進(jìn)行加窗分幀處理,分幀就是將音樂信號(hào)截取為短時(shí)段,便于利用穩(wěn)態(tài)信號(hào)的計(jì)算方法進(jìn)行計(jì)算,每一幀的長(zhǎng)度一般取30~50 ms,為了使信號(hào)的幀與幀之間實(shí)現(xiàn)平滑過渡,保持其連續(xù)性,幀和幀之間要有所交疊,交疊的部分叫做幀移。幀移的長(zhǎng)度一般為信號(hào)幀長(zhǎng)的1/3~1/2,分幀的具體方法是利用一定長(zhǎng)度的窗 函數(shù) ω(n)去乘以信號(hào) x(n),從而截取出一幀信號(hào) sω(n)= ω(n)×s(n)。 常用的窗函數(shù)有矩形窗、海明窗和漢明窗等,本文采用矩形窗,窗長(zhǎng)取值為30 ms,幀移為15 ms。矩形窗表達(dá)式如公式(1):
切比雪夫?yàn)V波器在語(yǔ)音分析、圖像信號(hào)處理以及醫(yī)學(xué)診斷等領(lǐng)域有著廣泛的應(yīng)用。切比雪夫?yàn)V波器可以從復(fù)雜的信號(hào)中提取出所需要的信號(hào),抑制干擾信號(hào)。音樂信號(hào)中含有各種噪聲和干擾,常用的濾波算法有滑動(dòng)平均值法、算術(shù)平均值法、防脈沖干擾平均值法等,這些算法可以消除由于偶然激勵(lì)引起的脈沖干擾,但是它們對(duì)于環(huán)境噪聲以及電源的工頻干擾效果較差。切比雪夫?yàn)V波器是在通帶或阻帶上頻率響應(yīng)幅度等波紋波動(dòng)的濾波器,在過渡帶上衰減快,和理想濾波器的頻率響應(yīng)曲線之間的誤差最小,該濾波器在通帶和阻帶的誤差均勻分布,因此其頻率響應(yīng)顯示出等波紋性,階次可以比較低。因此,切比雪夫等波紋逼近濾波器可以有效地濾除語(yǔ)音信號(hào)的噪聲。切比雪夫?yàn)V波器的振幅平方函數(shù)為:
式中Ωc為通帶截止頻率,ε為與通帶波紋有關(guān)的參量,為N階切比雪夫多項(xiàng)式,定義如公式(3):
檢測(cè)音樂信號(hào)的自相關(guān)函數(shù)峰值的位置就可以提取出信號(hào)的基音周期,進(jìn)而計(jì)算音樂信號(hào)的基音頻率[3]。但是由于自相關(guān)函數(shù)有許多峰值,而檢測(cè)到的峰值可能會(huì)偏離其真實(shí)位置,造成誤檢,同時(shí)由于自相關(guān)函數(shù)的計(jì)算中有大量的乘法運(yùn)算,因此首先對(duì)信號(hào)進(jìn)行“三電平中心削波”處理,其削波函數(shù)為:
式中,x(n)為輸入信號(hào),y(n)為三電平中心削波的輸出信號(hào),CL為削波電平,它是音樂信號(hào)段內(nèi)最大幅度值的一個(gè)百分比分?jǐn)?shù)。音樂信號(hào)的基音信息大量存在于信號(hào)的高幅部分,削波不會(huì)影響信號(hào)基音頻率的提取。削波后的信號(hào)值只有-1,0,1這3種情況,因而不需要做大量復(fù)雜的乘法運(yùn)算,保證了音頻信號(hào)處理的實(shí)時(shí)性和高效性。中心削波器如圖2所示。
圖2 信號(hào)削波處理Fig.2 Processing of clipping the signal
一般認(rèn)為音頻信號(hào)在短時(shí)內(nèi)是平穩(wěn)的,具有周期性,因此信號(hào)的自相關(guān)函數(shù)也具有周期性。信號(hào)的自相關(guān)函數(shù)會(huì)在周期的整數(shù)倍上出現(xiàn)峰值,檢測(cè)出峰值的位置就可以提取信號(hào)的基音周期,進(jìn)而計(jì)算信號(hào)的基音頻率。信號(hào)的自相關(guān)函數(shù)定義式如下:
其中,N為采樣點(diǎn)總數(shù),Sn(m)為經(jīng)過預(yù)處理短時(shí)加窗后的音頻信號(hào),RN(k)為 Sn(m)的自相關(guān)函數(shù),且為偶函數(shù),k 的取值范圍為(-N+1)~(N-1)。
當(dāng)RN(k)為最大值時(shí)的位置就是基音周期,雖然經(jīng)過一次三電平中心削波處理,但是還有可能存在諧波峰值的干擾,當(dāng)RN(k)取得最大值時(shí)的k值有可能是高次諧波的周期,這樣就會(huì)將諧波頻率誤認(rèn)為基音頻率,導(dǎo)致對(duì)音樂信號(hào)基因周期的錯(cuò)誤識(shí)別。為了進(jìn)一步消除高次諧波的對(duì)自相關(guān)峰值提取的干擾,對(duì)第一次自相關(guān)輸出再進(jìn)行一次三電平削波處理,并再次計(jì)算其自相關(guān)函數(shù)RN(K)′,因?yàn)樵诙虝r(shí)內(nèi)音頻信號(hào)具有周期性,RN(k)的周期與信號(hào)的基音周期相同,而RN(K)′是 RN(k)的自相關(guān)函數(shù),因此,RN(k′)′與音樂信號(hào)的基音周期也相同。所以,只要找到RN(k′)′最大值時(shí)的位置,就可以更準(zhǔn)確地提取出信號(hào)的基音周期。信號(hào)的基音頻率可以由信號(hào)的采樣頻率和信號(hào)自相關(guān)函數(shù)峰值的位置計(jì)算得出。
實(shí)驗(yàn)通過matlab編程實(shí)現(xiàn)音樂信號(hào)讀取和分析處理。首先采用帶通濾波器對(duì)音樂信號(hào)中的80 Hz~3 400 Hz頻率段提取,然后采用本文提取的方法進(jìn)行實(shí)驗(yàn)分析驗(yàn)證。
圖3給出了切比雪夫?yàn)V波器對(duì)含有噪聲的音樂信號(hào)進(jìn)行濾波前后的波形結(jié)果比較分析,噪聲信號(hào)添加的是高斯白噪聲,從結(jié)果中清晰看到切比雪夫?yàn)V波器可以有效地濾除噪聲信號(hào)。
圖3 切比雪夫?yàn)V波器對(duì)信號(hào)濾波Fig.3 Chebyshev filter for signal filtering
對(duì)算法的穩(wěn)定性進(jìn)行的驗(yàn)證,并做了詳細(xì)比較,利用中值平滑處理算法消除基音周期的“野點(diǎn)”,并通過采樣頻率和信號(hào)自相關(guān)函數(shù)峰值的位置來計(jì)算基音的周期,圖4的峰值即為此段信號(hào)的計(jì)算得到基音周期,峰值的大小范圍為2.5~9.8 ms,所以此段內(nèi)音樂信號(hào)的基音頻率范圍為102~400 Hz,從圖4(c)誤差分析結(jié)果中可以看到本文提出的算法對(duì)噪聲有很好的抑制作用,并沒有因?yàn)樵肼暤挠绊懀玫浇Y(jié)果偏差,最大誤差絕對(duì)值控制在0.6以內(nèi)。
圖4 計(jì)算基音周期Fig.4 Calculated pitch period
本文對(duì)音樂信號(hào)基音頻率的提取采用自相關(guān)函數(shù)法,利用切比雪夫?yàn)V波器濾除環(huán)境噪聲得到較為純凈的音樂信號(hào),采用三電平中心削波法減少自相關(guān)處理計(jì)算量,提高了檢測(cè)的實(shí)時(shí)性,兩次三電平中心削波和自相關(guān)處理可以有效地抑制高次諧波的干擾。并測(cè)試該算法對(duì)噪聲的抑制作用,實(shí)驗(yàn)結(jié)果證明本文提出的方法可以準(zhǔn)確、穩(wěn)定的提取音樂基音頻率。
[1]Rabiner L R,Cheng M J,Rosenberg A E,et al.A comparative performance study of several pitch detection algorithms[J].IEEE Trans on Acoustics,Speech,and Signal Processing,1976,24(5):399-418.
[2]Rossm J,Shaffer H L,Cohen A,et al.Average magnitude difference function pitch extractor[J].IEEE Trans on Acous-tics,Speech,and Signal Processing,1974,22(5):353-362.
[3]趙力.語(yǔ)音信號(hào)處理[M].北京:機(jī)械工業(yè)出版社,2003:38-40.
[4]LI Ru-wei,BAO Chang-chun,DOU Hui-jing.Pitch detection method for noisy speed signals based on pre-filter and weghted wavelet conefficiens[C]//Proc.of the 9th International Conference on SignalProcessing:Beijing,China: [s.n.],2008:530-533.
[5]Kunieda N.Pitch extraction by using autocorrelation function on the log spectrum[J].Electronics and Communications in Japan Part Iii-Fundamental Electronic Science,2000 (83):90-98.
[6]Wang Y.A new pitch detection algorithm based on RCAF[J].2009 WRI World Congress on Computer Science and Information Engineering,2009:126-130.
[7]Heckmann M,Joublin F.Pitch extraction in Human-Robot interaction[C]//Intelligent Robots and Systems (IROS),2010 IEEE/RSJ International Conference on.Taipei,China:[s.n.]2010:1482-1487.
[8]Li M Y,Li T.Pitch recognition based on intelligent neural network system[J].2004 International Conference on Communication,Circuits,and Systems,2004,1(2):1081-1085.