#5116 调用cosyvoice 后台已经转换成功了, 但是pyvideotrans还是报错, 收到不数据

18.226* Posted at: 4 hours ago

我用的是v2,有没有类似的问题啊

7 Replies

问题核心在于 pyVideoTrans 与 CosyVoice 后端通信接口不匹配。后端虽成功生成音频,但返回到 pyVideoTrans 的数据格式或地址不一致,导致软件无法解析。

请按以下步骤排查:

  1. 检查 API 地址配置
    进入菜单 → TTS 设置 → CosyVoice 面板,确认 URL 地址与你实际启动的 CosyVoice 服务地址完全一致(包括端口号)。

    • 如果你运行的是 CosyVoice v1,默认地址为 http://127.0.0.1:8000
    • 如果你运行的是 CosyVoice v2,需将地址改为对应的 v2 接口(如 http://127.0.0.1:8000/v2http://127.0.0.1:8001,以你的启动日志为准)
  2. 确认参考音频路径
    CosyVoice 的参考音频必须存放在软件根目录下的 f5-tts/ 文件夹中,且文件名不含空格或中文。
  3. 查看日志定位具体错误
    打开软件安装目录下的 logs/ 文件夹,找到最新的 .log 文件,搜索 CosyVoiceerror,可以看到更详细的报错信息(如 Connection refusedJSON decode error 等),这能帮助判断是地址错误还是数据格式问题。
  4. 测试 API 兼容性
    手动用浏览器或 curl 访问你的 CosyVoice 地址(如 http://127.0.0.1:8000/tts),确认是否返回标准 JSON 格式的音频数据。pyVideoTrans 预期的是 {"audio": base64_encoded_wav} 结构(部分渠道可能需其他字段,具体可查该渠道源码)。
  5. 查看官方文档
    详细的 CosyVoice 配置步骤请参考:

如果以上仍无法解决,请提供日志文件中最后 30 行报错信息,以便进一步分析。

500 Server Error: INTERNAL SERVER ERROR for url: http://127.0.0.1:9233/clone_eq:
Traceback (most recent call last):
File "videotrans\util\ListenVoice.py", line 16, in run
File "videotrans\tts\__init__.py", line 342, in run
File "videotrans\tts\_base.py", line 181, in run
File "videotrans\tts\_base.py", line 210, in _local_mul_thread
File "videotrans\tts\_cosyvoice.py", line 159, in _item_task
File "videotrans\tts\_cosyvoice.py", line 138, in _item_cosyvoice_api
File "requests\models.py", line 1026, in raise_for_status
requests.exceptions.HTTPError: 500 Server Error: INTERNAL SERVER ERROR for url: http://127.0.0.1:9233/clone_eq

该 500 错误说明 pyVideoTrans 成功连接了 CosyVoice 后端(http://127.0.0.1:9233),但 CosyVoice 在处理请求时内部发生了异常。问题出在 CosyVoice 服务端,而非 pyVideoTrans 的配置。

请依次排查:

  1. 查看 CosyVoice 控制台日志
    打开你启动 CosyVoice 服务的终端窗口,查看是否有明显的错误提示(例如模型加载失败、依赖缺失、参考音频文件无法读取、参数越界等)。
  2. 检查参考音频配置

    • 参考音频必须为 .wav 格式,时长 3-10 秒,不含背景噪音,存放在软件根目录的 f5-tts/ 文件夹内。
    • 在菜单 → TTS 设置 → 设置参考音频 中,确保正确填写了参考音频文件名及其对应的说话文本(格式如 myaudio.wav#说话文本)。
    • 若使用 clone 角色(原音色克隆),pyVideoTrans 会自动从原始视频片段截取参考音频,但仍需确认原始音频片段时长合适(建议 3-10 秒)。
  3. 确认 CosyVoice 服务版本与接口匹配

    • 你使用的是 CosyVoice v2,但 URL 中的端口 9233 和路径 /clone_eq 需要与你实际部署的服务一致。请确认你的 CosyVoice v2 服务确实在该端口监听,且 /clone_eq 端点可用。
    • 如果服务启动时指定了不同的端口或端点,请在 pyVideoTrans 的设置中相应修改 URL(例如 http://127.0.0.1:9233http://127.0.0.1:9233/v2/clone_eq,以你的服务文档为准)。
  4. 测试 API 连通性
    在浏览器或 curl 中直接访问 http://127.0.0.1:9233/clone_eq(用正确的端口),看是否返回 {"error":...} 或正常响应。如果无法访问,说明服务未启动或端口错误。
  5. 提供完整日志
    如果以上步骤无法定位问题,请提供以下信息:

    • CosyVoice 服务终端的完整输出(约最后 30 行)。
    • pyVideoTrans 日志中 logs/ 文件夹最新的 .log 文件内容(底部 30 行)。

参考文档

请问http://127.0.0.1:9233/clone_eq, 显示{"code":6,"msg":"\u7f3a\u5c11\u5f85\u5408\u6210\u7684\u6587\u672c"}

从服务端返回的 {"code":6,"msg":"缺少待合成的文本"} 可以看出:CosyVoice v2 已经正确运行,但 pyVideoTrans 发送的请求中未包含待合成的文本字段,导致服务端无法执行。

这是因为 CosyVoice v2 的 API 接口(/clone_eq)可能要求传入 textinput_text 参数,而 pyVideoTrans 的旧版本中发送的请求格式不匹配。请按以下步骤排查:


1. 确认 CosyVoice v2 的 API 参数规范

直接访问 http://127.0.0.1:9233/docs(Swagger 文档界面),查看 /clone_eq 端点所需的参数。通常需要:

  • text(字符串)— 必须,要合成的文本
  • audio(文件或 base64)— 参考音频(克隆时可选)
  • 其他参数(如 prompt_text 等)

2. 调整 pyVideoTrans 中的 CosyVoice 配置

进入菜单 → TTS 设置 → CosyVoice,检查以下设置:

  • URL:确认当前填写的是 http://127.0.0.1:9233(不含 /clone_eq),软件会自动拼接。
  • API 版本选择:如果 CosyVoice v2 的接口路径与 v1 不同(例如 v2 使用 /v2/clone_eq),需要在 URL 后添加版本路径,或选择对应的版本选项(如果有)。
  • 参考音频路径:确保参考音频(如果使用 clone 角色)存放在 软件目录/f5-tts/ 下,且文件名正确。

3. 更新 pyVideoTrans 软件版本

CosyVoice v2 的 API 接口可能与 pyVideoTrans 较旧版本不兼容。请到 pyvideotrans.com/downpackage 下载并覆盖更新到最新版(v4.01 或更高),新版本可能已经适配 v2 的请求格式。

4. 临时替代方案

如果急需使用,可以改用以下配音渠道作为替代:


如果以上仍无法解决

请提供以下信息,以便进一步分析:

  1. 在 CosyVoice 服务终端中看到的完整错误信息(除“缺少文本”外有无其他日志)
  2. pyVideoTrans 日志文件(logs/ 下最新的 .log 文件底部 30 行)
  3. 你使用的 CosyVoice 具体版本和启动方式

参考文档

Could not fetch config for http://127.0.0.1:5000/:
Traceback (most recent call last):
File "videotrans\tts\_gradio.py", line 50, in _send
File "videotrans\tts\_gradio.py", line 35, in get_thread_client
File "gradio_client\client.py", line 162, in init
File "gradio_client\client.py", line 971, in _get_config
ValueError: Could not fetch config for http://127.0.0.1:5000/

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

Traceback (most recent call last):
File "videotrans\util\ListenVoice.py", line 16, in run
File "videotrans\tts\__init__.py", line 184, in run
File "videotrans\tts\_base.py", line 92, in run
File "videotrans\tts\_base.py", line 203, in _exec
File "videotrans\tts\_base.py", line 165, in _local_mul_thread
File "videotrans\tts\_base.py", line 215, in _item_task
File "videotrans\tts\_cosyvoice.py", line 36, in _run
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 400, in
File "concurrent\futures\_base.py", line 451, in result
File "concurrent\futures\_base.py", line 403, in __get_result
File "tenacity\__init__.py", line 480, in call
File "videotrans\tts\_gradio.py", line 69, in _send
videotrans.configure.excepts.StopTask: Could not fetch config for http://127.0.0.1:5000/

错误提示 Could not fetch config for http://127.0.0.1:5000/ 说明 pyVideoTrans 尝试连接地址 http://127.0.0.1:5000 但该地址没有运行 Gradio 服务,无法获取 API 配置。你之前使用的是端口 9233(CosyVoice v2),现在却变成了 5000,说明你修改了 URL 但 CosyVoice 服务并未启动在 5000 端口,或填写的端口不对。

解决步骤

  1. 确认 CosyVoice 服务的实际端口
    打开你启动 CosyVoice 的终端窗口,查看启动日志中打印的 local URL(例如 Running on local URL: http://127.0.0.1:9233http://0.0.0.0:8000)。
    如果启动时未指定端口,默认 CosyVoice 通常为 8000 或你部署时设定的端口。
  2. 在 pyVideoTrans 中填写正确的 URL
    进入菜单 → TTS 设置 → CosyVoice,将 URL 改为你实际启动的地址(如 http://127.0.0.1:9233http://127.0.0.1:8000),不要加 /clone_eq 子路径,软件会自动拼接。
  3. 检查 Gradio 服务是否正常
    在浏览器中直接访问你填写的 URL(如 http://127.0.0.1:9233),如果能正常显示 Gradio 界面(通常有 input/output 组件),说明服务正常。否则请重新启动 CosyVoice 服务并检查是否有报错。
  4. 若端口正确但仍无法连接

    • 检查防火墙是否阻止了该端口。
    • 检查 CosyVoice 依赖是否全部安装,是否缺少 gradio 组件。
    • 如果使用的是 CosyVoice v2,请确认其启动方式与普通 Gradio app 一致(例如执行 python webui.py),而不是仅启动了 API 服务(部分 v2 可能使用 FastAPI,此时需要填写正确的 API 路径而非 Gradio 地址)。

参考文档

如果以上仍无法解决,请提供:

  • CosyVoice 服务终端启动时的所有输出(前 20 行)
  • pyVideoTrans 日志文件夹下最新的 .log 文件底部 30 行
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