Ramses
Posts: 8
Joined: Wed Jan 10, 2018 2:43 pm

Bluetooth Mikrofon für FFT Analyse

Mon Mar 25, 2019 2:58 pm

Hallo Community!

Wie bereits im Titel erwähnt versuche ich über ein Bluetooth Mikrofon Sound zu empfangen und diesen dann mittels Fast Furier Transformation zu analysieren.
Mein Problem ist dass ich nicht weiß wo/wie anfangen.
Für den Raspberry Pi (linux generell) liefert Bluez die Werkzeuge um zumindest die Bluetooth Verbindung zu realisieren und dann auch entsprechend den Sound zu empfangen. (Wirklich brauchbare alternativen konnte ich zumindest keine finden)

Auf meinem System habe ich Bluez 5.50 installiert.
Raspberry Pi B3
Raspbian Stretch with desktop
Version:November 2018
Release date:2018-11-13
Kernel version:4.14

Nun stehe ich aber vor dem Problem dass die Bluez Dokumentation ausgesprochen Mager bzw. so gut wie nicht vorhanden ist.
Am brauchbarsten fand ich noch das hier https://people.csail.mit.edu/albert/blu ... index.html
Da kann ich als C Programmierer auch was mit Anfangen.
Leider ist absolut nichts in die Richtung A2DP und stundenlangem Googeln weiß ich nicht mehr wirklich wo/wie Anfangen.
Der Plan wäre es einen Strem zu erzeugen der gleich eine FFT Analyse drüber laufen zu lassen. (aber dazu habe ich leider noch keine Informationen wie man so etwas realisiert)

Darum meine Bitte an euch ob Ihr mir helfen könntet.
Eventuell mit einer Zusammenfassung oder Links zu Tutorials oder ähnlichen OpenSource Projekten.
Ich bin wirklich über alles hilfreiche dankbar.

Dake LG

smartifahrer
Posts: 1038
Joined: Sat Feb 13, 2016 8:10 am

Re: Bluetooth Mikrofon für FFT Analyse

Mon Mar 25, 2019 6:28 pm

Bluetooth Audio scheint noch nicht ganz vollständig auf dem Pi zu sein (mein eindruck ;) ). Neben der Bluetooth Software wird noch eine passende Audio-Software benötigt. In zusammenhang mit Bluetooth habe ich öfter von Pulsaudio gelesen. Damit kommst du schon an die Audiodaten. Normalerweise ist bei Raspbian ALSA installiert.
Leichter wird es mit einem billigen USB-Audio Stick gehen.

User avatar
mline
Posts: 1422
Joined: Sun Jan 27, 2013 1:47 pm
Location: Austria, Vienna

Re: Bluetooth Mikrofon für FFT Analyse

Mon Mar 25, 2019 11:39 pm

Je nachdem wie sich dein Mikrofon via Bluetooth verbindet kannst du den Audiostream wie bei einem Eingang auf ner Soundkarte abgreifen. Bluetooth brauchst du nur zum Verbinden... sobald diese Verbindung mal steht und das Gerät ein unterstütztes Bluetoothprofil nutzt (A2DP zum Beispiel) arbeitest du nicht mehr mit Bluetooth sondern mit einem Audiogerät.

Pulseaudio brauchst du dafür nicht. Erhöht ohnehin nur unnötig die Latenz. Mit ALSA dürfte das recht einfach zu realisieren sein.
Ich würde vorschlagen, du siehst dir mal an wie man ALSA und zum Beispiel ein Bluetooth Headset konfiguriert. Von da weg dürfte es nicht weit sein für ne Lösung deines Problems.

Das Arch-Wiki fand ich zu dem Thema immer sehr hilfreich https://wiki.archlinux.org/index.php/Bl ... SA_Devices
<~~>

Ramses
Posts: 8
Joined: Wed Jan 10, 2018 2:43 pm

Re: Bluetooth Mikrofon für FFT Analyse

Wed Mar 27, 2019 3:43 pm

Erstmal vielen Dank für die Antworten.

Der Tipp mit ALSA war sehr hilfreich nur leider zwickt das ganze noch etwas.

