2010-10-27 49 views
38

這是一個很好的數字信號處理算法,在吉他譜上很好嗎?由於快速傅里葉變換我認爲只有在吉他彈奏的單個音符上纔是準確的,而不是在同時彈奏的音符上(即和絃)。吉他和絃識別算法?

謝謝!

+2

問問Melodyne的傢伙:http://www.youtube.com/watch?v = jFCjv4_jqAY – herzmeister 2010-10-27 12:25:49

+4

你認爲FFT在你的情況下是不是真的? – Biggles 2010-10-27 12:37:53

回答

2

那麼,你可以嘗試另一組頻域的算法,如小波。但我不確定這是否會影響您的準確性問題。其實,我不明白你在FFT方面遇到什麼問題。它總是和絃的近似值,沒有完美的方式來檢索聲音上的這種信息。

因此,它取決於您在該頻譜上進行的分析,使用單個音符,實際上有許多比FFT更好的算法,但使用和絃您很可能必須使用FFT。

您將不得不處理的問題是將高次諧波的基本諧波分開,有一件事可能有幫助,那就是隻考慮吉他範圍內的頻率。 如果您只需要使用吉他聲音,您應該花點時間研究吉他的正常頻域圖並嘗試使用它來提高您的精確度。

+0

嗨!使用FFT時,是否可以使用箱的強度來嘗試確定構成和絃的音符?因爲我認爲他們會有一些相互關聯的類型。 – user488792 2011-02-07 08:38:16

2

有一些使用DFT(FFT)的相當成功的工具,但是他們在計算DFT之後做了大量的處理。

嘗試使用this link獲取當前技術狀態摘要,或者用於開源和絃提取算法的谷歌「Chordino」或「Chordata」。

64

簡短的答案是,你需要遠遠超過一種算法。良好的和絃識別方法可以更恰當地描述爲「系統」,但通常它們確實基於對頻域的初始變換(通常是DFT)。

如果你想要的歌曲的和絃representaton與此類似

C G Am F7 F6 C ... 

那麼這實際上是略微從一段音頻識別註釋去掉一個問題。實際上,有兩個問題(粗略地說):

  1. 發現其間距本隨時
  2. 隨着時間的推移這些分組間距,以便能夠和絃標籤分配給的時間間隔。

事實證明,從時域(正常音頻)轉換到頻域(頻譜表示)的方式只是有限的重要性。事後處理非常重要,通常使用複雜的概率模型(類似於語音識別中的模型:HMM,DBN ......)來解決這個問題。

請嘗試谷歌學者「和絃轉錄」或「和絃檢測」或「和絃標籤」進行該領域的高級研究。

大多數這些方法使用離散傅里葉變換(DFT)來創建初始光譜圖。在進一步的處理中,它們也往往略有不同,儘管已經使用了不同的時間序列平滑技術:隱馬爾可夫模型,動態貝葉斯網絡,支持向量機(SVMstruct)和條件隨機場等等。 最先進的轉錄器使用自動調諧,關鍵信息,低音信息和度量位置信息來改善結果。我的thesis(第2章)給出了一個很好的概述。

開源和絃檢測算法:

希望這有助於。

+11

+1爲好答案,並能夠在答案中引用您自己的論文。 – gary 2011-01-27 14:49:44

+0

我在使用LabROSA Chord Recognition時遇到困難,您能指導我如何使用它嗎?我使用終端命令extractFeaturesAndTrain_svm和doChordID_svm,但它不可識別 – 2017-03-21 08:04:58

1

科學家之間有一個contest人們試圖分析音樂的不同參數。本次比賽的一部分是和絃識別。本次比賽是公開的,任何人都可以參與並在此領域展示結果。 2011年的結果公佈於here

我的一個朋友在這個領域取得了很好的成績(在這個比賽中也是如此)。你可以在他的webpage上看到他的方法。

2

如果您正確設置了軟件,FFT可以並且會給你所有的單音。 FFT的全部內容是區分色調,或者如果您是天體物理學家,您想知道明星發出的光線中的各個元素(sulpher,hydrogen ...)。

諧波不是一個問題,因爲它們的功率比基本頻率低,例如C = 440hz,但C = 880hz,但880是FFT結果中較小的峯值。

+0

nope,如果您嘗試繪製FFT產生的頻譜,例如對於在小提琴上演奏的C5音符,您會看到C5的低音振幅比C6。 – 2016-05-14 17:21:39

+0

@YuriyKravets我認爲他意味着你可以找到根音,因爲它會是最大的「權力」,因爲他說的 – 2016-09-18 10:35:13