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
- priority = self._priority_order.get(config.tts_type, 999)
 
 
170
 
171
  # 语言匹配加分
172
  # 如果偏好中文语音且配置是中文语音,或者偏好非中文语音且配置是非中文语音,则加分
@@ -174,7 +176,7 @@ class TTSConfigRegistry:
174
  language_bonus = 0 if language_match else 1
175
 
176
  # 角色名称作为最后的排序条件
177
- return (language_bonus, priority, config.character_name)
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