"""TTS backends: speak(items=[(text, out_wav)], seed) in the cloned narrator voice. local — qwen-tts in this process on a CUDA GPU (any machine, the default); media_node — an MCP server with generate_speech (the author's home GPU node; see media_node.py). """ def backend(cfg, ref_wav, ref_text): name = cfg.get("tts", "backend", "local") if name == "local": from .local import LocalTTS return LocalTTS(cfg, ref_wav, ref_text) if name == "media_node": from .media_node import MediaNodeTTS return MediaNodeTTS(cfg) raise SystemExit(f"unknown tts.backend {name!r}")