Speech Synthesis (TTS)
Multiple synthesis engines
Neurova ships TTSManager, which picks an available speech synthesis engine through an engine fallback chain (Edge TTS / Moss Nano / SAPI5) — working out of the box with zero configuration.
Supported engines
| Engine | Description | Characteristics |
|---|---|---|
| Edge TTS | Microsoft Edge online voices | Natural voices across many languages, no local model needed |
| Moss Nano | A local neural TTS model | Privacy-friendly, works offline |
| SAPI5 | Built into Windows | Shipped with the OS, no extra dependencies |
Core features
- Automatic fallback: if initialization fails, the next engine is tried
- Model download: model_downloader fetches local models into the models/ directory
- Statistics: engine_name/stats reports the current engine and its runtime state
- Asynchronous interface: async initialize plus synthesis
Configuration
from neurova.tts import TTSManager
tts = TTSManager()
await tts.initialize() # picks an available engine automatically
await tts.synthesize("Hello, I am Zhixing", output="out.mp3")
Related endpoints
GET /api/v1/audio/tts/engines # list available engines
POST /api/v1/audio/tts/synthesize # synthesize speech (text to audio)
Key files
neurova/tts/
├── manager.py # TTSManager (engine fallback + statistics)
├── edge_tts.py # Edge TTS engine
├── moss_nano.py # Moss Nano model
├── sapi5_tts.py # SAPI5 Windows engine
└── model_downloader.py # model downloading