v0.7.1
JackismyShephard/ultimate-rvcv0.7.1May 10, 2026by KoljaB
AI Summary
Introduces seven new TTS engines including OmniVoice, Typecast, and LuxTTS, alongside new inline voice and pause control tags. The update also significantly enhances the NeuTTS engine and expands documentation.
Key Highlights
- Added seven new TTS engines: OmniVoice, Typecast, Chatterbox, LuxTTS, SoproTTS, Soprano, and MOSS-TTS.
- Introduced inline voice and pause tags for dynamic control within streams.
- Reworked NeuTTS engine with improved validation, GGUF support, and caching.
- Expanded documentation with a compact README and focused English pages.
New Features
- OmniVoiceEngine and OmniVoiceVoice
- TypecastEngine and TypecastVoice
- ChatterboxEngine and ChatterboxVoice
- LuxTTSEngine and LuxTTSVoice
- SoproTTSEngine and SoproTTSVoice
- SopranoEngine and SopranoVoice
- MossTTSEngine and MossTTSVoice
- Inline voice switching methods (add_voice, remove_voice, clear_voices)
- Inline pause tags with duration overrides
- NeuTTS GGUF backbone support
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.