31.12.’25 18:25 Wed
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 / Findings:
Routing: PipeWire/PulseAudio neigen dazu, den Python-Stream (ALSA-Bridge) hartnäckig auf das physische Standard-Mikrofon zurückzusetzen (Stream-Restore-Logik).
Performance: 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 List (Future Sprint)¶
[ ] 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: Sicherstellen, dass der virtuelle Sink systemweit 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.
Update 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'
[EN] Summary:
Attempted to merge Mic and Desktop audio using a virtual null-sink. Routing was unstable due to PipeWire’s stream-restore. High CPU load was observed. Logic is now documented for a future iteration.
Ich bin gespannt, ob wir bei einem späteren Versuch mit einer performanteren Lösung (vielleicht direkt über PipeWire-Schnittstellen) Erfolg haben! Erledigt für heute.