Sound mit Raspberry und Mikrofon aufnehmen

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo Zusammen,

    bin ziemlich neu hier, und auch bei der Raspberry Pi Programmierung. Ich muss für ein Physik Projekt an der Uni einen kurzes Audiosignal mit einem Mikrofon aufnehmen. Allerdings soll das Mikrofon nicht über USB sondern über einen AD-Wandler und den GPIO Pins ausgelesen werden. Als AD-Wandler habe ich einen MCP 3208, als Mikrofon ein Adafruit MAX4466 (Verstärker und Mikrofon) und natürlich einen Pi.

    Das Ziel wäre ein kurzes Audiosignal (5sec) aufzunehmen, und anschließend als wav datei abzuspeichern um eine Frequenzanalyse durchzuführen (FFT).


    Nach Stundenlangem googeln gebe ich auf, und hoffe es gibt hier jemanden der mir helfen kann. Englische Links/Beiträge sind auch kein Problem!

    Vielleicht noch was zu meinem Verständnisproblem: Ich habe auf http://people.csail.mit.edu/hubert/pyaudio/ schon etwas gesehen, um eine Wave Datei aufzunehmen (Die Wave Datei könnte ich dann in Audacity frequenanalysieren) Wie sage ich dem Programm, die Daten vom MCP zu holen?

    Oder gibt es einen einfacheren weg, die Daten direkt mit einer Fast Fourier Analyse auszulesen?


    Viele Grüße

    Mauerfall

    Einmal editiert, zuletzt von Mauerfall (21. Mai 2016 um 12:33)

  • Hallo Mauerfall,

    komisch, wenn ich folgende Begriffe eingebe

    Code
    Raspberry Pi MCP 3208 Adafruit Max 4466 FFT

    dann erhalte ich jede Menge Links, die mindestens einen Deiner Aspekte beleuchten.

    Die Wandlung digitaler Signale mittels MCP3208 wird in verschiedenste Progammiersprachen behandelt. Selbst wie das in Icon geht, habe ich hier schon mal vorgestellt.

    Adafruit hat Beispielprogramme in seinem Tutorial-Bereich.

    Und FFT sollte Dir als Physik-Student nicht so fern sein...

    Und schließlich enthalten einige Links, die sich mir erschlossen haben, nachdem ich eine Suchmaschine meines Vertrauens mit obigen Begriffen gespeist habe, auch mehrere Gesamtpakete, nach dem Du Stunden gesucht hast.

    :s Ist das echt so schwer geworden, Begriffe in Suchmaschinen einzutragen und sich die besten Rosinen rauszupicken und systematisch anzugehen?

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Fuer FFT gibt es zB in Python bereits eingebaute Funktionen im Paket "numpy", welches sich ueber den Paketmanager installieren lassen sollte.

    PyAudio bringt nichts, weil du deine Audiodaten ja nicht von einem echten Audiointerface abgreifen kannst/willst.

    Allerdings halte ich dein Vorgehen fuer schwierig bis ungeeignet. Zwar laesst sich der MCP 3208 wunderbar ansteuern ueber den PI, zB mit dem SPIDEV oder auch mit selbstgebasteltem bitbanging.

    Aber fuer eine Audioaufzeichnung (oder jede andere Signalquelle) mit dem Ziel, eine FFT zu fahren, und nicht einfach nur einen Sensor einzulesen, brauchst du einen festen Takt fuer das Sampling.

    Den bekommst du mit einem PI aber nicht ihn. Der kann so etwas einfach nicht, bedingt durch sein komplexes OS.

    Eine Loesung koennte zB das PIMORONI Propeller-HAT sein. Der Propeller ist ein netter kleiner 8-Core-uC, und da kannst du zB einen Core in praezisem Timing in einen Buffer sampeln lassen, und mit einem zweiten liest du die Daten aus dem Buffer aus & schickst sie ueber die serielle bzw. besser noch SPI-Schnittstelle.

    Arduinos sind theoretisch auch geeignet, da wuerde ich mir aber ueber die Stabilitaet der Samplerate etwas sorgen machen, zumindest muss man da bei der Programmierung etwas mehr acht geben.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!