2009-09-15 7 views
8

Ich möchte MIC Audio fortlaufend analysieren (nicht nur einen Snipper oder ein vorbespieltes Sample) und Frequenzgraph anzeigen und bestimmte Aspekte des Audios herausfiltern. Ist das iPhone stark genug dafür? Ich vermute, die Antwort ist ein Ja, angesichts der Google- und iPhone-Spracherkennung, Shazaam und anderer Musik-Erkennungs-Apps und Gitarren-Tuner-Apps da draußen. Ich weiß jedoch nicht, mit welchen Einschränkungen ich umgehen muss.iPhone: CPU-Leistung für DSP/Fourier-Transformation/Frequenzbereich?

Wer spielt mit diesem Bereich?

Antwort

3

Apples Beispielcode aurioTouch verfügt über eine FFT-Implementierung.

+1

Vielen Dank. Wow. Haben diese Entwickler von Kommentaren gehört? Hat jemand einen obj-c port von ihrem C++ gemacht? Nicht, dass es so wichtig ist, aber es könnte es lesbarer machen. – mahboudz

+0

vDSP und FFT jetzt Teil von os4 mit dem Zusatz von Accelerate.framework – slf

3

Die Apps, die ich gesehen habe, machen eine Art Musik/Spracherkennung benötigen eine Internetverbindung, also ist es sehr wahrscheinlich, dass diese nur eine Art von Feature-Berechnung auf dem Audio und senden diese Funktionen über http, um die Erkennung zu tun auf dem Server.

In jedem Fall wurden Häufigkeitsdiagramme und Filterungen vor ein paar Jahren auf kleineren CPUs durchgeführt. Das iPhone sollte kein Problem sein.

0

Sie können nicht nur in C geschriebenen FFT-Code in Ihre App portieren ... da ist die Thumb-Compiler-Option, die Gleitkommaarithmetik verkompliziert. Sie müssen es in den Armmodus setzen

+0

Der oben erwähnte Code ist bereits für das iPhone geschrieben. – mahboudz

2

"Fast genug" kann eine Funktion Ihrer (oder Ihrer Kunden) Erwartungen sein, wie viel Frequenzauflösung Sie suchen und Ihre Basis-Abtastrate.

Eine N-Punkt-FFT liegt in der Größenordnung von N * log2 (N) -Bewertungen. Wenn Sie also nicht genug MIPS haben, ist die Reduzierung von N ein potenzieller Konzessionsbereich für Sie.

In vielen Anwendungen ist Sample Rate ein nicht verhandelbar, aber wenn es war, wäre dies eine andere Möglichkeit.

+0

Die Abtastrate muss doppelt so hoch sein wie die höchste Frequenz, nach der ich suche, richtig? – mahboudz

+1

Korrigieren. Der Abstand zwischen den Bins im Frequenzbereich ist eine Funktion der Anzahl der Punkte (N) in Ihrer FFT, und die Nyquist-Frequenz ist immer oben (die Hälfte der Abtastrate). – Overdrive

1

Ich habe eine Anwendung, die die FFT Live

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

Sie meinen Code für die FFT

http://github.com/alexbw/iPhoneFFT

Apple finden (es ist zwar ein wenig rau) auf GitHub berechnet neue Das iPhone OS 4.0 SDK ermöglicht eine integrierte Berechnung der FFT mit der "Accelerate" -Bibliothek, sodass ich definitiv mit dem neuen Betriebssystem arbeiten würde, wenn es ein zentraler Teil der Funktionalität Ihrer App ist.

+0

Ich glaube, ich habe gesehen, dass Sie heute auf der CoreAudio-Liste von oscope sprechen. Herzlichen Glückwunsch zum Aufspielen im App Store! – mahboudz

+0

Danke! Ernsthafte Enttäuschung über diese Sampling Rate Einschränkungen, aber das iPhone ist immer noch eine unglaubliche Plattform für die Audio-Analyse. – alexbw