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)

  1. [ ] WirePlumber Integration: Erforschung von nativen PipeWire-Rules (scripts), um den Stream permanent ohne pactl-Hooks zu binden.

  2. [ ] Performance Optimization: Den Audio-Loop entlasten (z.B. RMS-Checks seltener durchführen oder VAD-Parameter optimieren).

  3. [ ] Native Mono Sink: Sicherstellen, dass der virtuelle Sink systemweit fest auf 16kHz Mono steht, um Resampling-Last zu vermeiden.

  4. [ ] Robust Device Mapping: Eine stabilere Methode finden, um den virtuellen Monitor-Sink in sounddevice namentlich 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.