国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于頻域分區(qū)的諧波峰值法的鋼琴音高識別

2023-06-25 13:08:32周琪芝劉思言
藝術(shù)大觀 2023年10期

周琪芝 劉思言

摘 要:針對鋼琴音域?qū)拸V、音色豐富的頻域,本文提出了一種基于頻域分區(qū)的諧波峰值法。在原本諧波峰值法的基礎(chǔ)上,對鋼琴音高信號基于頻域分區(qū)進行預(yù)處理。在幅度濾波和諧波濾波后,用FFT定位基頻音高。經(jīng)實驗和仿真,證明該方法針對鋼琴音高信號具有較低的誤差率。

關(guān)鍵詞:頻域分區(qū);諧波峰值法;鋼琴音高識別

中圖分類號:J624文獻標(biāo)識碼:A文章編號:2096-0905(2023)10-00-03

一、背景

鋼琴因其音域?qū)拸V、音色豐富、音質(zhì)清亮、表現(xiàn)力強等特點,素有“樂器之王”的美稱,常作為音樂創(chuàng)作和表演的樂器進行使用。鋼琴的音高識別可以幫助音樂演奏者對鋼琴進行校音和調(diào)音。不同于以往人耳識別音高,利用音頻處理技術(shù)的音高識別能夠做到識別更加精確。隨著與人工智能的結(jié)合,音高識別也成為眾多領(lǐng)域的研究熱點[1-2]。

對鋼琴的音高識別研究可以追溯到語音識別技術(shù),主要分為時域處理和頻域處理。時域處理法通過分析時域上信號波形的周期峰值,來識別該段信號的音高。這類方法包括短時自相關(guān)法[3-4]、短時平均幅度差(Average Magnitude difference function,AMDF)法[5-6]。但時域處理法更容易受到噪聲的影響,且經(jīng)常出現(xiàn)半頻或倍頻的錯誤。頻域檢測法將信號轉(zhuǎn)換到頻域上,再對波形特征進行提取檢測。目前使用廣泛的有諧波峰值法[7]、置信度法[8]。小波變換法屬于時頻域檢測法,它通過對高頻處時間細(xì)分,低頻處頻率細(xì)分,整合信號細(xì)節(jié),實現(xiàn)音高識別[9]。

本文針對鋼琴音高的頻域,采取一種優(yōu)化后的諧波峰值法實現(xiàn)了對鋼琴的音高識別。

二、音高識別的基本原理和常用方法

(一)音高和十二平均律

樂音體系中各音的絕對準(zhǔn)確高度及其相互關(guān)系,被稱為音律。目前國際上廣泛采用的是十二平均律。其將一個音階按照1/12倍頻程劃分,每八度音為一個倍頻程,一個八度音階被劃分為12個半度音階。

鋼琴是一種通過十二平均律進行定音的鍵盤樂器,包括52個白鍵和36個黑鍵,一共88個音鍵組成。鋼琴涉及的音域低至27.5Hz,高至4186Hz,音域廣泛,幾乎囊括了樂音體系中的全部音高。通過上述十二平均律的半音規(guī)則,可以計算鋼琴各個鍵名對應(yīng)的半音頻率。

(二)基波和諧波

根據(jù)振動形式的不同將音分為兩種不同的形式:純音和復(fù)音。復(fù)音可以分解為多個不同頻率和振幅的單音的疊加,其中頻率最低的音稱為基音,其頻率叫作基頻,其物理意義為本征頻率,是物體振動形成的聲波中的最低頻率。其他的音稱為泛音,其頻率叫作泛頻,其物理意義為諧振頻率,是基音頻率的整數(shù)倍。

鋼琴作為弦樂器,其音是弦周期性振動產(chǎn)生的復(fù)合音,產(chǎn)生的波是幾種正弦波的集合。其中振動周期最長的波被稱為基波,基波的頻率稱為基頻。弦在振動產(chǎn)生基波后,振動并不會立即停止。由于弦兩端固定,振動產(chǎn)生的波在傳輸過程中不斷地碰撞反射,從而產(chǎn)生的頻率是基波頻率整數(shù)倍的諧波。諧波使得音樂信號有了不同的音色,諧波成分不同,所聽到的音色也就不同,越是豐富的諧波能使得音樂更加飽滿,更加華麗。

