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.