2013-02-17 48 views
1

我有一個MP3文件,需要不斷檢測並顯示此MP3文件的Hz值。有一點谷歌搜索表明我有兩個機會:使用FFT或使用Apple Accelerate框架。不幸的是,我還沒有找到任何易於使用的樣本。所有的樣品,如AurioTouch等,都需要大量的代碼才能獲得簡單的樣品緩衝液數量。 iOS有沒有簡單的音高檢測示例?簡單易用的MP3文件FFT

例如我找到https://github.com/clindsey/pkmFFT,但它缺少一些其作者已刪除的文件。任何這樣的工作?

+1

音高檢測/估計不是一個簡單直接的問題。 – hotpaw2 2013-02-18 17:20:58

回答

1

恐怕不是。處理聲音通常很困難,Core Audio也不例外。現在就在眼前。

FFT是一種將輸入從時域轉換到頻域的算法。不一定與聲音處理相關聯,您可以將其用於聲音之外的其他聲音。

Accelerate是Apple提供的框架,其中許多其他功能提供了FFT實現。所以,你實際上沒有兩個選擇,只有一個和它的實現。根據你想要做什麼(例如,如果你偏愛速度超過精確度,魯棒性和簡單性等)以及你擁有的波形類型(簡單,複雜,人類的語音,音樂),FFT可能還不夠(FFT)可能是不夠的無論是自己還是甚至不是您的任務的正確選擇。還有其他選項,自動關聯,零交叉,倒譜分析,最大可能提一些。但沒有一個是微不足道的,除了零交叉,這也給你最差的結果,並將無法使用複雜的波形。

+0

例如我找到https://github.com/clindsey/pkmFFT,但它缺少一些其作者已刪除的文件。任何這樣的工作? – 2013-02-18 08:30:33

1

這是一個良好的開端:

http://blog.bjornroche.com/2012/07/frequency-detection-using-fft-aka-pitch.html

也有上的其他問題。

但是,正如其他答案所指出的那樣,這不是一件可以「神奇地」完成的事情。即使你從某人獲得許可代碼(例如,iZotope和z平面都可以做出你想做的事情的優秀代碼),但你仍然需要了解將數據導入和導出庫的過程。