#6933 clone 角色不存在Traceback (most recent call last):

2409:**:d550 Posted at: 1 hour ago

clone 角色不存在
Traceback (most recent call last):
File "videotrans\task\only_one.py", line 107, in run
File "videotrans\task\_stage_dubbing.py", line 24, in dubbing
File "videotrans\task\_stage_dubbing.py", line 101, in _tts
File "videotrans\tts\__init__.py", line 233, in run
File "videotrans\tts\_base.py", line 143, in run
File "tenacity\__init__.py", line 480, in call
File "videotrans\tts\_ttsapi.py", line 48, in _run
File "videotrans\tts\_base.py", line 302, in get_ref_wav
RuntimeError: clone 角色不存在

cfg=[TaskCfgVTT]当前工作模式: 翻译视频 单视频模式
原始输入文件名: G:/zi liao/High Vibe Communication by Julien Blanc/8.Bonuses/2.The Crucial Conversations Manifesto/My Video.mp4,
输出结果保存到文件夹: G:/zi liao/High Vibe Communication by Julien Blanc/8.Bonuses/2.The Crucial Conversations Manifesto/_video_out/My Video-mp4,
临时文件夹: D:/win-pyvideotrans/tmp/1388/0ec616c9ce
已选 清理已存在
未启用CUDA加速
未选 降噪
语音识别:Whisper.cpp(Win内置), ggml-tiny.bin, 发音语言: 简体中文, 断句方式:默认断句
发音语言和目标语言相同,不翻译字幕
配音渠道:自定义TTS API, 角色:clone, 配音语言:简体中文, 未选 二次语音识别
音量:+0%, 语速:+0%, 未选 音频加速, 已选 视频慢速
字幕: 嵌入软字幕


=
system:Windows-10-10.0.19045-SP0
version:v4.11
frozen:True
language:zh
root_dir:D:/win-pyvideotrans

5 Replies

#1 DeepSeek reply at 1 hour ago

此报错是因为你选择的配音渠道「自定义TTS API」当前无法使用 clone 角色进行音色克隆。自定义TTS API有接入方式的差异,并非所有自定义接口都支持 clone,具体原因如下:

  1. 如果你是使用方法一(基于 application/x-www-form-urlencoded 的 POST 接口)接入的自定义TTS API,该方式默认不支持语音克隆,因此不应选择 clone 角色,需在「配音角色」下拉框中选择实际存在的具体角色名称。
  2. 如果你是使用方法二(通过 Gradio WebUI 接入支持克隆的TTS),则必须确保已在软件根目录创建并正确填写 gradio_api.txt 文件(包含 api_nametext=tts_textref_audio=tts_audio 等必要参数),且已在 菜单 → TTS设置 → 自定义TTS API 中填入正确的 WebUI 地址。若 gradio_api.txt 缺失或参数不完整,软件将无法为 clone 角色截取参考音频,从而抛出“clone 角色不存在”。

解决步骤:

  • 若不需要克隆:改选一个具体的配音角色(例如在自定义TTS API中配置好的角色名),而非 clone
  • 若必须使用克隆:

    1. 打开软件根目录,确认存在 gradio_api.txt 文件,并对照 自定义TTS API 文档 检查参数是否齐全;
    2. TTS设置 → 设置参考音频 中配置好用于克隆的参考音频(或在视频翻译中交由软件自动截取原声音频);
    3. 重新执行任务。

如果仍无法解决,请提供 logs/ 目录下最新日志文件中的完整报错堆栈,以便进一步分析。

请查阅相关文档:

#2 2409:**:d550 reply at 46 minutes ago

[DEBUG] 当前使用配音渠道:自定义TTS API
[DEBUG] 设定最大配音线程: 1,实际 单线程配音, 待配音字幕长度: 892, 配音后暂停1.0s
[INFO] Starting call to 'videotrans.tts._ttsapi.TTSAPI._run', this is the 1st time calling it.
[INFO] Finished call to 'videotrans.tts._ttsapi.TTSAPI._run' after 0.000(s), this was the 1st time calling it.
[ERROR]
第0条字幕配音失败,字幕文本:{'text': '欢迎来到《关键对话宣言》', 'line': 1, 'start_time': 160, 'end_time': 3440, 'startraw': '00:00:00,160', 'endraw': '00:00:03,440', 'ref_text': '欢迎来到《关键对话宣言》', 'start_time_source': 160, 'end_time_source': 3440, 'role': 'clone', 'rate': '+0%', 'volume': '+0%', 'pitch': '+0Hz', 'tts_type': 35, 'filename': 'D:/win-pyvideotrans/tmp/1388/0ec616c9ce/0-8e88c8d03fe87aa488d580c335983c2f.wav'}
RetryError[]
Traceback (most recent call last):
File "tenacity\__init__.py", line 480, in call
File "videotrans\tts\_ttsapi.py", line 48, in _run
File "videotrans\tts\_base.py", line 302, in get_ref_wav
RuntimeError: clone 角色不存在

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "videotrans\tts\_base.py", line 218, in _item_task
File "tenacity\__init__.py", line 338, in wrapped_f
File "tenacity\__init__.py", line 477, in call
File "tenacity\__init__.py", line 378, in iter
File "tenacity\__init__.py", line 421, in exc_check
tenacity.RetryError: RetryError[]
[INFO] Starting call to 'videotrans.tts._ttsapi.TTSAPI._run', this is the 1st time calling it.
[INFO] Finished call to 'videotrans.tts._ttsapi.TTSAPI._run' after 0.000(s), this was the 1st time calling it.
[ERROR]
第1条字幕配音失败,字幕文本:{'text': '先说一件事,算是给这个视频做个补充', 'line': 2, 'start_time': 3760, 'end_time': 8400, 'startraw': '00:00:03,760', 'endraw': '00:00:08,400', 'ref_text': '先说一件事,算是给这个视频做个补充', 'start_time_source': 3760, 'end_time_source': 8400, 'role': 'clone', 'rate': '+0%', 'volume': '+0%', 'pitch': '+0Hz', 'tts_type': 35, 'filename': 'D:/win-pyvideotrans/tmp/1388/0ec616c9ce/1-c2dd28e01bc0b0a9b6c8f7531755bfce.wav'}
RetryError[]
Traceback (most recent call last):
File "tenacity\__init__.py", line 480, in call
File "videotrans\tts\_ttsapi.py", line 48, in _run
File "videotrans\tts\_base.py", line 302, in get_ref_wav
RuntimeError: clone 角色不存在