基波和諧波共同組成了鋼琴的音樂信號。而在時域上,基波和多次的諧波疊加,形成更加復(fù)雜的波形。波形的復(fù)雜會使得分辨音高更為困難。而在頻域上,基波和諧波的頻率呈現(xiàn)倍率關(guān)系,更利于系統(tǒng)識別出音高。

綜上可知,鋼琴弦振動產(chǎn)生的基波發(fā)出基音。在我們的研究中,我們過濾掉諧波,只識別基波頻率,達到音高識別的目的。

(三)音頻處理技術(shù)

1.信號數(shù)字化處理

日常生活中我們所感知到的音樂信號都是模擬信號,而利用計算機等對音樂信號進行處理,需要將連續(xù)的模擬信號轉(zhuǎn)化為離散的數(shù)字信號。采樣頻率越高,模擬信號的失真也越小。對于音樂信號,采樣頻率通常是8-10kHz。本文對鋼琴信號采樣頻率選取的為44.1kHz。

對鋼琴信號進行實時檢測時,模擬信號是一個線性時變信號,但這個變化對于頻率來說是緩慢的。故我們假設(shè)在一個很短的時間內(nèi),信號是平穩(wěn)的。通常這個時間段取值為10-30ms。

在進行數(shù)字化處理時,便是針對模擬信號進行分幀加窗操作。分幀加窗操作是指,使用一個窗函數(shù)在采樣后的信號上滑動,將其分成若干個短時信號,這些信號可視為平穩(wěn)信號,每個短時信號為一幀,其長度為幀長,每一幀的長度為10-30ms。常用的窗函數(shù)有矩形窗、漢寧窗和漢明窗等。

矩形窗屬于時間變量的零次冪窗,具有主瓣集中,旁瓣較高,并且伴有負(fù)旁瓣的特點,容易帶入高頻干擾和泄露。

漢寧窗又被稱為升余弦窗。相較于矩形窗,漢寧窗加寬并降低了主瓣,減小了旁瓣,有效減少了泄露和波動現(xiàn)象。由于其主瓣加寬,導(dǎo)致頻率分辨率下降。

漢明窗和漢寧窗一樣都是余弦窗,又被稱為改進升余弦窗。漢明窗相較于漢寧窗,旁瓣更小,旁瓣衰減速度更慢。

2.時域分析

音樂信號的時域特征包括短時能量、短時過零率、短時自相關(guān)函數(shù)、短時幅度差函數(shù)等。

短時能量:描繪了信號在時間上的變化。通過短時能量能夠分辨噪聲段、環(huán)境背景音和樂音。

短時過零率:反映了每一幀內(nèi)信號過零的次數(shù)。因為鋼琴信號具有固定的基頻,其過零率通常分布在一個固定的范圍內(nèi),而噪聲則不滿足,所以過零率也可以用于區(qū)分噪聲和音樂。

短時自相關(guān)函數(shù):相關(guān)函數(shù)描述了兩個信號之間的相似程度,有互相關(guān)函數(shù)和自相關(guān)函數(shù)。離散信號的短時自相關(guān)函數(shù)具有與其相同的周期,其與自身的相關(guān)性最大。故而對于一個周期信號而言,它的短時自相關(guān)函數(shù)必定在周期的整數(shù)倍出現(xiàn)最大值,這為利用其提取信號的基頻提供了基礎(chǔ)。

短時幅度差函數(shù):它在提供與短時自相關(guān)函數(shù)相似的作用的參量的同時,減小了短時自相關(guān)函數(shù)由于乘法運算而帶來的計算量。與短時自相關(guān)函數(shù)一樣,短時幅度差函數(shù)也具有周期性,但不同的是,短時幅度差函數(shù)在信號周期的整數(shù)倍處出現(xiàn)的是谷值,而短時自相關(guān)函數(shù)在信號周期的整數(shù)倍處出現(xiàn)的是峰值。

3.頻域分析

