Wie entwickelt man einen Spektrum-Analyser aus ein Echtzeit-audio?
Ich entwickle eine app, Holen Sie sich ein audio aus mic-in Echtzeit, ohne file-storage. Im Grunde verwende ich:
mRecorder = new MediaRecorder();
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mRecorder.setOutputFile("/dev/null");
Meine Frage ist, wie kann ich eine Spektrum-Grafik von diesem Echtzeit-audio -, aber keine Dateien. Es kann getan werden?
Alle post, die ich lese, sind die Analyse eine gepufferte Datei.
Danke, und sorry für mein Englisch.
urkomisch Tippfehler im Titel, ist Jetzt korrigiert 😉
Sorry, Marko 🙂
Keine Notwendigkeit zu entschuldigen! Viel Respekt für die Fragen, die hier in einer Sprache, welches ist nicht Ihre erste.
Meines Wissens gibt es keine API dafür. Sie sind wahrscheinlich auf der Suche auf den Aufbau einer vernünftig dimensionierten Puffer von PCM-Daten im RAM und die Umwandlung in den Frequenzbereich mittels FFT-Bibliothek. Siehe z.B. stackoverflow.com/questions/4675457/... ein bisschen mehr Informationen.
Sorry, Marko 🙂
Keine Notwendigkeit zu entschuldigen! Viel Respekt für die Fragen, die hier in einer Sprache, welches ist nicht Ihre erste.
Meines Wissens gibt es keine API dafür. Sie sind wahrscheinlich auf der Suche auf den Aufbau einer vernünftig dimensionierten Puffer von PCM-Daten im RAM und die Umwandlung in den Frequenzbereich mittels FFT-Bibliothek. Siehe z.B. stackoverflow.com/questions/4675457/... ein bisschen mehr Informationen.
InformationsquelleAutor Víctor Martín | 2013-08-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
ja, es kann getan werden.
Alles, was Sie brauchen, ist eine schnelle FFT-Algorithmus !
Entscheiden Sie sich zuerst die Frequenz-Auflösung, die Sie wollen, zum Beispiel können Sie die sample-rate von Ihrem Mikrofon bei 8000hz, wählen Sie nun eine chunk-Größe wie 1024 oder 2048 zur Aufnahme von deinem mic.
Wenn Sie 2048-Punkte und sample-rate 8000, tun werden Sie haben eine Frequenz-Auflösung = 3.9063 (8000 /2048).
Anwenden einer Fensterfunktion über Ihre 2048 Punkte, dann gelten die FFT und bekommst Größenordnung !
Erinnern, der das Nyquist-theorem sample rate = 8000 /2 = 4000, jetzt kennen Sie Ihre FFT bekommen können Frequenzen zwischen 3.9063 Hz auf 4000 Hz.
FFT-Bin des zugehörigen Frequenzen:
Dafür benötigen Sie nur die erste Hälfte der Werte der FFT, für diesen Fall 1024.
Nun, wenn Sie plot dieser Daten aus Ihrem FFT, haben Sie ein Spektrum !
BEARBEITEN
Pseudo-code:
Vielen Dank an alle, ich weiß nicht, etwas über die sound-Analyse, so werde ich versuchen zu Lesen und zu verstehen, Ihre Kommentare. Danke, ich werde später sicher.
ederwander, es ist eine Sache, die ich nicht verstehe, wie ich brauche, um fortzufahren. "Tragen Sie eine Fenster-Funktion über Ihre 2048 Punkte, dann gelten die FFT und bekommst Größenordnung !"
Update-meine Antwort, siehe mein pseudo-code !
Dank ederwander. Eine andere Frage, wenn Sie nichts dagegen haben. Wie kann ich unterscheiden zwischen einem niedrigen und einem scharfen Ton, ich möchte zeigen, dass andere Grafiken, die mit jedem sound, den diese Typen. Sorry, wenn ich zu lästig.
InformationsquelleAutor ederwander
Es ist ein open-source-Android, spectrum analyzer auf Github die Computer FFT auf audio vom Mikrofon und zeigt ein 2D-Spektrogramm.
Dem Spektrum-Analyzer-Projekt findet sich in der v2.x/Showcase app
Sehen Sie eine video von ihm in Aktion zu https://youtu.be/yU05fsgOYO4
Sehen Sie ein video mit der build-Anleitung gibt es hier: https://youtu.be/tVgn30uss2k?t=1m37s
Dem Chart wird zur Verfügung gestellt von der SciChart Android-chart-Bibliothek, die ein kommerzielles Kontrolle, aber der source-code zum Lesen der mic, die Berechnung der FFT und Spektrogramm ist kostenlos & open source unter der MIT-Lizenz.
Wie eine Offenbarung: ich bin der tech-Vorsprung auf die SciChart Projekt
Ich habe aktualisiert die Antwort, um mehr Informationen, einschließlich direkter link auf die Audio-Analyser-Projekts, und ein video um zu zeigen, wie es zu bauen. Hoffe, das hilft.
Hi @Dr. ABT haben Sie die Quellen der Probe, finden wir in dem Youtube-video? Ich habe ein ähnliches Bedürfnis auf Xamarin Android-Projekt: Aufnahme von Rauschen aus dem Mikrofon, und die Anzeige der zugehörigen spcetogram.
Ja, der link zu den Quellen wird in meiner Antwort, wo es heißt "der Spektrum-Analysator-Projekt finden Sie unter ....".
Hi @Dr. ABT Dank für deine Antwort. Auch ich Diskutiere mit Julia über Ihre E-Mail-Unterstützung, aber könnten Sie vielleicht mir helfen zu wissen, ob es möglich ist, zu erreichen, eine ähnliche Sache ("Spektrum-analyser") in einer Xamarin-Android-Projekt? Sie Xamarin Android-Proben (der gesamte code ist im Fragment) Sie nicht verwenden die gleiche Architektur als Ihre Android-Proben (.xml-layouts, Fragmente wie views, viewmodels, verbindliche Klassen): also ich bin mir nicht sicher, was getan werden könnte...
InformationsquelleAutor Dr. ABT
Habe ich entwickelt ein open-source-FFT basierter Spektrumanalysator. Bitte haben Sie einen Blick auf
http://som-itsolutions.blogspot.in/2012/01/fft-based-simple-spectrum-analyzer.html.
Können Sie auch den source code von
https://github.com/sommukhopadhyay/FFTBasedSpectrumAnalyzer
Hoffe, dies wird Ihnen helfen.
InformationsquelleAutor somenath mukhopadhyay