劉雨青,劉艷芳
?
基于時空域轉(zhuǎn)換的音頻信號分析與識別
劉雨青*,劉艷芳
(龍巖學院信息工程學院,福建省龍巖市 364000)
音頻信號的識別是實現(xiàn)計算機自動譜曲的基礎(chǔ),在音樂的創(chuàng)作中有很重要的實用價值。本文通過對采集的音頻信號進行時域分析和頻域分析,實現(xiàn)音頻信號端點檢測和音符識別。首先,運用短時能量和短時過零率兩個時域特征對音頻信號進行端點檢測和單音符分割;其次,通過頻域分析,運用小波分解和Gabor變換對分割出的單音信號進行時-頻轉(zhuǎn)換,去除泛音干擾分量,識別單音信號對應的基音頻率;最后,將識別出的基音頻率匹配到對應的樂音音符。實驗結(jié)果表明,該方法識別準確率較高,誤差較小。
音頻識別;單音分割;時頻轉(zhuǎn)換;短時能量;短時過零率;特征提取
隨著語音識別技術(shù)的發(fā)展及計算機在該領(lǐng)域的廣泛深入應用,許多音樂方面作曲人士希望能通過計算機來自動識別演奏的樂曲并快速便捷地完成樂譜創(chuàng)作。音頻信號的識別是實現(xiàn)計算機自動譜曲的基礎(chǔ),在音樂的創(chuàng)作中有很重要的實用價值。但目前這方面的研究比較少,很多局限在對樂音的音效處理和編輯等方面。而在音符錄入方面,一般是使用MIDI鍵盤通過簡單的映射來實現(xiàn)[1]。
樂音信號首先也是語音信號的一種,而就目前的語音研究來說,其技術(shù)相對成熟穩(wěn)定,已經(jīng)有很長的研究歷史,可以從中借鑒和參考[2-6]。1970年,Sundberg和Tjernlund開始進行樂音識別研究,1987年,Dannenberg研發(fā)了一種對音頻信號進行識別跟蹤的算法,但局限性析與識別的研究不多,徐國慶團隊[1,7-10]是國內(nèi)較早開始研究樂音識別的團隊,通過端點檢測和FFT變化能較有效地識別單音信號,本文也是在此基礎(chǔ)上進行研究。2007年,劉波[11]等人研究出一種語音識別技術(shù),使用短時能量和過零率分析進行語音信號端點檢測分析。2008年,劉偉[12]利用MATLAB和C語言混合編程,對音頻信號特征的提取進行精確度方面的完善。2012年,王婷[13]對音頻信號識別算法及交互方式等技術(shù)進行研究。
樂器發(fā)聲從物理學角度,可以建立其嚴格的數(shù)學方程,各種樂器的每個音符有其對應的頻率,構(gòu)成音符頻率表,這對音頻信號的分析和識別工作帶來了極大便利。本文從樂音的物理特性和音樂特性研究著手,通過對樂音信號進行時域分析和頻域分析,提出一套可行的樂音識別方法。首先,對一段連續(xù)的樂音信號進行歸一化處理和分幀;其次,利用樂音的時域特征短時能量和短時過零率來進行端點檢測,從而把單音符分割出來;再次,對檢測到的音符進行頻域分析,使用離散小波變換進行尺度分解,可以將單音符的有效頻率保留在基音頻率附近,去除泛音干擾分量;最后,使用Gabor變換,求得該音符的基音頻率,匹配音符頻率表從而實現(xiàn)音符識別。圖1為本文的音頻識別算法示意圖。
圖1 音頻識別算法示意圖
本文以鋼琴的樂音為研究對象,但研究的結(jié)論有普遍適用意義。因為每種樂器的音符都有固定的音符頻率,對于其他樂器所演奏的樂音,可以使用本文提出的端點檢測和音符識別算法來匹配音符頻率從而進行樂音識別。
鋼琴是一種鍵盤樂器,用鍵拉動琴槌以敲打琴弦,鋼琴的鍵盤分為上下兩排黑鍵和白鍵,有7組88鍵,通過按下琴鍵分別擊打鋼琴的88根鋼弦而振動發(fā)聲。鋼琴樂音由88個音符A2~c5構(gòu)成,基音音域范圍為27.50Hz(A2)~ 4186.00Hz(c5)。其中含7組完整的八度音 (c1~b4),另外在最低頻大字二組有3個音(A2、#A2、B2),最高頻小字五組有1個音C5。音調(diào)越低則頻率越低,音調(diào)越高則頻率越高。鋼琴每相鄰的兩個鍵的基音頻率比為2的1/12次方,約等于1.059463。
表1為鋼琴各音符所對應的基頻頻率表,一個音符對應一個基頻頻率,單位Hz。每個音符都有對應的基音頻率,其基音頻率決定了音符的音高[10],也是本文識別音符的依據(jù)。
表1 鋼琴音符頻率表(單位:Hz)
2.1 歸一化處理
計算機讀取音頻信號后,各采樣點對應的幅值有可能分布較廣,須將待處理信號轉(zhuǎn)換成一標準模式,以便于之后設(shè)置門限閾值,所以對各采樣點的幅度值進行歸一化處理,即將所有數(shù)據(jù)幅值限制在-1~l之間,歸一化的過程為:
(2)
其中,為第個采樣點對應的幅值,為歸一化后第個采樣點的幅值。
圖2(a)為采集到的樂音信號歸一化后得到的原始音頻信號圖像。
2.2 分幀
樂音信號是一種典型的非平穩(wěn)信號,不能用處理平穩(wěn)信號的信號處理技術(shù)對其進行分析處理。但它在短時間內(nèi)頻譜特性保持平穩(wěn),即具有短時平穩(wěn)特性。因此,在實際處理時可以將樂音信號分成很小的時間段,該段就稱之為“幀”,幀與幀的非重疊部分稱為幀移,幀移是為了防止兩幀間的不連續(xù),而將樂音信號分成若干幀的過程稱為分幀。分幀小可以清楚地描繪樂音信號的時變特征,但是計算量大;分幀大可以減少計算量,但容易丟失信號特征[7]。一般取幀長為10~30,幀移為幀長的1/2~1/3。在MATLAB環(huán)境中的分幀最常用的方法是使用MATLAB自帶的語音工具箱里的enframe函數(shù):enframe(),其中為樂音信號,為幀長,為幀移。在本文中幀長取294(即294個采樣點,約13.33),幀移取98(1/3幀長)。
設(shè)樂音波形時域信號為、分幀處理后得到第幀樂音信號為x(m),則x(m) 滿足下式:
其中,為一幀中的某個采樣點,為幀長,為幀移。
2.3 短時能量
樂音信號的能量隨時間變化較為明顯,幅值在信號處理中可以等價為信號的能量,短時能量即可理解為該采樣點幅值的平方[14]。一個音符,從開始到結(jié)束,其短時能量從高到低變化較快,可以由此來判斷音符的起點,劃分出端點,并且可以檢測出無聲段,無聲段的短時能量為0。
在計算之前,先將信號通過一個一階高通濾波器1-0.9375z-1進行預加重處理以慮除低頻,主要是濾除50Hz的工頻干擾[10]。
設(shè)第幀樂音信號x的短時能量用E表示,其計算公式如下[11]:
其中,為一幀中的某個采樣點,為幀長。
圖2(b)為實驗中一段音頻信號的短時能量值圖譜。
2.4 短時過零率
過零率可以反映信號的頻譜特性。當離散時間信號相鄰兩個樣點的正負號相異時,我們稱之為“過零”,即此時信號的時間波形穿過了零電平的橫軸。短時過零率就是表示一幀樂音中樂音信號波形穿過橫軸(零電平)的次數(shù)[14]。
設(shè)第幀音頻信號x的短時過零率用Z表示,其計算公式如下[11]:
式中,為一幀中的某個采樣點,為幀長,sgn[] 是符號函數(shù),即:
(6)
圖2(c)為實驗中一段音頻信號的短時過零率圖譜。
圖2 音頻信號圖譜
2.5 端點檢測和單音符分割
音頻信號可看成由三部分組成: 樂音段、中間段、靜音段。單音的能量在持續(xù)期內(nèi)呈一致振蕩衰減,短時能量和短時過零率呈一定的周期規(guī)律,而每個單音的短時能量按一定幅度遞減。通過實驗并且從圖2可看出,運用短時能量比運用短時過零率能更好的判定音符樂音段的起始位置。而單音符的靜音段起始位置可以由短時能量和短時過零率共同判斷。
在實驗中,參數(shù)設(shè)置如下:
令數(shù)組1存儲音符樂音段的起始位置,2存儲音符靜音段的起始位置,數(shù)組存儲各幀計算所得的短時能量,數(shù)組存儲各幀的短時過零率。設(shè)置狀態(tài)變量,狀態(tài)為0時代表靜音段,狀態(tài)為1時代表中間段,狀態(tài)為2時代表樂音段。設(shè)置短時能量高門限值1,用于判斷該幀是否處于樂音段,這里取短時能量最大值的1/4作為1。
對音頻信號進行逐幀順序檢測,流程為:令初始狀態(tài)為1,若該幀短時能量小于1且短時能量和短時過零率不為0,則該幀處于中間段,狀態(tài)標記為1,繼續(xù)檢測下一幀;若從第幀開始短時能量大于等于1,則認為該幀處于樂音段,狀態(tài)標記為2,記錄下,存入數(shù)組1中,繼續(xù)檢測下一幀;如果短時能量仍大于1,則仍處于樂音段,狀態(tài)標記為2,否則狀態(tài)標記為1,進入中間段;若從第幀開始短時能量或短時過零率等于0,則該幀處于靜音段,狀態(tài)標記為0,記錄下,存入數(shù)組2中,繼續(xù)檢測下一幀,所以如果下一幀的短時能量大于1,則進入樂音段,狀態(tài)標記為2,并將幀號存入數(shù)組1中,否則仍然保持在靜音段,狀態(tài)標記為0。圖3為端點檢測和音符分割的結(jié)果,其中有兩組線,一組表示樂音段開始點,即按照數(shù)組1來劃分,另一組表示靜音段開始點,按照數(shù)組2來劃分。圖4為端點檢測流程圖。
圖3 端點檢測和單音符分割結(jié)果
圖4 端點檢測流程圖
通過時域分析端點檢測確定了樂音端點的起、止位置后,就可以將采集到的音頻信號分割成一個個單音信號,并逐個對分割出的單音信號進行頻域分析,得到每個音符的基頻頻率、音符時值等數(shù)據(jù),從而識別出音名和音符性質(zhì),實現(xiàn)樂音識別。
3.1 信號分解
端點檢測劃分的單個音符包含基音和由基音的整數(shù)倍頻率構(gòu)成的泛音,其中基音占有大部分能量,而泛音能量較小。我們必須分解出音符中的基音頻率,對比鋼琴的音符頻率表,從而識別出對應音符?;羰怯上业恼駝铀纬傻穆暡ó斨械淖畹皖l率。離散小波變換在中、高頻分解頻率減小迅速,能夠很快地分解出基音所在的低頻帶。
當前,在小波分析的研究領(lǐng)域,通常采用多分辨分解和合成的金字塔算法,即Mallat算法。Mallat算法是隨著尺度的不斷加深,在各個尺度上可以由粗到細地觀察分解出的高低頻信號。其基本思想是[15]:對原始信號進行層分解,分解成一個分辨率為2的低頻信號和個高頻信號。
原始信號通過一母小波進行的分解叫一級分解,尺度=1,得到兩個分量,低頻分量和高頻分量。信號可進行多級分解[16]。如果對信號的高頻分量不再分解,而對低頻分量連續(xù)分解,就得到了小波分解的低頻分量。本文實驗采用Daubechies小波對信號進行分解,分解尺度每增加一級,低頻分量的帶寬就縮小兩倍,分解出的低頻分量和高頻分量長度相等。
圖5 4階小波分解樹
小波分解的尺度要適當選擇,如果分解尺度過小,則分解出的低通分量就會包含較多的倍頻分量,會造成基音頻率識別混亂;如果分解尺度過大,則會連基音頻率也濾掉。適當?shù)目刂菩〔ǖ屯ǚ纸獬叨?,就可以使低通分量只包含基音頻率分量[7]。本文通過實驗,選擇尺度=4較為適合。小波4級尺度分解即對原信號進行一級分解后,對分解出的低頻分量連續(xù)進行3次分解,那么最后得到的低頻系數(shù)即為我們要找的基音頻率分量。=4時的小波分解樹如圖5,有。
3.2 Gabor變換
Gabor變換是D. Gabor 1946年提出的。窗口傅里葉變換或短時傅里葉變換(以下統(tǒng)一簡稱為STFT)能夠完成局部分析的關(guān)鍵是“窗口”,窗口的尺度是局部性程度的表征[17]。當窗函數(shù)取為高斯窗時一般稱為Gabor變換。選高斯窗的原因在于:1)高斯函數(shù)的Fourier變換仍是高斯函數(shù),這使得Fourier逆變換也用窗函數(shù)局部化了,同時體現(xiàn)了頻率域的局部化;2)根據(jù)Heisenberg測不準原理,高斯函數(shù)窗口面積已達到測不準原理下界,是時域窗口面積達到最小的函數(shù),即Gabor變換是最優(yōu)的STFT。
離散Gabor變換的表達式如下[18]:
對小波分解出的各單音低頻信號進行Gabor變換,變換后得到頻域矢量。因為頻域矢量是一組復數(shù)數(shù)組,假設(shè)是第個復數(shù)的實部,是第個復數(shù)的虛部,對頻域矢量做取模運算,得各頻率分量幅值:
(8)
當取最大值時,對應的該點的頻率值即為所測單音符對應的基音頻率值。找到該單音符對應的基音頻率后,就可以對照鋼琴的音符頻率表(表1),識別出該音符。
計算每個音符的時值,通過時值可辨別音符性質(zhì),時值計算公式如下:
3.3 頻域分析結(jié)果
在音頻信號頻域處理階段,利用小波分解保留音頻的基音信號,分離出干擾的泛音信號,能最大程度的保留原始樂音信號的能量,再借助Gabor對基音信號進行頻域轉(zhuǎn)換,實現(xiàn)對基音頻率的準確檢測,從而識別出單音音符。
通過多次實驗,對上述提出的端點檢測方法和DWT&Gabor樂音音符識別方法進行實際驗證,實驗結(jié)果較為理想。以鋼琴曲《歡樂頌》為例,曲速96,即每分鐘演奏96個音符,該曲含63個音符,通過實驗,能有較好的識別效果,與實際樂譜比對,檢測到的音符均與其一一對應。如果錄制的曲子含有較大的噪聲,需先去噪,否則會影響實驗結(jié)果。圖6為63個音符中第3個音符和第4個音符的信號波幅頻譜圖,橫坐標為頻率,縱坐標為取摸運算后各頻率點對應的幅值,圖中直線即為檢測到的基音頻率點,同時可計算出該音符對應的時值,得出音符性質(zhì)。
圖6 信號波幅頻譜圖
表2是經(jīng)過端點檢測和音符識別實驗所得到的《歡樂頌》前1-20個音符的頻率、時值統(tǒng)計表。其中頻率的單位為Hz,時值的單位為頻率誤差=(測得頻率-標準頻率)/標準頻率*100,誤差為正數(shù),則表示測得數(shù)據(jù)大于標準數(shù)據(jù),誤差為負數(shù),則表示測得數(shù)據(jù)小于標準數(shù)據(jù)。時值項,其實際的含義是決定樂音的延時,用來區(qū)分是全音符、二分音符、四分音符等,例如:四分音符的標準時值是625,八分音符的時值是937.5。
通過多組樂曲檢測,所測得的音名與樂譜標準音名一一對應,且測得頻率和標準頻率誤差在0.5%以內(nèi),具有較高的準確度。測得的音符性質(zhì)與樂譜標準音符性質(zhì)也全部一一對應,但測得時值與標準時值有時在遇到休止符、附點音符、連音符時會出現(xiàn)誤差較大的情況,分析原因可能有以下兩種:(1)單音持續(xù)時間短,時值以為單位,彈奏時難免會有時間上的誤差,彈奏者在音符的停頓上沒控制好,這種情況造成的時值誤差可正可負。(2)端點檢測靜音段的短時能量或短時過零率不一定為0,不為0的原因可能是由于該段含噪聲造成的,造成靜音開始點檢測滯后,這種情況下造成的時值誤差一定為正。雖然有誤差,但檢測出的各單音對應的音名、音符性質(zhì)與標準的音名、音符性質(zhì)完全相同,音頻信號識別的目的已達到,識別效果較為理想。總體來說,通過進行多次實驗比對,運用本文提到的樂音識別方法進行檢測,得到的實驗結(jié)果較為理想,所檢測到的音名和音符性質(zhì)均與樂譜標準音名和音符性質(zhì)相對應。
表2 音符頻率、時值統(tǒng)計表
本文通過對樂音進行時域分析和頻域分析,對樂音識別開始了初步探索,初始目標樂音識別基本實現(xiàn)。利用樂音的時域特征:短時能量和短時過零率,通過設(shè)定閾值的方式來進行端點檢測,從而把單音符分割出來。對于檢測到的音符,使用離散小波變換進行尺度分解,可以將樂音有效頻率成分保留在基音頻率附近,不含高頻泛音分量,再使用Gabor變換,求得該音符的基音頻率。
本文的選題從作曲人士的實際需求出發(fā),實驗誤差較小,取得了比較好的檢測效果。但目前該方法僅對單聲部旋律有較好的識別效果,對于復雜的和弦樂音,該方法還無法檢測出端點,需要再進一步研究分割和弦的算法,這成為下一步要解決的主要目標。
[1] 徐國慶, 張彥鐸, 王海暉. 樂音旋律識別研究[J]. 武漢: 武漢工程大學學報, 2007(2): 60-67.
[2] Wang K C. Time-Frequency feature representation using multi-resolution texture analysis and acoustic activity detector for real-life speech emotion recognition [J]. Sensors, 2015, 15(1): 1458- 1478.
[3] ATTABI Y, DUMOUCHEL P. Anchor models for emotion recognition from speech [J]. IEEE Transactions on Affective Computing, 2013, 4(3): 280-290.
[4] RAMAKRISHNAN S, EMARY I E. Speech emotion recognition approaches in human computer interaction [J]. Telecommunication Systems, 2013, 52(3): 1467-1478.
[5] Campbell J P. Speaker recognition: a tutorial [J]. Proceedings of the IEEE, 1997, 85(9): 1437-1462.
[6] Reynolds D A. An overview of automatic speaker recognition technology[C]. Proceedings of the 2002 IEEE International Conference on Acoustics, Speech and Signal Processing, 2002: 4072- 4075.
[7] 徐國慶, 楊丹. 小波變換與FFT聯(lián)合識別樂音[J]. 重慶: 重慶大學學報(自然科學版), 2005(12): 50-54.
[8] 徐國慶, 楊丹, 王彬潔. FRED和DWT在樂音音符識別中的應用[J]. 計算機工程與應用, 2005(18): 190-195.
[9] 徐國慶, 楊丹, 王彬潔. 樂音識別方法及應用[J]. 計算機應用, 2005(4): 968-972.
[10] 徐國慶. 樂音識別技術(shù)研究及應用[D]. 重慶: 重慶大學, 2005.
[11] 劉波, 聶明新, 向俊濤. 基于短時能量和過零率分析的語音端點檢測方法研究[J]. 中國科技論文, 2007: 1-5.
[12] 劉偉. 音樂音符識別的方法[D]. 吉林: 吉林大學, 2008.
[13] 王婷. 基于IOS平臺的樂音識別關(guān)鍵技術(shù)研究與設(shè)計[D]. 中國海洋大學, 2012.
[14] 趙力. 語音信號處理[M]. 機械工業(yè)出版社, 2009.
[15] Chien Jentzune, Wu Chinachen. Discriminant wavelet faces and nearest feature classifiers for face recognition [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2002, 24(12): 1644-1649.
[16] Zhao Minghua, Li Peng, Liu Zhifang.Face recognition based on wavelet transform weighted modular PCA[C]. Proceedings of IEEE Conference on Image and Signal Processing, 2008: 589-593.
[17] Chan C, Pang G K. Fabric defect detection by Fourier analysis [J]. IEEE Transactions on Industry Applications, 2000, 36(5), 1267-1276.
[18] Mak K L, Peng P, Yiu K F C. Fabric defect detection using multi-level tuned-matched Gabor filters [J]. Journal of Industrial and Management Optimization, 2012, 8(2): 325-341.
Analysis and Recognition of Audio Signal Based on Time-Frequency Transformation
LIU Yuqing*, LIU Yanfang
(Institute of Information Engineering, Longyan University, Longyan Fujian 364000, China)
The recognition of audio signal is the basis of automatic-composing music in computer, thus it has great application value in music creation. In this paper, the time-domain analysis and frequency-domain analysis are carried out for the collected audio signal to realized endpoint detection and notes recognition. Firstly, short-time energy and short-time zero-crossing rate are used in endpoint detection and single note segmentation; secondly, through frequency-domain analysis, the time-frequency transformation of the segmented single note is performed by wavelet decomposition and Gabor transformation. After removing the harmonic interference, the pitch frequency which is corresponding to the single tone is recognized; finally, those recognized pitch frequencies are matched to the music notes. The experimental results indicate that when this method is applied, the accuracy rate of the recognition is high while the error is small.
audio signal recognition; single note segmentation; time-frequency transformation; short-term energy; short-time zero crossing rate; feature extraction
1672-9129(2016)02-0041-06
TP391.42
A
2016-09-10;
2016-09-29。
國家自然科學基金面上項目(61379089),龍巖學院百名青年教師攀登項目(LQ2015031),龍巖學院協(xié)同創(chuàng)新項目(張凌)。
劉雨青(1990-),女,福建龍巖,龍巖學院教師,研究生,主要研究方向:信號處理、多媒體分析、數(shù)據(jù)挖掘;劉艷芳(1987-),女,河南省濮陽市,龍巖學院教師,研究生,主要研究方向:粗糙集與粒計算、人工智能和機器學習。
(*通信作者電子郵箱lyqfjnu@163.com)