除了在時域上,在頻域上音樂信號也有眾多特征,可以用于基音檢測。常用的方法有短時傅里葉變換。與傅里葉變換(Fourier Transform,F(xiàn)T)一樣,它們都是通過將感興趣的信號從時域轉(zhuǎn)換到頻域進行研究的方法。短時傅里葉變換的優(yōu)點是,可以處理近似平穩(wěn)的信號,應(yīng)用更廣。

三、優(yōu)化的諧波峰值法

(一)諧波峰值法

鋼琴發(fā)音為復(fù)合音,通過檢測基音頻率,就可以得到當(dāng)前演奏的音高。諧波峰值法正是通過將預(yù)處理后的信號進行快速傅里葉變換(Fast Fourier Transform,F(xiàn)FT),轉(zhuǎn)換到頻域。通過檢測頻域上最大峰值,峰值所在位置的最大公因子即為當(dāng)前的基音。這是由于通常音樂信號除了基音外,還有豐富的諧波。因此,不能簡單地將頻譜中的最大峰值作為基頻,而要提取峰值序列中的最大公因子?!昂钊』簟蓖ㄟ^計算其自身的置信度,從而得到真實的音高。

(二)基于頻域分區(qū)的諧波峰值法

在實際情況中,鋼琴演奏的音中,幅度最大的音并不一定是基音。在鋼琴的低音區(qū),諧波頻率的幅度往往大于基音頻率的幅度;中音區(qū)諧波頻率的幅度與基音頻率的幅度相當(dāng);高音區(qū)基音頻率的幅度大于諧波頻率的幅度。因此,我們采取了一種基于頻域分區(qū)的諧波峰值法。

1.頻域分區(qū)

鋼琴演奏的基音集中在25Hz到4300Hz之間。通過濾波器將超過范圍的諧波過濾,可以增加檢測到基音的準(zhǔn)確性。按照88個基音的頻率,我們將25-4300Hz的頻段分割成88個分區(qū),每個分區(qū)對應(yīng)一個基音?;谑骄?,我們可知,基音之間呈指數(shù)上漲的規(guī)律。于是我們將區(qū)域的上屆定為fup=f×1.029,下屆定為fdown=f/1.029。其中,為基音頻率。

2.設(shè)定閾值

在音高的實時檢測中,信號除基音和諧波外,還有很多我們不感興趣的信號頻率。在頻域圖中,除了基波頻率、諧波頻率之外,還有許多頻率點對應(yīng)的幅度不為零。為了不被冗余信號影響,減少由于噪聲等因素導(dǎo)致的其他頻率分量,在頻域分區(qū)的基礎(chǔ)上,設(shè)定一個閾值,將頻域幅度在閾值以下的頻率分量幅度都置為零。通過將頻域上每個頻率點對應(yīng)的幅度值都取四次方,閾值即等于四次方后最大值的三分之一。

3.濾除諧波

過濾后信號中的諧波分量依然會影響基音的檢測。通過提取諧波頻率中最大公因子的方法,可以實現(xiàn)過濾諧波。先提取出信號中幅度最高的音頻,然后計算與其成1/2、1/3、1/4等倍數(shù)關(guān)系的頻率,若這些頻率的幅度均為零,則此最高的音頻為基頻,并刪除其相應(yīng)的諧波分量;若這些頻率中有一個幅度不為零,則幅度不為零的頻率中,頻率最小的為基頻,原最高音頻為諧波分量。綜上即可檢測出基頻信號。

四、實驗與仿真

本文以44.1kHz的采樣率對鋼琴音進行實時采集。采用漢明窗對信號進行分幀,并經(jīng)過基于頻域分區(qū)濾波的預(yù)處理。在幅度濾波和諧波濾波后,通過檢測最大幅度值所對應(yīng)頻率,識別音高。

(一)信號預(yù)處理

通過將音樂信號進行分幀加窗,將原本的時變信號以一定的幀長,劃分為不同幀。在短時間范圍內(nèi),每一幀的信號的特性基本保持不變及相對穩(wěn)定,可以看作是一個準(zhǔn)穩(wěn)態(tài)過程,即信號具有短時平穩(wěn)性。此后,再對每一幀信號進行濾波和基音識別。

