Ctrl K
ComunidadGuías…

scripts/test_mic_open.py

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
import time

import sounddevice as sd

CANDIDATES = [12, 22, 1, 6, 0, 5]  # most likely good ones first


def try_device(idx):
    info = sd.query_devices(idx)
    sr = int(info["default_samplerate"])
    # Prefer 16000 if device supports it (common for wakeword)
    prefer = 16000
    srs = [prefer, sr] if prefer != sr else [sr]

    for rate in srs:
        try:
            with sd.InputStream(device=idx, channels=1, samplerate=rate, dtype="int16"):
                time.sleep(0.25)
            return True, rate, info["name"]
        except Exception as e:
            last = str(e)
    return False, None, info["name"] + " | last_error=" + last


print("Default devices:", sd.default.device)
print("Testing candidates:", CANDIDATES)

for idx in CANDIDATES:
    ok, rate, name = try_device(idx)
    if ok:
        print(f"OK  device={idx} rate={rate} name={name}")
    else:
        print(f"FAIL device={idx} name={name}")