2009-09-15 72 views
8

我想持續分析MIC音頻(不僅僅是一個snipper或預先錄製的示例),並顯示頻率圖並濾除音頻的某些方面。 iPhone足夠強大嗎?鑑於谷歌和iPhone的語音識別,Shazaam和其他音樂識別應用以及吉他調音器應用程序,我懷疑答案是肯定的。但是,我不知道我必須處理什麼限制。iPhone:處理DSP /傅立葉變換/頻域的CPU電源?

任何人都玩這個地區?

回答

3

Apple的示例代碼aurioTouch具有FFT實現。

+1

謝謝。 哇。那些開發者是否聽說過評論?有沒有人做過C++的obj-c端口?並不是說這很重要,但它可能會使它更具可讀性。 – mahboudz 2009-09-16 03:12:17

+0

vDSP和FFT現在是os4的一部分,增加了Accelerate.framework – slf 2010-05-06 00:31:29

3

我看過的應用程序做某種音樂/語音識別需要互聯網連接,所以很可能這些只是對音頻進行某種特徵計算並通過http發送這些功能來進行識別在服務器上。

在任何情況下,頻率圖和過濾都是在十幾年前在較小的CPU上完成的。 iPhone應該沒問題。

0

您不能將用C編寫的FFT代碼移植到您的應用程序中......這裏存在使浮點運算複雜的拇指編譯器選項。您需要將其置於手臂模式

+0

上面提到的代碼已經爲iPhone編寫。 – mahboudz 2009-10-20 06:25:24

2

「足夠快」可能是您(或您的客戶)對您要查找的頻率分辨率和您的基本採樣率的期望的函數。

一個N點FFT的數量級爲N * log2(N),所以如果你沒有足夠的MIPS,減少N是一個讓步的潛在區域。

在許多應用中,採樣率是不可協商的,但如果是這樣的話,這將是另一種可能性。

+0

採樣率必須是我可能要查找的最高頻率的兩倍,對嗎? – mahboudz 2009-11-06 19:23:45

+1

正確。頻域中分箱之間的間距是FFT中點數(N)的函數,而奈奎斯特頻率總是處於最高點(採樣率的一半)。 – Overdrive 2009-11-06 22:51:11

1

我做了計算FFT現場

http://www.itunes.com/apps/oscope

你可以找到我的代碼在GitHub上FFT(雖然這是一個有點粗糙)

http://github.com/alexbw/iPhoneFFT

蘋果的新應用程序iPhone OS 4.0 SDK允許使用「加速」庫對FFT進行內置計算,所以如果它是應用程序功能的核心部分,我肯定會開始使用新操作系統。

+0

我想我今天在CoreAudio列表上看到你提到oscope。恭喜你在應用商店中獲得它! – mahboudz 2010-05-12 10:36:01

+0

謝謝!對這些採樣率限制非常失望,但iPhone仍然是一個令人難以置信的音頻分析平臺。 – alexbw 2010-05-13 17:58:34