v0.7.1
kulikov0/whitelist-bypassv0.7.1May 10, 2026by KoljaB
AI Summary
This release introduces a wide array of new Text-to-Speech engines including OmniVoice, Typecast, and LuxTTS, alongside new inline voice and pause tags for dynamic control. It also includes significant improvements to the NeuTTS engine's caching and validation, plus fixes for packaging issues from the previous version.
Key Highlights
- Added 7 new TTS engines (OmniVoice, Typecast, Chatterbox Turbo, LuxTTS, SoproTTS, SopranoTTS, MOSS-TTS)
- Introduced inline voice switching and pause tags for dynamic control
- Reworked NeuTTS engine with better validation and caching
- Fixed PyPI packaging mismatch from v0.7.0
New Features
- Added OmniVoiceEngine and OmniVoiceVoice for voice cloning
- Added TypecastEngine and TypecastVoice for Typecast API synthesis
- Added ChatterboxEngine and ChatterboxVoice for prompt-audio cloning
- Added LuxTTSEngine and LuxTTSVoice for zero-shot cloning
- Added SoproTTSEngine and SoproTTSVoice with native streaming
- Added SopranoEngine and SopranoVoice for upstream support
- Added MossTTSEngine and MossTTSVoice with ONNX and torch support
- Added inline voice switching via add_voice() and remove_voice()
- Added inline pause tags with configurable durations
- Reworked NeuTTSEngine with explicit validation and caching
- Improved ZipVoice prompt caching with metadata
Full Release Notes
# RealtimeTTS v0.7.1 ### Features - **New TTS Engines** - **OmniVoice**: Added `OmniVoiceEngine` and `OmniVoiceVoice` for `k2-fsa/OmniVoice` voice cloning with reference audio and transcript support. - **Typecast**: Added `TypecastEngine` and `TypecastVoice` for Typecast API synthesis through the `typecast-python` SDK. - **Chatterbox Turbo**: Added `ChatterboxEngine` and `ChatterboxVoice` for prompt-audio voice cloning through `chatterbox-tts`. - **LuxTTS**: Added `LuxTTSEngine` and `LuxTTSVoice` for LuxTTS/ZipVoice-based zero-shot voice cloning with prompt audio and transcript support. - **SoproTTS**: Added `SoproTTSEngine` and `SoproTTSVoice` with reference-audio setup and native streaming support. - **SopranoTTS**: Added `SopranoEngine` and `SopranoVoice` for the upstream `soprano-tts` package. - **MOSS-TTS**: Added `MossTTSEngine` and `MossTTSVoice` for MOSS-TTS-Nano with ONNX and torch backend support. - **Inline Voice and Pause Tags** - Added inline voice switching in `TextToAudioStream` via `add_voice()`, `remove_voice()`, `clear_voices()`, and configurable tag delimiters. - Added inline pause tags with `add_pause()`, `remove_pause()`, `clear_pauses()`, and duration overrides such as `[pause=0.5]`. - Added `add_emotion()` / `remove_emotion()` aliases for emotion-style voice switching. - Active voice mappings are reapplied after fallback engine switches. ### Improvements - **NeuTTS** - Reworked `NeuTTSEngine` for explicit `NeuTTSVoice` validation, reference transcript checks, pre-encoded reference caching, and cleaner voice management. - Added support for separate backbone/codec devices, optional language selection, GGUF backbone cache resolution, and streaming configuration. - Added `neutts-gguf` extra for NeuTTS optional `llama`/`onnx` dependencies. - Added cleanup of reference cache and CUDA cache on shutdown. - **ZipVoice** - Improved prompt feature caching with metadata based on prompt audio identity, transcript, target RMS, feature scale, and sample rate. - Ignores stale or legacy prompt caches instead of silently reusing mismatched features. - Fixed tokenizer language argument handling for the `espeak` tokenizer path. - **Engine API Consistency** - Updated engine `synthesize()` methods to accept an optional `sentence_count` argument used by `TextToAudioStream`. - Added root lazy exports for `OmniVoiceEngine`, `TypecastEngine`, `LuxTTSEngine`, `ChatterboxEngine`, `SoproTTSEngine`, `SopranoEngine`, and `MossTTSEngine`. - Added matching exports under `RealtimeTTS.engines`. - **Packaging** - Expanded engine extras for the new local/cloud engines and broader neural-engine dependency stacks. - Added `modelslab`, `typecast`, `omnivoice`, `luxtts`, `zipvoice`, `chatterbox`, `sopro`, `soprano`, `neutts-gguf`, `styletts`, `parler`, `moss`, `moss-tts`, `pocket`, and `piper` extras. - Expanded `[all]` to include the broader engine dependency set. - Relaxed `camb-sdk` from `==1.5.8` to `>=1.5.8`. - Fixed `unidic-lite` requirement typo from `=>1.0.8` to `>=1.0.8`. - Excluded tests from built distributions. ### Fixes - Fixed the 0.7.0 PyPI packaging mismatch where `typecast` extra metadata existed but `typecast_engine.py` was missing from the distribution. - Fixed `TypecastEngine.synthesize()` to accept the stream-provided `sentence_count` argument. - Fixed Piper model config reading to use UTF-8 encoding. (#371) - Improved silence insertion so it respects stream channel count and avoids non-PCM/custom stream formats. - Preserved unknown inline tags as text instead of stripping them. - Added `tests/ref_audio.pt` to `.gitignore`. ### Documentation - Reworked the README into a compact overview with quick install, first audio, streaming, output, engine overview, and docs map. - Added focused English documentation pages for installation, quick start, engine selection, feed/playback, LLM streaming, output/files, and each concrete engine. - Added MkDocs navigation for the new English-first docs topology. - Documented engine-specific install caveats for local model checkouts, external binaries, CUDA/PyTorch choices, API keys, and manual upstream package installs. ### Tests and Examples - Added `tests/omnivoice_test.py`. - Added `tests/omnivoice_emotions.py` for inline emotion/voice tag demos. - Added emotional reference WAV assets and `reference_texts.json` for OmniVoice emotion tests. - Updated `tests/faster_qwen_emotions.py` with the full emotion dataset list. ### Notes - Some engines still require external setup that cannot be installed by Python extras alone, including Piper binaries/models, ZipVoice/LuxTTS/MOSS upstream assets, CUDA-specific PyTorch wheels, provider accounts, and local model files. - No intentional breaking changes.