diff --git a/app/main.py b/app/main.py index 73b1e59..6db1973 100644 --- a/app/main.py +++ b/app/main.py @@ -111,17 +111,31 @@ def stream(): # Minimale Latenz: kein HTTP-Buffering, kein Codec-Delay # --------------------------------------------------------------------------- -AUDIO_DEVICE = "plughw:2,0" AUDIO_SAMPLERATE = 16000 AUDIO_CHUNK = 512 # ~32ms bei 16kHz +def find_audio_device() -> str: + """Findet die USB-Soundkarte dynamisch anhand des Namens.""" + try: + with open("/proc/asound/cards") as f: + for line in f: + # Zeile mit Kartennummer: " 1 [Device ]: USB-Audio ..." + m = re.match(r"^\s*(\d+)\s+\[.*\].*USB", line) + if m: + return f"plughw:{m.group(1)},0" + except Exception: + pass + return "plughw:1,0" # Fallback + + @sock.route("/audio-ws") def audio_ws(ws): + device = find_audio_device() process = subprocess.Popen( [ "arecord", - "-D", AUDIO_DEVICE, + "-D", device, "-f", "S16_LE", "-r", str(AUDIO_SAMPLERATE), "-c", "1",