Ich habe zum testen erstmal ALSA Installiert

Code: Select all

sudo apt-get install alsa-utils alsa-tools
alles wunderbar.

Im nächsten Schritt dann die Bluetooth Verbindung über bluetoothctl aufgebaut.

Zum Testen habe ich etwas mit "aplay" und "arecord" gespielt

aplay funktioniert recht problemlos

Code: Select all

aplay -D bluealsa:DEV=2C:4D:79:0D:17:F9,PROFILE=a2dp,HCI=hci0 ~/piano.wav
Wenn ich am Empfänger einen Lautsprecher anhänge wird der sound auch abgespielt.

Die Probleme fangen nun mit arecord an.
Ich muss ja Sound von einem Mikrofon empfangen und auswerten.
arecord macht mir genau das und speichert die Datei dann ab (abspeichern reicht mir fürs ersten den Stream kann ich mir dann säter ansehen)
das Kommando sieht folgendermaßen aus

Code: Select all

arecord -D bluealsa:DEV=2C:4D:79:0D:17:F9,PROFILE=soc,HCI=hci0 ~/test.wav
und dann auch gleich die Fehlermeldung dazu ^^

Code: Select all

ALSA lib bluealsa-pcm.c:680:(_snd_pcm_bluealsa_open) Couldn't get BlueALSA transport: Kein passendes Gerät gefunden
arecord: main:788: Fehler beim Öffnen des Gerätes: Kein passendes Gerät gefunden
Bitte glaubt nicht ich hab nur die 2 Kommandos ausprobiert und dann den Kopf in den Sand gesteckt ich hänge schon den ganzen Tag da dran :oops:

Hauptproblem (was ja quasi die Fehlermeldung schon sagt) scheint zu sein dass arecord keine Sound Karte findet (aplay jedoch schon) und ich komme nicht dahinter wieso?

aplay

Code: Select all

pi@raspberrypi:~ $ aplay -l
**** Liste der Hardware-Geräte (PLAYBACK) ****
Karte 0: ALSA [bcm2835 ALSA], Gerät 0: bcm2835 ALSA [bcm2835 ALSA]
  Sub-Geräte: 7/7
  Sub-Gerät #0: subdevice #0
  Sub-Gerät #1: subdevice #1
  Sub-Gerät #2: subdevice #2
  Sub-Gerät #3: subdevice #3
  Sub-Gerät #4: subdevice #4
  Sub-Gerät #5: subdevice #5
  Sub-Gerät #6: subdevice #6
Karte 0: ALSA [bcm2835 ALSA], Gerät 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
arecord

Code: Select all

pi@raspberrypi:~ $ arecord -l
**** Liste der Hardware-Geräte (CAPTURE) ****
Weiß jemand wo ich mich hier verrannt habe bzw was hier des Rätsels Lösung ist?

User avatar
mline
Posts: 1422
Joined: Sun Jan 27, 2013 1:47 pm
Location: Austria, Vienna

Re: Bluetooth Mikrofon für FFT Analyse

Wed Mar 27, 2019 5:16 pm

Ich vermute mal, du hast das BT-Device nicht in der /etc/asound.conf eingerichtet. Darum erkennen die beiden Programme nur die Soundkarte der Pi. Und die hat nur nen Ausgang (Analog bzw. HDMI) und keinen Eingang.
<~~>

Mitte
Posts: 6
Joined: Thu Apr 04, 2019 12:41 pm
Location: Austria

Re: Bluetooth Mikrofon für FFT Analyse

Fri Apr 05, 2019 7:36 am

Falls du Matlab benutzen kannst, sollte die FFT Analyse dort möglich sein. Das ganze lässt sich in Matlab programmieren und mittels Plugin in C übersetzen und auf den Raspberry aufspielen, sodass für den Betrieb kein Matlab mehr notwendig ist (https://de.mathworks.com/hardware-suppo ... atlab.html). Wenn du weiterkommst darfst du mir gerne sagen wie du es gemacht hast, arbeite nämlich gerade am gleichen Thema, nur will mein Sender noch keine stabile Verbindung aufbauen...

Return to “Deutsch”