File size: 2,351 Bytes
ef0d09e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
851495c
ef0d09e
851495c
ef0d09e
1cbd55c
 
 
 
 
 
851495c
1cbd55c
851495c
1cbd55c
ef0d09e
 
 
 
 
 
 
 
 
 
 
1cbd55c
 
ef0d09e
 
 
 
 
 
 
 
 
 
 
851495c
 
ef0d09e
1cbd55c
 
 
 
 
 
851495c
 
1cbd55c
ef0d09e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
"""
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