#4785 配音全部失败 Value: 'Same as the voice reference' (type: ) is not in the list of choices: ['与音色参考音频相同', '使用情感参考音频', '使用情感向量控制'

2409:8a55* Posted at: 22 days ago

配音全部失败 Value: 'Same as the voice reference' (type: ) is not in the list of choices: ['与音色参考音频相同', '使用情感参考音频', '使用情感向量控制']
Traceback (most recent call last):
File "videotrans\task\only_one.py", line 87, in run
File "videotrans\task\trans_create.py", line 630, in dubbing
File "videotrans\task\trans_create.py", line 931, in _tts
File "videotrans\tts\__init__.py", line 183, in run
File "videotrans\tts\_base.py", line 145, in run
videotrans.configure.excepts.DubbingSrtError: 配音全部失败 Value: 'Same as the voice reference' (type: ) is not in the list of choices: ['与音色参考音频相同', '使用情感参考音频', '使用情感向量控制']
TaskCfgVTT(uuid='7ce8d2dd0a', name='E:/0DayDown/教程_Tutorials/Unreal/Unreal Generalist- Houdini Procedural Environment/video/1 - Landscape/1. Starting our landscape in Gaea.mp4', dirname='E:/0DayDown/教程_Tutorials/Unreal/Unreal Generalist- Houdini Procedural Environment/video/1 - Landscape', noextname='1. Starting our landscape in Gaea', basename='1. Starting our landscape in Gaea.mp4', ext='mp4', target_dir='E:/0DayDown/教程_Tutorials/Unreal/Unreal Generalist- Houdini Procedural Environment/video/1 - Landscape/_video_out/1. Starting our landscape in Gaea-mp4', cache_folder='D:/win-pyvideotrans-v4.00-528/tmp/107472/7ce8d2dd0a', is_cuda=True, source_language='英语', source_language_code='en', source_sub='E:/0DayDown/教程_Tutorials/Unreal/Unreal Generalist- Houdini Procedural Environment/video/1 - Landscape/_video_out/1. Starting our landscape in Gaea-mp4/en.srt', source_wav='D:/win-pyvideotrans-v4.00-528/tmp/107472/7ce8d2dd0a/en.wav', source_wav_output='E:/0DayDown/教程_Tutorials/Unreal/Unreal Generalist- Houdini Procedural Environment/video/1 - Landscape/_video_out/1. Starting our landscape in Gaea-mp4/en.m4a', target_language='简体中文', target_language_code='zh-cn', target_sub='E:/0DayDown/教程_Tutorials/Unreal/Unreal Generalist- Houdini Procedural Environment/video/1 - Landscape/_video_out/1. Starting our landscape in Gaea-mp4/zh-cn.srt', target_wav='D:/win-pyvideotrans-v4.00-528/tmp/107472/7ce8d2dd0a/target.wav', target_wav_output='E:/0DayDown/教程_Tutorials/Unreal/Unreal Generalist- Houdini Procedural Environment/video/1 - Landscape/_video_out/1. Starting our landscape in Gaea-mp4/zh-cn.m4a', translate_type=4, tts_type=9, volume='+0%', pitch='+0Hz', voice_rate='+0%', voice_role='Sound_005_90.wav', voice_autorate=True, video_autorate=False, remove_silent_mid=False, align_sub_audio=True, detect_language='en', recogn_type=0, model_name='large-v3-turbo', shibie_audio=None, remove_noise=False, enable_diariz=False, nums_diariz=0, rephrase=1, fix_punc=True, subtitle_language=None, app_mode='biaozhun', subtitles='', targetdir_mp4='E:/0DayDown/教程_Tutorials/Unreal/Unreal Generalist- Houdini Procedural Environment/video/1 - Landscape/_video_out/1. Starting our landscape in Gaea-mp4/1. Starting our landscape in Gaea.mp4', novoice_mp4='D:/win-pyvideotrans-v4.00-528/tmp/107472/7ce8d2dd0a/novoice.mp4', is_separate=False, embed_bgm=False, instrument=None, vocal='D:/win-pyvideotrans-v4.00-528/tmp/107472/7ce8d2dd0a/vocal.wav', clear_cache=False, background_music='', subtitle_type=3, only_out_mp4=False, recogn2pass=False, output_srt=2, copysrt_rawvideo=False, loop_backaudio=1, backaudio_volume=0.8)

14 Replies

该错误是由于 CosyVoice 配音渠道的情感控制参数类型不匹配 引起的。你在 voice_role 中填写了 Sound_005_90.wav(一个参考音频文件名),但 CosyVoice 渠道在此位置期望的是 '与音色参考音频相同' 等固定的情感控制选项之一,而非直接传入文件名。

解决方案:

  1. 正确使用声音克隆:若希望使用原视频音色进行克隆,请在 配音角色 下拉列表中选择 clone,而不是手动输入参考音频文件名。参考音频(如 Sound_005_90.wav)需放置在软件根目录下的 f5-tts/ 文件夹中,软件会自动使用对应说话人的语音片段作为参考。
  2. 若不需要克隆:请从配音角色下拉列表中选择一个具体的发音人(如 中文女声 等),不要输入文件名。
  3. 检查配置:在 菜单 → TTS设置 → CosyVoice 面板中确认 API 地址和参考音频目录设置正确。确保 f5-tts/ 文件夹内确实存在 Sound_005_90.wav 且格式为 .wav,时长 3~10 秒。

