2009-09-15 10 views
8

Chcę na bieżąco analizować dźwięk MIC (a nie tylko snipper lub wstępnie nagraną próbkę) i wyświetlać wykres częstotliwości oraz odfiltrowywać pewne aspekty dźwięku. Czy iPhone jest wystarczająco potężny? Podejrzewam, że odpowiedź brzmi "tak", biorąc pod uwagę rozpoznawanie głosu Google i iPhone'a, Shazaam i inne aplikacje do rozpoznawania muzyki oraz aplikacje do tuningu gitarowego. Jednak nie wiem, z jakimi ograniczeniami będę musiał sobie radzić.iPhone: Moc procesora do domeny transformacji/częstotliwości DSP/Fouriera?

Kto gra w tej okolicy?

Odpowiedz

3

Przykładowy kod Apple aurioTouch ma implementację FFT.

+1

Dziękuję. Wow. Czy programiści słyszeli o komentarzach? Czy ktoś zrobił port cc-c z ich C++? Nie to, że jest to ważne, ale może sprawić, że będzie on bardziej czytelny. – mahboudz

+0

vDSP i FFT są teraz częścią os4 z dodatkiem Accelerate.framework – slf

3

aplikacje, które widziałam zrobić jakąś muzykę/rozpoznawania głosu wymaga połączenia internetowego, więc jest to bardzo prawdopodobne, że to właśnie dlatego jakiś obliczeń funkcji na audio i wysłać te funkcje poprzez http zrobić uznanie na serwerze.

W każdym razie, wykresy częstotliwości i filtrowanie zostało zrobione wcześniej na mniejszych procesorów kilkanaście lat temu. IPhone nie powinien stanowić problemu.

0

cant tylko portu FFT kod napisany w C do aplikacji ... tam jest opcja kompilatora kciuk że komplikuje arytmetyki zmiennoprzecinkowej. Należy umieścić go w trybie ramienia

+0

Powyższy kod jest już napisany dla iPhone'a. – mahboudz

2

„dość szybko” może być funkcją firmy (lub klienta) oczekiwania na ile rozdzielczość częstotliwości szukasz a częstotliwość próbkowania bazowej.

N-punktowa FFT jest w porządku obliczeń N * log2 (N), więc jeśli nie masz wystarczającej liczby MIPS, zmniejszenie N jest potencjalnym obszarem koncesji dla ciebie.

W wielu zastosowaniach, częstotliwość próbkowania jest niezbywalny, ale jeśli tak, to będzie inna możliwość.

+0

Częstotliwość próbkowania musi być dwukrotnie wyższa niż częstotliwość, której mogę szukać, prawda? – mahboudz

+1

Prawidłowo. Odstęp między przedziałami w dziedzinie częstotliwości jest funkcją liczby punktów (N) w twojej FFT, a częstotliwość nyquista jest zawsze na górze (połowa częstotliwości próbkowania). – Overdrive

1

Zrobiłem aplikację, która oblicza FFT żywo

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

można znaleźć kod do FFT na GitHub (choć to trochę szorstkie)

http://github.com/alexbw/iPhoneFFT

Apple nowy Pakiet SDK dla iPhone OS 4.0 pozwala na wbudowane obliczenia FFT za pomocą biblioteki "Accelerate", więc zdecydowanie zacznę pracować z nowym systemem operacyjnym, jeśli jest to centralna część funkcjonalności Twojej aplikacji.

+0

Myślę, że widziałem, jak wspominałeś o oscope na liście CoreAudio. Gratulacje za zdobycie go w sklepie z aplikacjami! – mahboudz

+0

Dzięki! Poważne bummer o tych ograniczeniach częstotliwości próbkowania, ale iPhone nadal jest niesamowitą platformą do analizy audio. – alexbw

Powiązane problemy