v0.7.2
Expensify/Appv0.7.2May 25, 2026by KoljaB
AI Summary
This release focuses on improving the stability and performance of PocketTTS by reworking the engine to use a persistent worker thread and optimizing memory usage on Windows. It introduces new configuration options for streaming and voice state caching.
Key Highlights
- Reworked `PocketTTSEngine` to use a persistent worker thread
- Added streaming controls (`streaming`, `max_tokens`, `frames_after_eos`)
- Added support for custom PocketTTS model configs and cached voice states
- Patched short-text streaming to decode serially, preventing memory retention issues
New Features
- Persistent worker thread for PocketTTS synthesis
- Streaming controls (max_tokens, frames_after_eos)
- Custom PocketTTS model config support
- Cached voice state support
Full Release Notes
# RealtimeTTS v0.7.2 ### Improvements * Reworked `PocketTTSEngine` to run synthesis through a persistent worker thread. * Patched PocketTTS short-text streaming to decode serially, avoiding Windows/Torch CPU memory retention during repeated short generations. * Added PocketTTS streaming controls: `streaming`, `max_tokens`, and `frames_after_eos`. * Added support for custom PocketTTS model configs via `model_config`. * Added support for cached voice states through `PocketTTSVoice(state_path=...)`. * Added optional voice-state caching through `voice_cache_dir` and `cache_voice_states`. * Improved PocketTTS audio conversion, queueing, duration tracking, and shutdown cleanup. ### Packaging * Bumped package version to `0.7.2`. * Set the PocketTTS dependency to `pocket-tts>=2.1.0`. * Refreshed explicit dependency versions, including `stream2sentence`, `openai`, `elevenlabs`, `edge-tts`, `requests`, `cartesia`, `camb-sdk`, `omnivoice`, and `typecast-python`. ### Documentation * Added PocketTTS runtime notes for the persistent worker and serial streaming behavior. * Cleaned up the README support section.