Major refactoring and bug fixes 🔧 Technical Architecture: - Modular engine architecture with separated concerns - Improved ChatterBox and F5-TTS engine isolation - Better error handling and import management 🐛 Critical Bug Fixes: - Fixed F5-TTS edit functionality broken by refactoring - Restored sophisticated audio compositing system - Fixed language model discovery (F5-TTS showing all languages again) - Fixed missing exports in engine __init__.py files - Corrected method signatures for F5-TTS edit operations 🌍 Language Support: - Fixed ChatterBox language model enumeration - Restored F5-TTS multilingual model discovery - Fixed SRT node multilingual engine adapter access ⚡ Performance & Quality: - Restored advanced segment-by-segment audio compositing - Fixed edit region timing mapping for generated audio - Maintained backward compatibility with existing workflows
36 lines
1.3 KiB
Python
36 lines
1.3 KiB
Python
"""
|
|
F5-TTS Integration Package for ChatterBox Voice
|
|
Provides F5-TTS functionality following ChatterBox patterns
|
|
"""
|
|
|
|
# Set up global warning filters for F5-TTS
|
|
import warnings
|
|
|
|
# Filter out specific warning messages that may come from F5-TTS dependencies
|
|
warnings.filterwarnings("ignore", message=".*torch.load.*")
|
|
warnings.filterwarnings("ignore", message=".*deprecated.*")
|
|
|
|
# Import F5-TTS modules with error handling
|
|
F5TTS_IMPORT_ERROR = None
|
|
try:
|
|
with warnings.catch_warnings():
|
|
warnings.simplefilter("ignore")
|
|
from .f5tts import ChatterBoxF5TTS, get_f5tts_models
|
|
F5TTS_AVAILABLE = True
|
|
except ImportError as e:
|
|
F5TTS_AVAILABLE = False
|
|
F5TTS_IMPORT_ERROR = str(e)
|
|
# Create dummy class for compatibility
|
|
class ChatterBoxF5TTS:
|
|
@classmethod
|
|
def from_pretrained(cls, device):
|
|
raise ImportError(f"F5-TTS not available: {F5TTS_IMPORT_ERROR}")
|
|
@classmethod
|
|
def from_local(cls, path, device, model_name):
|
|
raise ImportError(f"F5-TTS not available: {F5TTS_IMPORT_ERROR}")
|
|
|
|
# Create dummy function for compatibility
|
|
def get_f5tts_models():
|
|
return ["F5TTS_Base", "F5TTS_v1_Base", "E2TTS_Base"]
|
|
|
|
__all__ = ['ChatterBoxF5TTS', 'get_f5tts_models', 'F5TTS_AVAILABLE', 'F5TTS_IMPORT_ERROR'] |