#3 DeepSeek reply at 45 minutes ago

错误的核心原因:你的自定义TTS API 接入方式不支持 clone 角色。当配音角色为 clone 时,软件会尝试从原始视频中截取参考音频,但自定义TTS API 的当前配置无法实现此功能,因此抛出 RuntimeError: clone 角色不存在

解决步骤:

  1. 不需要克隆:将主界面「配音角色」从 clone 改为一个实际存在的角色名(例如你在自定义TTS API 中配置好的角色,或在 菜单 → TTS设置 → 设置参考音频 中已添加的参考音频名)。
  2. 需要克隆:确保你走的是 Gradio WebUI 接入方式,并且已完成以下配置:

    • 在软件根目录创建 gradio_api.txt 文件,内容需包含 api_nametext=tts_textref_audio=tts_audio 等必要参数(具体示例见文档)。
    • 菜单 → TTS设置 → 自定义TTS API 中填入对应 WebUI 地址。
    • 若未配置 gradio_api.txt,则自定义TTS API 默认不支持克隆,只能使用具体角色。
  3. 更稳妥的方案:若你使用的是 方法一(基于 application/x-www-form-urlencoded 的 POST 接口),此方式不支持 clone,请改用具体角色,或切换到支持语音克隆的其他渠道(如 OmniVoice-TTS、Qwen-TTS 等)。

如果按照以上步骤操作后仍报错,请提供 logs/ 目录下最新日志文件中的完整报错堆栈,以便进一步定位。

请查阅相关文档:

#4 2409:**:d550 reply at 44 minutes ago

就是Gradio WebUI

#5 DeepSeek reply at 44 minutes ago

你使用的是 Gradio WebUI 接入方式,但依然报“clone 角色不存在”,通常是因为 gradio_api.txt 配置文件缺失、参数不完整,或自定义TTS API 地址填写不当导致软件无法为 clone 角色截取参考音频。

请按以下步骤逐一排查:

1. 确认已创建 gradio_api.txt

在软件根目录(即 sp.exesp.py 所在的文件夹)下,必须存在名为 gradio_api.txt 的文件。请检查是否存在,若不存在则创建。

2. 确认 gradio_api.txt 内容格式正确

文件内容必须按 参数名=参数值 逐行填写,且至少包含以下必要项(以 Index-TTS 2.5 为例):

emo_control_method=Same as the voice reference
prompt=tts_audio
text=tts_text
lang_choice=ZH
emo_ref_path=tts_audio
api_name=/gen_single

关键要点:

  • api_name 必须填写该 TTS 的 Gradio API 端点名称,例如 /gen_single/basic_tts/_clone_fn 等,具体取决于你的 TTS 模型。
  • 参数 text 的值固定为 tts_text(动态替换为字幕文本)。
  • 参数 promptref_audio 等参考音频参数的值固定为 tts_audio(动态替换为克隆参考音频路径)。
  • 若你的模型需要参考文本,需添加 ref_text=tts_audio_text;若模型不需要,则不要添加此行。

3. 确认自定义TTS API 地址已正确填写

打开软件菜单 → TTS设置自定义TTS API,确保填写的地址是 Gradio WebUI 的运行地址,例如 http://127.0.0.1:7860/。注意结尾的斜杠最好保留。

4. 确认 WebUI 确实支持克隆

并非所有通过 Gradio 提供接口的 TTS 都支持参考音频克隆。必须确认该 WebUI 中确有声音克隆功能(通常带有“参考音频/克隆”相关参数),否则 clone 角色无法使用。

5. 确认你是否在“配音角色”中选择了 clone

在视频翻译主界面的“配音角色”下拉框中,必须选择 clone 才能触发克隆逻辑。如果选择了其他角色,则不会截取参考音频,也不会报此错误,但结果不会克隆原音色。

6. 若以上均正常,尝试重启软件

配置修改后部分环境需要重启软件才生效。


如果上述步骤均检查无误后仍报错,请提供:

  • 你的 gradio_api.txt 文件完整内容;
  • 自定义TTS API 填写的地址;
  • 你部署的 TTS 模型名称;
  • logs/ 目录下最新日志文件中该报错前后的完整日志。

以便进一步定位。

请查阅相关文档:

Thinking...
Post Your Reply
If you have more than 50 messages, you will no longer receive an automatic reply. Please ask a new question!
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 via ko-fi.com

Related resource