AgentBridge / docs /TTS.md
kocahoctpa's picture
AgentBridge showcase: docs, white paper, demo media and landing page
8f16a6b verified
|
Raw
History Blame Contribute Delete
5.28 kB

Text-to-speech (TTS)

AgentBridge speaks with two local neural TTS engines. Kokoro is the default and works on every machine, immediately, with nothing to install. Qwen3-TTS is an optional second engine for machines powerful enough to run it well.

Engines at a glance

Engine Works out of the box Model Speed When to use
Kokoro (default) Yes β€” everywhere (Windows, Linux, macOS; any CPU; no drivers, no accounts) ~325 MB, included in the archive realtime on a normal CPU Default. The voice for the chat, the phone and the podcast tool
Qwen3-TTS (optional) Only on NVIDIA GPUs with β‰₯16 GB VRAM in release builds ~5.5 GB, auto-downloaded on first use needs a powerful GPU (very slow on CPU) Higher quality / more natural voices, Italian included

The two engines are selected with the same preference:

  • /ttsengine in the terminal UI β€” shows what the current machine supports and sets the engine.
  • appsettings.json β†’ "Tts": { "Engine": "kokoro" | "qwen" } (the /ttsengine command persists here).

Release builds gate Qwen3-TTS to NVIDIA GPUs with β‰₯16 GB VRAM. On CPU the engine synthesizes at ~0.1Γ— realtime: a 30-minute podcast would occupy a normal machine for hours. To avoid blocking a user's PC, release builds simply don't offer Qwen when the required GPU is absent (the app says why and stays on Kokoro). Debug builds always allow Qwen so developers can test the engine on any machine. The check reads the running app's build configuration and probes nvidia-smi for the GPU memory.

Kokoro β€” nothing to install

  • The voices and the model (kokoro.onnx) are shipped inside every archive β€” no download, no drivers, no accounts.
  • Phonemization is fully managed (no espeak binaries), so it behaves identically on Windows, Linux and macOS, x64 and ARM64.
  • The terminal, the SIP phone bridge and the podcast tool all use this engine in-process.

Qwen3-TTS β€” what a powerful machine needs

  1. NVIDIA GPU with β‰₯16 GB VRAM (release builds enforce this; the CUDA execution provider is used automatically).
  2. The model (~5.5 GB) is downloaded automatically from HuggingFace on the first use into %LOCALAPPDATA%\ElBruno\QwenTTS (Windows) / ~/.local/share/ElBruno/QwenTTS (Linux). Only the first run pays for it.
  3. GPU acceleration (optional but recommended): the CUDA execution provider needs the NVIDIA driver plus the CUDA Toolkit and cuDNN. The engines probe the standard install directories and set the runtime PATH themselves β€” no manual configuration. Without the toolkit, Qwen still runs on the CPU (slow).

The model cache can be deleted to force a re-download. The engine falls back to Kokoro automatically if Qwen is unavailable or fails mid-task β€” a podcast never stops because of the TTS engine.

Platform prerequisites

Windows

Requirement Needed for How to install (official)
nothing Kokoro, Qwen on CPU β€”
NVIDIA driver Qwen GPU (CUDA) https://www.nvidia.com/drivers
CUDA Toolkit 12.x + cuDNN 9.x Qwen GPU (CUDA) https://developer.nvidia.com/cuda-downloads Β· https://developer.nvidia.com/cudnn
DirectX 12 any GPU fallback included with Windows 10/11

The install.ps1 one-liner detects a CUDA-capable GPU and asks whether to install the CUDA Toolkit + cuDNN silently; answering no keeps everything working on the CPU, and the GPU is picked up automatically at runtime if the toolkit is installed later.

Linux

Requirement Needed for How to install (official)
nothing Kokoro, Qwen on CPU β€”
NVIDIA driver Qwen GPU (CUDA) https://www.nvidia.com/drivers (or the distro packages, e.g. ubuntu-drivers install)
CUDA Toolkit 12.x + cuDNN 9.x Qwen GPU (CUDA) https://developer.nvidia.com/cuda-downloads (the .run installer) Β· https://developer.nvidia.com/cudnn

Kokoro needs no espeak, no native phonemizer, no audio stack: it ships everything in managed code. Qwen on CPU works with no driver at all. On Linux the CUDA runtime libraries are found through the standard loader (ldconfig) β€” nothing to set by hand.

macOS

Kokoro works out of the box. Qwen3-TTS has no CUDA path on macOS (NVIDIA GPUs are not supported by current macOS), so the Qwen engine is not available there β€” Kokoro covers all TTS.

Troubleshooting

  • /ttsengine says Qwen is not supported β€” the machine has no NVIDIA GPU with β‰₯16 GB VRAM (or no NVIDIA driver / no nvidia-smi). This is by design in release builds; the engine stays on Kokoro, which needs nothing.
  • "kokoro.onnx not found" β€” the model file is missing next to the executable; reinstall from the latest release archive (it is included).
  • The first Qwen podcast seems stuck on "downloading" β€” the ~5.5 GB model is being fetched; the progress is written to the log. Interrupting and retrying resumes the download.
  • A podcast records with Kokoro even though Qwen was selected β€” Qwen was unavailable (model download failed, GPU gate, or a synthesis error): the log contains the reason; the fallback is deliberate so the episode is never lost.