Integrated all 5 upstream commits with custom modifications preserved: 1. Empty generator fix (750d9d9) - Refactored infer() to generator pattern - Created wrapper infer() that delegates to infer_generator() - Renamed monolithic method to infer_generator() - Changed final returns to yield for generator compatibility - Handles both streaming and non-streaming modes 2. Streaming implementation (b0c6ab8) - Added low-latency streaming - Added stream_return parameter for generator mode - Added more_segment_before parameter for streaming segmentation - Integrated with generator-based inference 3. UNK token warnings (34be9bf) - Token validation and user feedback - Detects unknown tokens in BPE model - Warns users with token IDs and suggestions 4. S2Mel optimization (31e7e85) - Mel-spectrogram generation speedup - Optimized fused_add_tanh_sigmoid_multiply() with torch.split - Fixed sequence_mask() with max_length parameter - Added enable_torch_compile() to CFM and MyModel classes - Added use_torch_compile parameter to infer_v2.py 5. GPT2 acceleration (c1ef414) - KV-cache and FlashAttention optimization - Created new /accel/ module with 5 files (609-2500 lines) - Added use_accel parameter to UnifiedVoice - Integrated AccelInferenceEngine for 1.5-3x speedup - Optional feature (requires flash-attn library) Custom modifications preserved: - QwenEmotion lazy loading with path fallbacks - W2V-BERT loading from TTS folder (unified downloader integration) - All custom logging and error handling - Custom emotion vector processing Generated upstream tracking documentation in docs/Upstream_Engine_Tracking/
197 lines
8.7 KiB
Markdown
197 lines
8.7 KiB
Markdown
# Upstream TTS Engines Tracking Index
|
|
|
|
This document provides a centralized reference for monitoring updates to all bundled TTS engines. Each engine has its own update log file tracking changes, bug fixes, and new features from the official upstream repository.
|
|
|
|
**Last Updated:** 2025-11-06
|
|
|
|
---
|
|
|
|
## Quick Reference Table
|
|
|
|
| Engine | Bundled Source | Location | Official Repository | Update Log | Last Checked |
|
|
|--------|---------|----------|---------------------|------------|--------------|
|
|
| **IndexTTS-2** | ✅ Full | `engines/index_tts/indextts/` | [github.com/index-tts/index-tts](https://github.com/index-tts/index-tts) | [INDEXTTS2_UPDATE_LOG.md](./INDEXTTS2_UPDATE_LOG.md) | 2025-11-06 |
|
|
| **ChatterBox** | ✅ Full | `engines/chatterbox/` | [github.com/resemble-ai/chatterbox](https://github.com/resemble-ai/chatterbox) | [CHATTERBOX_UPDATE_LOG.md](./CHATTERBOX_UPDATE_LOG.md) | TBD |
|
|
| **ChatterBox Multilingual (23-Lang)** | ✅ Full | `engines/chatterbox_official_23lang/` | [github.com/resemble-ai/chatterbox](https://github.com/resemble-ai/chatterbox) | [CHATTERBOX_UPDATE_LOG.md](./CHATTERBOX_UPDATE_LOG.md) | TBD |
|
|
| **F5-TTS** | ✅ Full | `engines/f5_tts/` | [github.com/SWivid/F5-TTS](https://github.com/SWivid/F5-TTS) | [F5TTS_UPDATE_LOG.md](./F5TTS_UPDATE_LOG.md) | TBD |
|
|
| **Higgs Audio** | ✅ Full | `engines/higgs_audio/boson_multimodal/` | [github.com/boson-ai/higgs-audio](https://github.com/boson-ai/higgs-audio) | [HIGGS_AUDIO_UPDATE_LOG.md](./HIGGS_AUDIO_UPDATE_LOG.md) | TBD |
|
|
| **RVC** | ✅ Full | `engines/rvc/` | [github.com/RVC-Project/Retrieval-based-Voice-Conversion](https://github.com/RVC-Project/Retrieval-based-Voice-Conversion) | [RVC_UPDATE_LOG.md](./RVC_UPDATE_LOG.md) | TBD |
|
|
| **VibeVoice** | ⚠️ Wrapper Only | `engines/vibevoice_engine/` | [github.com/microsoft/VibeVoice](https://github.com/microsoft/VibeVoice) ⚠️ Disabled | [VIBEVOICE_UPDATE_LOG.md](./VIBEVOICE_UPDATE_LOG.md) | TBD |
|
|
|
|
---
|
|
|
|
## Engine Status Details
|
|
|
|
### ✅ Fully Bundled Engines (Source Code Included)
|
|
|
|
These engines have their complete source code bundled in the TTS Audio Suite repository:
|
|
|
|
1. **IndexTTS-2** - Full inference code and models bundled
|
|
2. **ChatterBox** - Full model and inference code bundled
|
|
3. **ChatterBox Multilingual** - Wrapper around same ChatterBox repo with language support
|
|
4. **F5-TTS** - Full source code with configs, models, and training scripts
|
|
5. **Higgs Audio** - Full boson_multimodal framework bundled
|
|
6. **RVC** - Complete voice conversion implementation
|
|
|
|
### ⚠️ Wrapper-Only Engines
|
|
|
|
These are external dependencies integrated via wrappers:
|
|
|
|
- **VibeVoice** - Wrapper around Microsoft's `vibevoice` PyPI package (⚠️ **Note**: Official repo is disabled by Microsoft as of Sept 2025)
|
|
|
|
---
|
|
|
|
## Update Checking Workflow
|
|
|
|
### Manual Checking (via slash command)
|
|
```bash
|
|
/check_tts_bundled_updates [engine_name] [--verbose]
|
|
```
|
|
|
|
Examples:
|
|
- `/check_tts_bundled_updates` - Check ALL engines
|
|
- `/check_tts_bundled_updates IndexTTS-2` - Check specific engine
|
|
- `/check_tts_bundled_updates ChatterBox --verbose` - Verbose output with detailed diffs
|
|
|
|
### What Gets Checked
|
|
|
|
For each engine, the process:
|
|
1. Clones/updates the official upstream repository
|
|
2. Compares commit history since last check
|
|
3. Identifies new features, bug fixes, breaking changes
|
|
4. Updates the engine's UPDATE_LOG.md file
|
|
5. Flags items requiring integration
|
|
|
|
### Priority Levels for Updates
|
|
|
|
- 🔴 **Critical**: Security fixes, breaking changes, major bug fixes
|
|
- 🟡 **Important**: New features, performance improvements, compatibility updates
|
|
- 🟢 **Nice-to-have**: Documentation, minor tweaks, non-critical improvements
|
|
|
|
---
|
|
|
|
## Individual Engine Logs
|
|
|
|
Each engine has its own update log tracking:
|
|
- **Date checked**: When upstream was last reviewed
|
|
- **New commits**: List of changes since last version
|
|
- **Actionable items**: What needs integration/testing
|
|
- **Integration status**: Whether changes have been applied
|
|
|
|
See individual UPDATE_LOG.md files in this directory for details.
|
|
|
|
---
|
|
|
|
## Integration Checklist
|
|
|
|
When integrating upstream updates:
|
|
|
|
- [ ] Read upstream changelog/commits
|
|
- [ ] Identify compatibility issues with our wrapper code
|
|
- [ ] Create backup of current bundled code
|
|
- [ ] Apply changes incrementally
|
|
- [ ] Run full test suite
|
|
- [ ] Document any conflicts or customizations we maintain
|
|
- [ ] Update version in nodes.py if integration warrants version bump
|
|
- [ ] Commit with reference to upstream changes
|
|
|
|
---
|
|
|
|
## Known Customizations We Maintain
|
|
|
|
### IndexTTS-2
|
|
- Audio normalization fix for Linux (v4.14.15) - **Not in upstream**
|
|
- Custom processor wrapper for unified interface
|
|
- Audio amplitude normalization to handle platform-specific torchaudio.load() behavior
|
|
|
|
### ChatterBox (both versions)
|
|
- Unified adapter pattern for consistent interface
|
|
- Integration with unified node architecture
|
|
|
|
### F5-TTS
|
|
- Unified adapter pattern for consistent interface
|
|
|
|
### Higgs Audio
|
|
- Unified adapter pattern for consistent interface
|
|
|
|
### RVC
|
|
- Complete custom implementation for TTS Audio Suite
|
|
|
|
### VibeVoice
|
|
- Wrapper around external vibevoice package
|
|
- ⚠️ **Status**: Microsoft disabled official repo in Sept 2025 - consider migration path
|
|
|
|
---
|
|
|
|
## Related Documentation
|
|
|
|
- [NEW_ENGINE_IMPLEMENTATION_GUIDE.md](../NEW_ENGINE_IMPLEMENTATION_GUIDE.md) - How to integrate new engines
|
|
- [INDEXTTS2_UPDATE_LOG.md](./INDEXTTS2_UPDATE_LOG.md) - IndexTTS-2 specific tracking
|
|
- [../DEPENDENCY_MANAGEMENT_GUIDE.md](../DEPENDENCY_MANAGEMENT_GUIDE.md) - Dependency compatibility
|
|
- [../BUMP_SCRIPT_INSTRUCTIONS.md](../BUMP_SCRIPT_INSTRUCTIONS.md) - Version management
|
|
|
|
---
|
|
|
|
## Source Code Location Details
|
|
|
|
### Where to Find the Bundled Engine Source Code
|
|
|
|
| Engine | Main Source Files | Config/Models | Processor/Adapter |
|
|
|--------|-------------------|---------------|-------------------|
|
|
| IndexTTS-2 | `engines/index_tts/indextts/` (infer.py, infer_v2.py, gpt/, s2mel/) | `engines/index_tts/indextts/` | `engines/processors/index_tts_processor.py` |
|
|
| ChatterBox | `engines/chatterbox/chatterbox/` (models, inference) | `engines/chatterbox/models/` | `engines/adapters/chatterbox_adapter.py` |
|
|
| ChatterBox Multilingual | `engines/chatterbox_official_23lang/` (tts.py, models/*, language_models.py) | `engines/chatterbox_official_23lang/models/` | `engines/processors/` |
|
|
| F5-TTS | `engines/f5_tts/` (src/, model/, infer/) | `engines/f5_tts/configs/` | `engines/f5tts/f5tts.py` (adapter) |
|
|
| Higgs Audio | `engines/higgs_audio/boson_multimodal/` (full framework) | `engines/higgs_audio/boson_multimodal/model/` | `engines/adapters/higgs_audio_adapter.py` |
|
|
| RVC | `engines/rvc/impl/` (inference, models) | `engines/rvc/impl/lib/` | `engines/rvc/rvc_engine.py` |
|
|
| VibeVoice | External package: `vibevoice` (PyPI) | Downloaded at runtime | `engines/vibevoice_engine/vibevoice_engine.py` |
|
|
|
|
### Key File Patterns to Check When Updating
|
|
|
|
**Inference/Generation Code:**
|
|
- IndexTTS-2: `engines/index_tts/indextts/infer_v2.py`
|
|
- ChatterBox: `engines/chatterbox/chatterbox/inference.py` or `tts.py`
|
|
- F5-TTS: `engines/f5_tts/src/f5_tts/infer/`
|
|
- Higgs Audio: `engines/higgs_audio/boson_multimodal/serve/serve_engine.py`
|
|
- RVC: `engines/rvc/impl/infer_pack/`
|
|
|
|
**Model Loading:**
|
|
- IndexTTS-2: `engines/index_tts/indextts/infer_v2.py` (model initialization)
|
|
- ChatterBox: `engines/chatterbox/chatterbox/models/`
|
|
- F5-TTS: `engines/f5_tts/src/f5_tts/model/`
|
|
- Higgs Audio: `engines/higgs_audio/boson_multimodal/model/higgs_audio.py`
|
|
- RVC: `engines/rvc/impl/infer_pack/modules.py`
|
|
|
|
**Audio Processing:**
|
|
- IndexTTS-2: `engines/index_tts/indextts/infer_v2.py` (audio normalization, vocoding)
|
|
- ChatterBox: Check audio post-processing in inference methods
|
|
- F5-TTS: `engines/f5_tts/` audio handling
|
|
- All: Look for clamp, normalize, scale operations
|
|
|
|
---
|
|
|
|
## Important Notes
|
|
|
|
- **ChatterBox and ChatterBox Multilingual** both use the same official repository: `github.com/resemble-ai/chatterbox`
|
|
- The difference is in implementation: one focuses on single-language, the other on 23-language support
|
|
- They share the same upstream to track for updates
|
|
|
|
- **VibeVoice** is NOT actively maintained - Microsoft disabled the official GitHub repository
|
|
- Consider evaluating alternatives or pinning to a specific version
|
|
- The wrapper depends on the external `vibevoice` PyPI package
|
|
|
|
- **F5-TTS** vs **f5tts** directories:
|
|
- `f5_tts/` = Full bundled source code (official implementation from SWivid)
|
|
- `f5tts/` = Wrapper/adapter layer only (NOT the official source code)
|
|
|
|
---
|
|
|
|
## Next Steps
|
|
|
|
1. ✅ Document all official upstream repositories
|
|
2. ✅ Identify which code is bundled vs wrapped
|
|
3. ✅ Implement `/check_tts_bundled_updates` slash command
|
|
4. ⏳ Create UPDATE_LOG.md for each engine (in progress)
|
|
5. ⏳ Establish regular checking schedule (weekly/monthly)
|
|
6. ⏳ Create integration PR template for upstream changes
|