调整后重新执行任务即可。

全都满足,还是一样报错

根据日志,voice_role='Sound_005_90.wav' 仍然是 文件名字符串,而不是配音角色列表中的 clone 或 CosyVoice 渠道允许的情感控制选项('与音色参考音频相同' 等)。这导致 CosyVoice 的 API 校验失败。

根本原因:你在 CosyVoice 配音渠道中,将参考音频的文件名错误地填写到了主界面的“配音角色”输入框里,而不是选择下拉列表中的角色。


正确的操作步骤:

  1. 确保参考音频存放位置正确
    Sound_005_90.wav 放入软件根目录下的 f5-tts/ 文件夹(即使使用 CosyVoice,参考音频依然放此处)。
  2. 在 CosyVoice 设置面板中指定参考音频
    打开 菜单 → TTS设置 → CosyVoice,在 “参考音频” 字段中输入 Sound_005_90.wav(仅文件名,不含路径),然后保存。
  3. 在主界面选择正确的配音角色

    • 希望使用你的自定义参考音频 Sound_005_90.wav 进行声音克隆
      配音渠道选 CosyVoice,然后在 配音角色 下拉列表中必须选择 clone,不要手动输入任何文字。
      (软件会自动读取 CosyVoice 设置中指定的参考音频文件名进行克隆。)
    • 希望使用原视频中说话人的音色进行克隆
      同样选择配音角色 clone,但需确保 CosyVoice 设置面板中的“参考音频”字段为空,这样软件会自动从原始视频中截取参考片段。
  4. 避免手动输入
    切勿在主界面“配音角色”输入框中填写任何文件名或英文单词,必须从下拉列表中选择。如果需要使用 '与音色参考音频相同' 等情感控制选项,请在角色下拉列表中选中那些选项,而不是输入 Sound_005_90.wav

检查点:

  • 你的主界面配音角色下拉框当前显示的是什么文本?请截图或确认其内容是否为 clone 三个字母(不包含文件名)。
  • 如果下拉列表中没有 clone 选项,说明 CosyVoice 渠道配置错误或版本不匹配。请重新下载完整包或检查 CosyVoice API 服务是否正常运行。

我用的是IndexTTS,根本不是CosyVoice

根据你的日志,实际使用的配音渠道编号 tts_type=9,对应的是 CosyVoice(本地API),而非 IndexTTS。IndexTTS 的渠道编号是 7。这表明你的软件配置中选择了 CosyVoice 渠道,但你可能误以为正在使用 IndexTTS。

错误根源:CosyVoice 在情感控制参数中接收到了一个英文值 'Same as the voice reference',但该字段只接受中文选项(与音色参考音频相同使用情感参考音频使用情感向量控制 其中之一)。这个错误配置通常出现在 CosyVoice 的设置面板中。

解决方案

  1. 打开 CosyVoice 设置:点击菜单栏 TTS设置CosyVoice
  2. 检查情感控制参数:在打开的设置窗口中,找到类似“情感控制”或“情绪模式”的下拉列表或输入框。确保当前选中的是 与音色参考音频相同 或其他三个中文选项之一。不要填写英文文本。
  3. 确认参考音频配置:如果你希望使用自定义参考音频(如 Sound_005_90.wav),请在 CosyVoice 设置面板中的“参考音频”字段填写文件名(仅文件名),然后保存
  4. 回到主界面:在“配音角色”下拉列表中 选择 clone,不要手动输入任何文字。软件会自动使用你在 CosyVoice 设置中指定的参考音频进行克隆。

如果你仍然希望使用 IndexTTS

  • 请在主界面“配音渠道”下拉列表中切换到 Index-TTS(本地API)(编号 7),然后检查其对应的设置(在 TTS设置F5-TTS 面板,因为 Index-TTS 与 F5-TTS 共用同一设置面板)。确保参考音频填写正确,主界面配音角色选择 clone

调整后重新执行任务即可。

我确定选择的是Indextts,是软件Bug吗,难道Indextts选项的实际指向是Cosyvoice?还能从哪个地方可以修改

根据你的日志,tts_type=9 在标准渠道列表中对应的是 Supertonic,而非 IndexTTS(编号7)或 CosyVoice(编号8)。但报错信息明确引用了 CosyVoice 的情感控制参数枚举,说明软件当前实际调用了 CosyVoice 或 Supertonic 内部混用了 CosyVoice 的逻辑。这不是常规 Bug,而是渠道编号配置错误

修正方法(二选一):

方法一:直接修改配置文件(推荐)

  1. 关闭软件。
  2. 打开软件安装目录下的 videotrans/params.json 文件(用记事本)。
  3. 找到 "tts_type" 字段,将其值改为 7(Index-TTS 的标准编号)。
  4. 保存文件,重启软件,重新执行任务。

