詳細說明:如何將聲音輸入與預先確定的聲音進行比較?
假設我在我的吉他上彈奏G,並且我的聲卡已經輸入了聲音。如何讓我的電腦認出它是G? (對編程語言沒有限制,儘管更喜歡Python或C)(鏈接到文章或某些想法會有所幫助,無代碼片段)
詳細說明:如何將聲音輸入與預先確定的聲音進行比較?
假設我在我的吉他上彈奏G,並且我的聲卡已經輸入了聲音。如何讓我的電腦認出它是G? (對編程語言沒有限制,儘管更喜歡Python或C)(鏈接到文章或某些想法會有所幫助,無代碼片段)
Goertzel濾波器和FFT都不是很好的音調估計器。 FFT是一個頻率估計器,峯值頻譜頻率不同於心理聲學音調(由於感知怪異和實際樂器的物理性質,例如缺失或弱的基本原理)。
在音樂音高估計算法的stackoverflow上搜索。有一堆。
從你的經驗來看,哪種算法在逼近你提到的非常心理聲學音調方面最好? –
你可能想問這是另一個更好的問題。這可能取決於您的要求和限制的細節。 – hotpaw2
使用快速傅里葉變換。這裏是一些代碼:http://www.codeproject.com/KB/audio-video/FftGuitarTuner.aspx
基於FFT的頻率估計器製造可怕的吉他調音器。 – hotpaw2
如果你只想檢查一些頻率,Goertzel algorithm可能會更容易實現。 (並且在運行時更快)
與預先確定的聲音比較並不是音高識別是如何完成的。可憐的頭銜。 – hotpaw2