liumaolin
commited on
Commit
·
efefd3d
1
Parent(s):
2ebe57f
更新MoYoYo语音模型配置,新增优先级字段
Browse files- 在`moyoyo.py`中为多个角色模型添加`priority`字段,以便于根据优先级进行排序。
- 修改`TTSConfigRegistry`类中的排序逻辑,确保根据角色优先级进行正确排序。
- 更新`MoYoYoTTSConfig`类,添加优先级属性以支持新功能。
src/voice_dialogue/services/audio/generators/configs/moyoyo.py
CHANGED
|
@@ -15,6 +15,7 @@ MOYOYO_TTS_CONFIGS = [
|
|
| 15 |
{
|
| 16 |
'repository': 'MoYoYoTech/tone-models',
|
| 17 |
'character_name': 'Doubao',
|
|
|
|
| 18 |
'cover_image': 'https://huggingface.co/MoYoYoTech/tone-models/resolve/main/cover/doubao.png',
|
| 19 |
'description': '豆包是MoYoYo的虚拟助手,能陪你聊天解闷,不管是聊生活趣事,知识科普还是帮你出主意,我都在行哦。',
|
| 20 |
'file_size': '240M',
|
|
@@ -44,6 +45,7 @@ MOYOYO_TTS_CONFIGS = [
|
|
| 44 |
{
|
| 45 |
'repository': 'MoYoYoTech/tone-models',
|
| 46 |
'character_name': 'Luo Xiang',
|
|
|
|
| 47 |
'cover_image': 'https://huggingface.co/MoYoYoTech/tone-models/resolve/main/cover/luoxiang.png',
|
| 48 |
'description': '著名法学教授罗翔的AI语音模型,具有其独特的幽默风趣和深入浅出的讲解风格,擅长用生动的比喻和案例阐述复杂的法理问题。',
|
| 49 |
'file_size': '240M',
|
|
@@ -73,6 +75,7 @@ MOYOYO_TTS_CONFIGS = [
|
|
| 73 |
{
|
| 74 |
'repository': 'MoYoYoTech/tone-models',
|
| 75 |
'character_name': 'Ma Baoguo',
|
|
|
|
| 76 |
'cover_image': 'https://huggingface.co/MoYoYoTech/tone-models/resolve/main/cover/mabaoguo.png',
|
| 77 |
'description': '太极大师马保国的AI语音模型,带有其标志性的口音和语调特色,以及独特的武学理论表达方式,适合制作娱乐性内容。',
|
| 78 |
'file_size': '241M',
|
|
@@ -103,6 +106,7 @@ MOYOYO_TTS_CONFIGS = [
|
|
| 103 |
{
|
| 104 |
'repository': 'MoYoYoTech/tone-models',
|
| 105 |
'character_name': 'Shen Yi',
|
|
|
|
| 106 |
'cover_image': 'https://huggingface.co/MoYoYoTech/tone-models/resolve/main/cover/shenyi.png',
|
| 107 |
'description': '知名网络主播沈逸的AI语音模型,具有其独特的理性分析风格和富有磁性的嗓音,擅长深度解读时事和国际政治话题。',
|
| 108 |
'file_size': '241M',
|
|
@@ -132,6 +136,7 @@ MOYOYO_TTS_CONFIGS = [
|
|
| 132 |
{
|
| 133 |
'repository': 'MoYoYoTech/tone-models',
|
| 134 |
'character_name': 'Yang Mi',
|
|
|
|
| 135 |
'cover_image': 'https://huggingface.co/MoYoYoTech/tone-models/resolve/main/cover/yangmi.png',
|
| 136 |
'description': '著名演员杨幂的AI语音模型,拥有其清甜动人的声线和自然流畅的表达方式,适合制作各类娱乐和时尚内容。',
|
| 137 |
'file_size': '241M',
|
|
@@ -162,6 +167,7 @@ MOYOYO_TTS_CONFIGS = [
|
|
| 162 |
{
|
| 163 |
'repository': 'MoYoYoTech/tone-models',
|
| 164 |
'character_name': 'Zhou Jielun',
|
|
|
|
| 165 |
'cover_image': 'https://huggingface.co/MoYoYoTech/tone-models/resolve/main/cover/zhoujielun.png',
|
| 166 |
'description': '华语歌王周杰伦的AI语音模型,具有其标志性的说话风格和音乐气质,带有台湾口音特色,适合音乐和创意内容制作。',
|
| 167 |
'file_size': '241M',
|
|
@@ -192,6 +198,7 @@ MOYOYO_TTS_CONFIGS = [
|
|
| 192 |
{
|
| 193 |
'repository': 'MoYoYoTech/tone-models',
|
| 194 |
'character_name': 'Ma Yun',
|
|
|
|
| 195 |
'cover_image': 'https://huggingface.co/MoYoYoTech/tone-models/resolve/main/cover/mayun.png',
|
| 196 |
'description': '阿里巴巴创始人马云的AI语音模型,具有其富有激情的演讲风格和独特的商业洞察表达方式,适合商业和励志内容制作。',
|
| 197 |
'file_size': '241M',
|
|
@@ -221,6 +228,7 @@ MOYOYO_TTS_CONFIGS = [
|
|
| 221 |
{
|
| 222 |
'repository': 'MoYoYoTech/tone-models',
|
| 223 |
'character_name': 'Maple',
|
|
|
|
| 224 |
'cover_image': '',
|
| 225 |
'description': '轻松坦率',
|
| 226 |
'file_size': '241M',
|
|
@@ -250,6 +258,7 @@ MOYOYO_TTS_CONFIGS = [
|
|
| 250 |
{
|
| 251 |
'repository': 'MoYoYoTech/tone-models',
|
| 252 |
'character_name': 'Cove',
|
|
|
|
| 253 |
'cover_image': '',
|
| 254 |
'description': '沉稳直率',
|
| 255 |
'file_size': '241M',
|
|
@@ -279,6 +288,7 @@ MOYOYO_TTS_CONFIGS = [
|
|
| 279 |
{
|
| 280 |
'repository': 'MoYoYoTech/tone-models',
|
| 281 |
'character_name': 'Juniper',
|
|
|
|
| 282 |
'cover_image': '',
|
| 283 |
'description': '开放豁达',
|
| 284 |
'file_size': '241M',
|
|
@@ -308,6 +318,7 @@ MOYOYO_TTS_CONFIGS = [
|
|
| 308 |
{
|
| 309 |
'repository': 'MoYoYoTech/tone-models',
|
| 310 |
'character_name': 'Ellen',
|
|
|
|
| 311 |
'cover_image': '',
|
| 312 |
'description': '美国脱口秀主持人Ellen DeGeneres的AI语音模型,具有其标志性的幽默风格和独特的表达方式,适合制作娱乐和创意内容。',
|
| 313 |
'file_size': '241M',
|
|
@@ -337,6 +348,7 @@ MOYOYO_TTS_CONFIGS = [
|
|
| 337 |
{
|
| 338 |
'repository': 'MoYoYoTech/tone-models',
|
| 339 |
'character_name': 'Bai Yansong',
|
|
|
|
| 340 |
'cover_image': '',
|
| 341 |
'description': '',
|
| 342 |
'file_size': '241M',
|
|
|
|
| 15 |
{
|
| 16 |
'repository': 'MoYoYoTech/tone-models',
|
| 17 |
'character_name': 'Doubao',
|
| 18 |
+
'priority': 10,
|
| 19 |
'cover_image': 'https://huggingface.co/MoYoYoTech/tone-models/resolve/main/cover/doubao.png',
|
| 20 |
'description': '豆包是MoYoYo的虚拟助手,能陪你聊天解闷,不管是聊生活趣事,知识科普还是帮你出主意,我都在行哦。',
|
| 21 |
'file_size': '240M',
|
|
|
|
| 45 |
{
|
| 46 |
'repository': 'MoYoYoTech/tone-models',
|
| 47 |
'character_name': 'Luo Xiang',
|
| 48 |
+
'priority': 8,
|
| 49 |
'cover_image': 'https://huggingface.co/MoYoYoTech/tone-models/resolve/main/cover/luoxiang.png',
|
| 50 |
'description': '著名法学教授罗翔的AI语音模型,具有其独特的幽默风趣和深入浅出的讲解风格,擅长用生动的比喻和案例阐述复杂的法理问题。',
|
| 51 |
'file_size': '240M',
|
|
|
|
| 75 |
{
|
| 76 |
'repository': 'MoYoYoTech/tone-models',
|
| 77 |
'character_name': 'Ma Baoguo',
|
| 78 |
+
'priority': 6,
|
| 79 |
'cover_image': 'https://huggingface.co/MoYoYoTech/tone-models/resolve/main/cover/mabaoguo.png',
|
| 80 |
'description': '太极大师马保国的AI语音模型,带有其标志性的口音和语调特色,以及独特的武学理论表达方式,适合制作娱乐性内容。',
|
| 81 |
'file_size': '241M',
|
|
|
|
| 106 |
{
|
| 107 |
'repository': 'MoYoYoTech/tone-models',
|
| 108 |
'character_name': 'Shen Yi',
|
| 109 |
+
'priority': 7,
|
| 110 |
'cover_image': 'https://huggingface.co/MoYoYoTech/tone-models/resolve/main/cover/shenyi.png',
|
| 111 |
'description': '知名网络主播沈逸的AI语音模型,具有其独特的理性分析风格和富有磁性的嗓音,擅长深度解读时事和国际政治话题。',
|
| 112 |
'file_size': '241M',
|
|
|
|
| 136 |
{
|
| 137 |
'repository': 'MoYoYoTech/tone-models',
|
| 138 |
'character_name': 'Yang Mi',
|
| 139 |
+
'priority': 9,
|
| 140 |
'cover_image': 'https://huggingface.co/MoYoYoTech/tone-models/resolve/main/cover/yangmi.png',
|
| 141 |
'description': '著名演员杨幂的AI语音模型,拥有其清甜动人的声线和自然流畅的表达方式,适合制作各类娱乐和时尚内容。',
|
| 142 |
'file_size': '241M',
|
|
|
|
| 167 |
{
|
| 168 |
'repository': 'MoYoYoTech/tone-models',
|
| 169 |
'character_name': 'Zhou Jielun',
|
| 170 |
+
'priority': 9,
|
| 171 |
'cover_image': 'https://huggingface.co/MoYoYoTech/tone-models/resolve/main/cover/zhoujielun.png',
|
| 172 |
'description': '华语歌王周杰伦的AI语音模型,具有其标志性的说话风格和音乐气质,带有台湾口音特色,适合音乐和创意内容制作。',
|
| 173 |
'file_size': '241M',
|
|
|
|
| 198 |
{
|
| 199 |
'repository': 'MoYoYoTech/tone-models',
|
| 200 |
'character_name': 'Ma Yun',
|
| 201 |
+
'priority': 8,
|
| 202 |
'cover_image': 'https://huggingface.co/MoYoYoTech/tone-models/resolve/main/cover/mayun.png',
|
| 203 |
'description': '阿里巴巴创始人马云的AI语音模型,具有其富有激情的演讲风格和独特的商业洞察表达方式,适合商业和励志内容制作。',
|
| 204 |
'file_size': '241M',
|
|
|
|
| 228 |
{
|
| 229 |
'repository': 'MoYoYoTech/tone-models',
|
| 230 |
'character_name': 'Maple',
|
| 231 |
+
'priority': 5,
|
| 232 |
'cover_image': '',
|
| 233 |
'description': '轻松坦率',
|
| 234 |
'file_size': '241M',
|
|
|
|
| 258 |
{
|
| 259 |
'repository': 'MoYoYoTech/tone-models',
|
| 260 |
'character_name': 'Cove',
|
| 261 |
+
'priority': 5,
|
| 262 |
'cover_image': '',
|
| 263 |
'description': '沉稳直率',
|
| 264 |
'file_size': '241M',
|
|
|
|
| 288 |
{
|
| 289 |
'repository': 'MoYoYoTech/tone-models',
|
| 290 |
'character_name': 'Juniper',
|
| 291 |
+
'priority': 5,
|
| 292 |
'cover_image': '',
|
| 293 |
'description': '开放豁达',
|
| 294 |
'file_size': '241M',
|
|
|
|
| 318 |
{
|
| 319 |
'repository': 'MoYoYoTech/tone-models',
|
| 320 |
'character_name': 'Ellen',
|
| 321 |
+
'priority': 7,
|
| 322 |
'cover_image': '',
|
| 323 |
'description': '美国脱口秀主持人Ellen DeGeneres的AI语音模型,具有其标志性的幽默风格和独特的表达方式,适合制作娱乐和创意内容。',
|
| 324 |
'file_size': '241M',
|
|
|
|
| 348 |
{
|
| 349 |
'repository': 'MoYoYoTech/tone-models',
|
| 350 |
'character_name': 'Bai Yansong',
|
| 351 |
+
'priority': 8,
|
| 352 |
'cover_image': '',
|
| 353 |
'description': '',
|
| 354 |
'file_size': '241M',
|
src/voice_dialogue/services/audio/generators/models/base.py
CHANGED
|
@@ -166,7 +166,9 @@ class TTSConfigRegistry:
|
|
| 166 |
# 按优先级和语言偏好排序
|
| 167 |
def sort_key(config: BaseTTSConfig):
|
| 168 |
# 优先级权重(数字越小优先级越高)
|
| 169 |
-
|
|
|
|
|
|
|
| 170 |
|
| 171 |
# 语言匹配加分
|
| 172 |
# 如果偏好中文语音且配置是中文语音,或者偏好非中文语音且配置是非中文语音,则加分
|
|
@@ -174,7 +176,7 @@ class TTSConfigRegistry:
|
|
| 174 |
language_bonus = 0 if language_match else 1
|
| 175 |
|
| 176 |
# 角色名称作为最后的排序条件
|
| 177 |
-
return (language_bonus,
|
| 178 |
|
| 179 |
sorted_configs = sorted(configs, key=sort_key)
|
| 180 |
return sorted_configs[0]
|
|
|
|
| 166 |
# 按优先级和语言偏好排序
|
| 167 |
def sort_key(config: BaseTTSConfig):
|
| 168 |
# 优先级权重(数字越小优先级越高)
|
| 169 |
+
tts_priority = self._priority_order.get(config.tts_type, 999)
|
| 170 |
+
|
| 171 |
+
character_priority = -config.priority
|
| 172 |
|
| 173 |
# 语言匹配加分
|
| 174 |
# 如果偏好中文语音且配置是中文语音,或者偏好非中文语音且配置是非中文语音,则加分
|
|
|
|
| 176 |
language_bonus = 0 if language_match else 1
|
| 177 |
|
| 178 |
# 角色名称作为最后的排序条件
|
| 179 |
+
return (language_bonus, tts_priority, character_priority, config.character_name)
|
| 180 |
|
| 181 |
sorted_configs = sorted(configs, key=sort_key)
|
| 182 |
return sorted_configs[0]
|
src/voice_dialogue/services/audio/generators/models/moyoyo.py
CHANGED
|
@@ -31,6 +31,7 @@ class MoYoYoTTSConfig(BaseTTSConfig):
|
|
| 31 |
"""MoYoYo TTS配置类"""
|
| 32 |
tts_type: TTSConfigType = TTSConfigType.MOYOYO
|
| 33 |
repository: str
|
|
|
|
| 34 |
model_files: dict[str, str]
|
| 35 |
inference_parameters: InferenceParameters
|
| 36 |
|
|
|
|
| 31 |
"""MoYoYo TTS配置类"""
|
| 32 |
tts_type: TTSConfigType = TTSConfigType.MOYOYO
|
| 33 |
repository: str
|
| 34 |
+
priority: int = Field(default=1, ge=1, le=10, description="音色优先级")
|
| 35 |
model_files: dict[str, str]
|
| 36 |
inference_parameters: InferenceParameters
|
| 37 |
|