← Back to PRs

#8849: feat(tts): Add Chatterbox and Piper as first-class TTS providers

by emadomedher open 2026-02-04 13:55 View on GitHub →
stale
## Summary Adds two local TTS providers: **Chatterbox** (CUDA-accelerated) and **Piper** (CPU-efficient). ## Providers ### Chatterbox TTS - CUDA-accelerated for high-quality voice synthesis - Local server, no API costs - Supports voice messages on Matrix/Telegram/Discord ### Piper TTS - Lightweight CPU-based TTS - Multiple voice models - Fast synthesis for lower-end hardware ## Configuration **⚠️ Important:** Both providers require `enabled: true` to be explicitly set in the configuration, even when specified as the primary provider. ### Chatterbox: ```json { "messages": { "tts": { "provider": "chatterbox", "chatterbox": { "enabled": true, "baseUrl": "http://localhost:8100", "voice": "default" } } } } ``` ### Piper: ```json { "messages": { "tts": { "provider": "piper", "piper": { "enabled": true, "baseUrl": "http://localhost:8101", "voice": "en_US-lessac-high" } } } } ``` ## Auth Profiles Like other first-class providers, Chatterbox and Piper require auth profile entries in `~/.openclaw/agents/main/agent/auth-profiles.json`, even for local services that don't require authentication: ```json { "profiles": { "chatterbox:local": { "type": "token", "provider": "chatterbox", "token": "not-needed" }, "piper:local": { "type": "token", "provider": "piper", "token": "not-needed" } } } ``` Without these entries, TTS calls will silently fail with "No API key found" errors. ## Changes - Added Chatterbox provider implementation - Added Piper provider implementation - Fixed Zod schema to include chatterbox validation - Updated TypeScript types ## Testing - Tested with local Chatterbox and Piper servers - Verified voice message generation on Matrix - Confirmed auth profile requirement

Most Similar PRs