Home / Documentation / Configuration Guide

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

EngineDescriptionCharacteristics
Edge TTSMicrosoft Edge online voicesNatural voices across many languages, no local model needed
Moss NanoA local neural TTS modelPrivacy-friendly, works offline
SAPI5Built into WindowsShipped 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