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)

  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: Stellen Sie sicher, dass der virtuelle Sinkweit 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.


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.