liumaolin
refactor(core): Architecturally decouple Audio, ASR, and TTS modules
60f8238
"""
Models Module
TTS模型定义模块,包含:
- 基础配置抽象类
- 各种TTS引擎的配置模型
- 全局配置注册表
"""
from .base import (
TTSConfigType,
VoiceModelStatus,
BaseTTSConfig,
TTSConfigRegistry,
tts_config_registry
)
# 导入具体的配置模型
try:
from .moyoyo import MoYoYoTTSConfig
_moyoyo_available = True
except ImportError:
_moyoyo_available = False
from voice_dialogue.utils.logger import logger
logger.warning("MoYoYo TTS config not available")
try:
from .kokoro import KokoroTTSConfig
_kokoro_available = True
except ImportError:
_kokoro_available = False
from voice_dialogue.utils.logger import logger
logger.warning("Kokoro TTS config not available")
# 动态构建导出列表
__all__ = [
'TTSConfigType',
'VoiceModelStatus',
'BaseTTSConfig',
'TTSConfigRegistry',
'tts_config_registry',
]
if _moyoyo_available:
__all__.append('MoYoYoTTSConfig')
if _kokoro_available:
__all__.append('KokoroTTSConfig')
# 自动注册所有可用的配置
def _auto_register_configs():
"""自动注册所有TTS配置"""
try:
if _moyoyo_available:
from ..configs.moyoyo import get_moyoyo_configs
for config in get_moyoyo_configs():
tts_config_registry.register_config(config)
except Exception as e:
from voice_dialogue.utils.logger import logger
logger.error(f"Failed to auto-register configs: {e}")
try:
if _kokoro_available:
from ..configs.kokoro import get_kokoro_configs
for config in get_kokoro_configs():
tts_config_registry.register_config(config)
except Exception as e:
from voice_dialogue.utils.logger import logger
logger.error(f"Failed to auto-register configs: {e}")
# 模块加载时自动注册配置
_auto_register_configs()
# 配置统计信息
def get_config_stats():
"""获取配置统计信息"""
all_configs = tts_config_registry.get_all_configs()
stats = {
'total_configs': len(all_configs),
'configs_by_type': {}
}
for config_type in TTSConfigType:
type_configs = tts_config_registry.get_configs_by_type(config_type)
stats['configs_by_type'][config_type.value] = len(type_configs)
return stats