Major fixes for VibeVoice engine functionality:
Audio Quality Improvements:
- Replace linear interpolation resampling with librosa.resample (matches official)
- Fix normalization to use -25 dB FS RMS instead of peak normalization (matches official)
- Implement proper stereo-to-mono conversion with channel averaging (matches official)
Multi-Character Voice Switching:
- Add proper character mapping using get_character_mapping() like F5-TTS does
- Build complete voice_mapping with fallbacks for all parsed characters
- Fix character parser to auto-discover characters when available_characters is None
- Remove unnecessary fallback logic from processor (handled at wrapper level)
Pause Tag Support:
- Add modular pause tag processing like F5-TTS using generate_vibevoice_with_pause_tags()
- Integrate PauseTagProcessor for [pause:X] support in VibeVoice
- Follow established modular pattern from F5-TTS and ChatterBox implementations
Cache System Improvements:
- Fix floating point precision issues in cache key generation (round to 3 decimals)
- Add proper parameter propagation to cached engine instances
- Ensure cache keys include all generation parameters properly
All changes tested and working - multi-character switching now works correctly
and pause tags are processed properly using the modular system.
Major refactoring to simplify Higgs Audio voice system and fix reference text usage:
### Voice Preset System Removal:
- Remove voice_preset parameter from engine node, adapter, and core engine
- Remove load_voice_presets() and get_voice_preset_path() methods
- Remove voice preset validation and fallback logic
- Convert JSON voice config to standard .wav + .txt files
### Reference Text Fixes:
- Fix character mapping to use f5tts engine type for proper text loading
- Characters now use their own reference text files (not narrator fallback)
- Only narrator voice uses narrator reference text (logical consistency)
- Add comprehensive reference text debugging to console logs
### Parameter Improvements:
- Update defaults based on user testing: temp 0.8, top_p 0.6, top_k 80
- Allow max_new_tokens minimum of 1 for complete flexibility
- Update tooltips to reflect new recommended values
### Console Log Cleanup:
- Consolidate verbose character loading messages
- Show reference text usage clearly without technical clutter
- Replace tensor shape logs with duration-based messages
### Narrator Fallback Hierarchy:
- Priority 1: opt_narrator (Character Voices node)
- Priority 2: narrator_voice dropdown
- Priority 3: Mapped narrator (David Attenborough from alias map)
- Priority 4: None (basic TTS)
This significantly improves voice cloning quality and system consistency.
- Add [language:character] syntax support for multilingual TTS
- Implement language model switching for F5-TTS and ChatterBox
- Add cache optimization to skip model loading when all segments cached
- Fix character parser setup order to ensure proper character recognition
- Add pause tag awareness to cache pre-checking
- Support language defaults in character alias files
- Update documentation with language switching examples
- Fixed ChatterBox sequential generation bug causing CUDA tensor indexing crashes
- Added dynamic space padding for short text segments in character switching mode
- Space padding preserves speech quality while providing sufficient tokens
- Improved version bump script to prevent downgrade attempts
Implement user-friendly character alias system with #character_alias_map.txt file
Support flexible alias formats: 'Alias = Character' and 'Alias[TAB]Character' with smart parsing
Add comprehensive alias documentation to CHARACTER_SWITCHING_GUIDE.md with examples
Update README features to highlight new alias system and improve emoji clarity
Replace old JSON character_alias_map.json with more accessible text format
Maintain backward compatibility with existing JSON files for seamless migration
Fix character discovery system to use filename-based character names instead of folder names
Folders now used for organization only, improving usability and clarity
Update character switching documentation to reflect new system
- Implement universal character parsing for [Character] tags in text
- Add voice discovery system with flat file and folder structure support
- Integrate character switching into all TTS nodes (F5TTS, ChatterBox, SRT)
- Add character alias mapping system with JSON configuration files
- Support both models/voices/ and voices_examples/ directories with priority
- Preserve line-by-line processing in SRT mode for natural narrator fallback
- Maintain all existing functionality including chunking and caching systems
- Add robust fallback system for missing characters
- Include comprehensive user guide and documentation
Features:
- Use [CharacterName] tags to switch voices seamlessly
- Character aliases: map "Bob" -> "Clint_Eastwood CC3 (enhanced2)"
- Automatic voice discovery from file structure
- Works with both F5TTS (audio+text) and ChatterBox (audio-only) engines
- SRT subtitle support with character switching
- Graceful fallback to narrator voice for unknown characters
- Performance optimized with character-aware caching
- Support both models/voices/ and voices_examples/ folders
- Smart text file priority: .reference.txt > .txt for F5-TTS reference text
- Recursive folder scanning with performance caching
- Update F5TTS nodes to use new voice discovery system
- Maintain backward compatibility with existing voice files