31.12.25 18:25 Mi
Zusammenfassung und die To-Do-Liste für die Zukunft:
Dokumentation: Versuch „Unified Audio Input“ (Mic + Desktop)¶
Status: Pausiert (Proof of Concept existiert, aber nicht stabil/performant).
Erfahrungen / Befunde:
Routing: PipeWire/PulseAudio neigt dazu, den Python-Stream (ALSA-Bridge) hartnäckig auf das physische Standard-Mikrofon zurückzusetzen (Stream-Restore-Logik).
Leistung: Die Verarbeitung von RMS, VAD und Vosk in einem engen Loop, kombiniert mit externen „pactl“-Aufrufen, führt zu hoher CPU-Last (Lüfterdrehen).
Signal: Trotz korrektem Device-Index kam oft nur ein RMS-Pegel von ~1.7 an, was auf ein falsches Mapping zwischen ALSA und PipeWire hindeutet.
To-Do-Liste (Zukunftssprint)¶
[ ] WirePlumber Integration: Erforschung von nativen PipeWire-Rules (
scripts), um den Stream permanent ohnepactl-Hooks zu binden.[ ] Performance Optimization: Den Audio-Loop entlasten (z.B. RMS-Checks seltener durchführen oder VAD-Parameter optimieren).
[ ] Native Mono Sink: Stellen Sie sicher, dass der virtuelle Sinkweit fest auf 16kHz Mono steht, um Resampling-Last zu vermeiden.
[ ] Robust Device Mapping: Eine stabilere Methode finden, um den virtuellen Monitor-Sink in
sounddevicenamentlich zu adressieren.
Aktualisieren Sie „config/settings.py“.¶
# config/settings.py
# AUDIO_INPUT_DEVICE = None
# PLANNED: UNIFIED_AUDIO_INPUT (Mic + Desktop Sound)
# Current status: Experimental. Requires stable PipeWire routing and CPU optimization.
# AUDIO_INPUT_DEVICE = 'UNIFIED_AUDIO_INPUT'
[DE] Zusammenfassung: Es wurde versucht, Mikrofon- und Desktop-Audio mithilfe einer virtuellen „Null-Senke“ zusammenzuführen. Das Routing war aufgrund der Stream-Wiederherstellung von PipeWire instabil. Es wurde eine hohe CPU-Auslastung beobachtet. Die Logik ist jetzt für eine zukünftige Iteration dokumentiert.
Ich bin gespannt, ob wir bei einem späteren Versuch mit einer performanten Lösung (vielleicht direkt über PipeWire-Schnittstellen) Erfolg haben! Erledigt für heute.