(二)信號濾波

鋼琴樂音信號集中在25Hz到4300Hz之間,超出這個范圍的信號,不在我們的識別范圍內(nèi)。所以在進行音名識別之前,我們調(diào)用頻域分區(qū)濾波器,對信號進行濾波。經(jīng)過頻域分區(qū)濾波后噪聲信號明顯減少,得到質(zhì)量改善后的音樂信號。

最后對處理過的信號進行閾值濾波。在實驗中,設(shè)定的閾值為每個頻率點對應(yīng)的幅度值四次方后最大值的三分之一。

(三)音名識別

圖1所示是對A4鍵名所對應(yīng)音名經(jīng)頻域分區(qū)濾波和閾值濾波后的時域波形和頻域圖。

在88個鍵名中,我們隨機選取了其中20個進行測試。測試得到的頻率檢測結(jié)果如表1所示。

由表1可知,基于頻域分區(qū)的諧波峰值法識別音高誤差率低,且音高頻率越高,識別誤差率越低。這是由于低頻信號段鍵名的頻率較為集中,諧波分量不易過濾完全;高頻信號段鍵名的頻率分布更稀疏,諧波分量更易過濾。

五、結(jié)束語

本文針對鋼琴的音頻頻域,提出了一種優(yōu)化的諧波峰值法。在原本的諧波峰值法的基礎(chǔ)上,采用了頻域分區(qū)對采集的音高信號進行濾波。在濾波基礎(chǔ)上,運用諧波峰值法對鋼琴音高進行識別。實驗與仿真結(jié)果顯示,該方法對音高識別誤差率低。

參考文獻:

[1]欒極,馬太,王飛,等.插值采樣增強鋼琴音高識別能力的方法[J].數(shù)字技術(shù)與應(yīng)用,2014(06):3.

[2]翟景瞳,王玲,杜秀偉.改進的音高識別算法[J].計算機工程與應(yīng)用,2009,45(20):4.

[3]沈瑜,黨建武,王陽萍,等.加權(quán)短時自相關(guān)函數(shù)的基音周期估計算法[J].計算機工程與應(yīng)用,2012,48(35):1-6.

[4]郭淑婷,趙明輝.基于ACF的基音檢測算法[J].鄭州輕工業(yè)學(xué)院學(xué)報:自然科學(xué)版,2011,26(05):4.

[5]熊琦,杜旭,朱曉亮.一種基于短時平均幅度差的語音檢測算法[J].電聲技術(shù),2006(09):4.

[6]武良丹.基于小波變換與平均幅度差函數(shù)倒數(shù)的基音周期檢測算法[J].科學(xué)技術(shù)創(chuàng)新,2017(31):2.

[7]王杰,耿麗紅.基于諧波自相關(guān)的基音檢測[J].系統(tǒng)工程與電子技術(shù),2013,35(01):218-222.

[8]溫源.基音在語音識別中的應(yīng)用及提高識別系統(tǒng)速度的研究[D].中國科學(xué)院聲學(xué)研究所,2002.

[9]林琴,郭玉堂,劉亞楠.基于自相關(guān)平方函數(shù)與小波變換的基音檢測[J].計算機應(yīng)用,2009,29(05):1433-1436.

作者簡介:周琪芝(1981-),女,四川達州人,副教授,鋼琴演奏與教學(xué)專業(yè)。

新昌县| 邵武市| 雅江县| 巴塘县| 呈贡县| 瑞安市| 囊谦县| 桐梓县| 连江县| 锦屏县| 新绛县| 慈利县| 文山县| 宁都县| 若尔盖县| 南宫市| 武邑县| 富阳市| 新余市| 五河县| 河南省| 宁阳县| 穆棱市| 织金县| 宜昌市| 乌拉特后旗| 抚州市| 哈巴河县| 紫阳县| 苍溪县| 赞皇县| 上林县| 泾源县| 屏南县| 平陆县| 缙云县| 西华县| 万州区| 台湾省| 洛川县| 新巴尔虎右旗|