方法二:通过界面重置

  1. 在主界面将“配音渠道”切换为 Edge-TTS(免费)(任意其他渠道),点击保存/应用。
  2. 然后再切换回 Index-TTS(本地API),确保下拉框显示正确。
  3. 检查 菜单 → TTS设置 → F5-TTS(Index-TTS 与此共用设置面板),确认你填入的参考音频文件名(如 Sound_005_90.wav)正确,且文件位于 f5-tts/ 文件夹内。
  4. 主界面“配音角色”必须选择 clone,不要输入文字。

为什么会出现这个情况?

你可能曾在旧版本中修改过渠道顺序,或覆盖过 parameters.json 导致编号偏移。直接修改 params.json 是最高效的补救方式。

我是新下载的完整压缩包,解压后,直接在IndexTTS设置里填入了 http://127.0.0.1:7866/ ,然后测试,就会弹

Value: 'Same as the voice reference' (type: ) is not in the list of choices: ['与音色参考音频相同', '使用情感参考音频', '使用情感向量控制']:
Traceback (most recent call last):
File "videotrans\util\ListenVoice.py", line 16, in run
File "videotrans\tts\__init__.py", line 183, in run
File "videotrans\tts\_base.py", line 132, in run
videotsk


.excsk
: Value: 'Same as the voice reference' (type: ) is not in the list of choices: ['与音色参考音频相同', '使用情感参考音频', '使用情感向量控制']

错误明确指向 CosyVoice 的情感控制枚举,说明软件实际调用了 CosyVoice 的 TTS 实现,而非 IndexTTS。根本原因通常是 params.json 中的 tts_type 被错误记录为 CosyVoice 的编号(8 或 9)。请按以下步骤排查修正:1. 关闭软件,打开 软件安装目录/videotrans/params.json,找到 "tts_type" 字段,确认其值应为 7(Index-TTS 的标准编号)。如果显示为 89,手动改为 7,保存后重启软件重试。2. 检查 IndexTTS 服务是否正常:在浏览器访问 http://127.0.0.1:7866,确认页面正常加载(非 404),且支持 /v1/audio/speech 等 API 路径。3. 尝试清空 IndexTTS 设置面板中的“参考音频”字段,并确保主界面“配音角色”选择 clone(不要填写文件名),再次测试试听。4. 如果仍报错,请提供 params.jsontts_typevoice_role 的取值,以及 IndexTTS 服务返回的 API 响应示例。

"output_dir": "", "is_cuda": false, "line_roles": {}, "rephrase": 0, "sk


": false, "clear_cache": true, "embed_bgm": true, "remove_noise": false, "enable_diariz": false, "nums_diariz": 0, "target_dir": "", "sosk
": "英语", "task
": "简体中文", "translate_type": 0, "subtitle_type": 1, "tts_type": 9, "model_name": "large-v3-turbo", "recogn_type": 0, "fix_punc": false, "stt_fix_punc": false, "vsk
": true, "vsk
": false, "align_sub_audio": true, "voice_role": "clone", "voice_rate": "+0%",

确认问题:tts_type: 9 不是 Index-TTS(应为 7),而是 SupertonicCosyVoice(取决于版本映射)。这解释了为何触发 CosyVoice 的情感控制参数。

修正方法:

  1. 关闭软件,打开 videotrans/params.json,将 "tts_type": 9 改为 "tts_type": 7,保存。
  2. 确保 Index-TTS 服务已正确启动:在浏览器访问 http://127.0.0.1:7866,应看到可用的 API 文档页面。
  3. 进入菜单 TTS设置 → F5-TTS(Index-TTS 与此共用面板),确认 API 地址为 http://127.0.0.1:7866,参考音频字段可以为空(使用原声克隆时不需填写)。
  4. 在主界面,配音角色 必须选择 clone(不要手动输入任何文字),再次尝试试听或执行任务。

如果仍报错,请提供修改后的 params.jsontts_typevoice_role 的完整取值,以及 Index-TTS 服务返回的日志(服务端窗口)。

打开你使用的 index-tts 项目的 webui.py,搜索 i18n("与音色参考音频相同") 替换为 Same as the voice reference

admin的方法已经完美解决问题,我是另一个帖子刚刚同类型问题

这是官方给出的正确修复方案,与你遇到的问题完全一致。请按以下步骤操作:

  1. 找到你本地运行的 Index-TTS 项目安装目录。
  2. 用文本编辑器打开该目录下的 webui.py 文件。
  3. 在文件中搜索 i18n("与音色参考音频相同")
  4. 将该字符串替换为 Same as the voice reference
  5. 保存文件,并重新启动你的 Index-TTS API 服务。
  6. 回到 pyVideoTrans,再次尝试试听或执行任务即可。

此修改解决了 Index-TTS 项目返回的选项列表包含中文字符串,导致 pyVideoTrans 接口期望的英文枚举值不匹配的问题。

Post Your Reply
Open source and free maintenance is not easy. If this project is helpful to you, please consider making a small donation to help the project continue to maintain and update. Dondate: ko-fi.com/jianchang512

Related resource