2011-01-31 103 views
4

我正在研究需要從吉他中捕捉聲音頻率的程序。我修改了aurioTouch示例,通過使用最高幅度的頻率來輸出頻率。它適用於高音,但低音弦非常不準確。我相信這是由於泛音。我研究瞭如何解決這個問題的方法,例如倒譜分析,但是我對如何在示例代碼中實現這個問題感到迷茫,因爲它不清楚,也很難遵循評論。任何幫助將不勝感激,謝謝!用蘋果auriotouch示例計算頻率

+0

由於aurioTouch示例已具備捕捉音頻的能力,可以進行FFT並顯示頻譜,找到執行FFT等操作的部分並將其修改爲在該點執行所需操作並不難,當然? – 2011-01-31 22:20:19

+0

另請參閱:http://stackoverflow.com/questions/4501089/fft-pitch-detection-for-guitar-string – 2011-01-31 22:22:27

回答

4

正如你所發現的,音高與峯值頻率不一樣。

但試圖研究算法,同時嘗試使用實時音頻並不容易。

我建議你分開這些問題。在Mac上錄製一些音樂聲音(吉他彈奏等)到原始聲音文件中。在這些記錄的樣本集上嘗試您選擇的音高估計算法。然後,在你完成這個工作之後,找出如何將你的代碼集成到iOS音頻和加速(FFT)框架中。