iPhone: CPU-Leistung für DSP / Fourier-Transformation / Frequenzbereich?

8

Ich möchte MIC-Audio fortlaufend analysieren (nicht nur einen Snipper oder ein vorbespieltes Sample) und Frequenzgraphen anzeigen und bestimmte Aspekte des Audios herausfiltern. Ist das iPhone stark genug dafür? Ich vermute, dass die Antwort ein Ja ist, wenn man die Google- und iPhone-Spracherkennung, Shazaam und andere Apps zur Musikerkennung sowie die Apps für Gitarrentuner berücksichtigt. Allerdings weiß ich nicht, mit welchen Einschränkungen ich umgehen muss.

Irgendjemand mit diesem Bereich herumspielen?

    
mahboudz 15.09.2009, 06:45
quelle

5 Antworten

3

Apples Beispielcode aurioTouch hat eine FFT-Implementierung.

    
zaph 15.09.2009, 20:18
quelle
3

Die Apps, die ich gesehen habe, machen eine Art Musik / Spracherkennung benötigt 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 der Server.

In jedem Fall wurden Frequenzdiagramme und Filterungen schon vor einem Dutzend Jahren auf kleineren CPUs durchgeführt. Das iPhone sollte kein Problem sein.

    
moogs 15.09.2009 06:49
quelle
2

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

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 die Abtastrate nicht verhandelbar, aber wenn dies der Fall wäre, wäre dies eine weitere Möglichkeit.

    
Overdrive 06.11.2009 14:56
quelle
1

Ich habe eine App erstellt, die die FFT live berechnet

Ссылка

Sie können meinen Code für die FFT auf GitHub finden (obwohl es ein bisschen grob ist)

Ссылка

Apples neues iPhone OS 4.0 SDK ermöglicht die integrierte Berechnung der FFT mit der "Accelerate" -Bibliothek, also würde ich definitiv mit dem neuen Betriebssystem arbeiten, wenn es ein zentraler Teil der Funktionalität Ihrer App ist.

    
alexbw 11.05.2010 18:41
quelle
0

Sie können nur FFT-Code, der in C geschrieben ist, in Ihre App portieren ... da ist die Thumb-Compiler-Option, die Fließkommaarithmetik verkompliziert. Sie müssen es in den Armmodus versetzen

    
yan bellavance 20.10.2009 04:44
quelle