2012-04-07 11 views
0

Ich mache eine Anwendung für Android, die Benutzer Sprachbefehl speichern und dann während der Anwendung läuft; vergleicht die Echtzeitdaten vom Mikrofoneingang mit dem gespeicherten Mikrofon. Bis jetzt habe ich die Stimme in WAV-Datei gespeichert, jetzt möchte ich es mit dem Eingangsstrom vergleichen. Ich habe FFT mit dieser API angewandt, wie es mit Android kompatibel:Mit FFT, um zwei Audiodateien und dann Echtzeitvergleich zu vergleichen

http://code.google.com/p/musicg/

Ich weiß, über dieses api viel nicht entweder, aber ich denke, die FFT-Daten in FrequencyTimeDomainRepresentation Objekt gespeichert wird. Ich habe im Internet gesucht und herausgefunden, dass ich ein Fenster verwenden muss, um die Daten zu vergleichen, aber ich weiß nicht, wie ich das machen soll. Ich weiß nicht, wie man die Daten vergleicht.

Bitte sagen Sie mir, wie man die FFT-Daten vergleicht und wie ich die gespeicherten Dateidaten mit den Daten des Eingabedatenstroms, ich meine Code, abgleiche. In der Zwischenzeit versuche ich zwei Audiodateien mit Java vergleichen, nicht auf Android für jetzt.

Jede Hilfe wäre willkommen, Danke.

+2

Sie müssen etwas über Signalverarbeitung lernen, da diese Frage für SO zu weit gefasst ist. –

Antwort

0

Wie im Kommentar erwähnt, ist dies eine dsp bezogene Frage. Sie sollten nach Details an der dspexchange fragen.

Aber um Ihnen eine schnelle Antwort zu geben. Definieren Sie genau, was Ihr Algortihm tun soll. Sollte es Spracherkennung tun? Wenn Sie nur ein einfaches Maß für Ähnlichkeit haben möchten, verwenden Sie Kreuzkorrelation (fragen Sie Google). Sie brauchen auch keine FFT dafür (FFT scheint in letzter Zeit oft überstrapaziert zu sein. Jeder, der nicht weiß, was er macht, kommt mit diesem FFT-Zeug). Eine FFT könnte ins Spiel kommen, wenn Sie wissen, was Sie tun wollen und Sie wissen, dass Sie es wirklich brauchen; vielleicht für die Anwendung eines psychoakustischen Modells. Aber selbst dann könnte eine einfache Haartransformation, insbesondere auf Mobilgeräten, ausreichend, einfacher und schneller sein.

Verwandte Themen