Deutsche Version: AUDIO_DIAGNOSTICS_DE.md¶
Linux Audio-Diagnose für Aura¶
Beim gleichzeitigen Betrieb des Aura Service können Audio-Konflikte auftreten (Timeouts, „Device Busy“ oder Sample-Rate-Konflikte). Diese Befehle helfen bei der Fehlersuche.
1. Geräte identifizieren¶
Zeigt alle Audio-Geräte aus Sicht der Python-Umgebung an:
./.venv/bin/python3 -m sounddevice > /tmp/aura_devices.txt && kate /tmp/aura_devices.txt
Ziel: Notiere die Index-Nummer und die Hardware-ID (hw:X,Y) deines Mikrofons.
2. Wer belegt die Hardware?¶
Wenn Fehler wie „Device Busy“ oder „Timeout“ auftreten, prüfen Sie, welcher Prozess (PID) die Hardware blockiert:
fuser -v /dev/snd/*
Tipp: Wenn „pipewire“ oder „wireplumber“ erscheint, verwaltet der Sound-Server das Gerät. Wenn eine
python3oderobsPID direkt auf einem PCM-Gerät erscheint, blockieren Sie diese evtl. den Zugriff für andere.
3. Echtzeit-Überwachung (PipeWire)¶
Für moderne Manjaro-Systeme mit PipeWire ist das das wichtigste Tool:
pw-top
Ziel: Überprüfen Sie die Spalte „ERR“ auf Fehler und stellen Sie sicher, dass Aura (16000Hz) und OBS (48000Hz) keine CPU-Überlastung durch Resampling verursachen.
4. Überwachung von Audio-Events¶
Verfolge live, wenn Mikrofone stummgeschaltet werden oder neue Streams entstehen:
pactl subscribe
Anwendung: Starte stirbt und dann Aura. Wenn sofort viele „remove“-Events kommen, bricht ein Prozess ab oder wird vom System abgewiesen.
5. Hardware-Direkttest¶
Getestet, ob das Mikrofon auf Hardware-Ebene funktioniert (umgeht PulseAudio/PipeWire). Nimmt 5 Sekunden auf:
# Ersetze hw:1,0 durch deinen Geräte-Index
arecord -D hw:1,0 -f S16_LE -r 16000 -d 5 /tmp/test.wav && vlc /tmp/test.wav
Ergebnis: Wenn dies funktioniert, Aura aber nicht, liegt das Problem in der Konfiguration des Sound-Servers, nicht an der Hardware.
6. Notfall-Reset¶
Falls das Audio-System komplett hängt:
systemctl --user restart pipewire wireplumber
# Oder für ältere PulseAudio-Systeme:
pulseaudio -k
Tipp für den Workflow: Um Ausgaben direkt in Kate zu betrachten, hänge einfach > /tmp/diagnose.txt && kate /tmp/diagnose.txt an den Befehl an. 🌵🚀