#5022 videotrans.configure.excepts.DubbingSrtError: The upstream Gradio app has raised an exception but has not enabled verbos

104.160* Posted at: 11 hours ago

The upstream Gradio app has raised an exception but has not enabled verbose error reporting. To enable, set show_error=True in launch().:
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
videotrans.configure.excepts.DubbingSrtError: The upstream Gradio app has raised an exception but has not enabled verbose error reporting. To enable, set show_error=True in launch().


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

15 Replies

此错误表明您调用的外部 Gradio 配音服务(例如 GPT-SoVITS、CosyVoice、F5-TTS 等)在执行过程中抛出了异常,但该服务未开启详细错误报告(show_error=False),因此无法直接看到具体原因。

可能的原因及解决方案:

  1. 外部 TTS 服务进程崩溃或未正确运行

    • 请检查运行该服务的终端/命令行窗口是否仍处于开启状态,有无红色错误输出。
    • 若服务已关闭,请重新启动该服务,并确保在启动命令中增加 show_error=True 参数(例如:launch(show_error=True))以显示详细错误。
  2. API 地址或端口配置错误

    • 在 pyVideoTrans 菜单栏 TTS设置 -> 对应渠道(如 GPT-SoVITS)中,检查填写的 URL 地址(包括端口号)是否与本地服务实际地址一致(通常为 http://127.0.0.1:7860)。
  3. 输入参数不合法

    • 可能是参考音频时长/格式不符合要求、配音角色选择错误或语言不匹配。请根据所使用的具体渠道文档检查参数配置。
  4. 服务资源不足

    • 若服务使用 GPU 且显存不足,也可能引发此错误。可尝试关闭其他占用显存的程序,或降低模型精度。

建议操作步骤:

  1. 关闭 pyVideoTrans,手动重启外部 TTS 服务(附带 show_error=True)。
  2. 在 pyVideoTrans 中仅选择一个短音频/视频进行试听,观察是否复现。
  3. 若仍有问题,请提供外部 TTS 服务终端中的完整错误信息,以便进一步分析。

请查阅相关文档:

ard

return self._conv_forward(input, self.weight, self.bias)

File "D:\BaiduNetdisk


\tts\cosyvoice3-0529\upy./Lib/site-packages\torch\nn\modules\conv.py", line 306, in _conv_forward

return F.conv1d(input, weight, bias, self.stride,

RuntimeError: Calculated padded input size per channel: (3). Kernel size: (4). Kernel size can't be greater than actual input size
2026-06-06 19:07:41,134 DEBUG Calling on_part_begin with no data
2026-06-06 19:07:41,134 DEBUG Calling on_header_field with data[36:55]
2026-06-06 19:07:41,135 DEBUG Calling on_header_value with data[57:106]
2026-06-06 19:07:41,135 DEBUG Calling on_header_end with no data
2026-06-06 19:07:41,136 DEBUG Calling on_header_field with data[108:120]
2026-06-06 19:07:41,136 DEBUG Calling on_header_value with data[122:131]
2026-06-06 19:07:41,136 DEBUG Calling on_header_end with no data
2026-06-06 19:07:41,137 DEBUG Calling on_headers_finished with no data
2026-06-06 19:07:41,137 DEBUG Calling on_part_data with data[135:65572]
2026-06-06 19:07:41,138 DEBUG Calling on_part_data with data[0:131072]
2026-06-06 19:07:41,139 DEBUG Calling on_part_data with data[0:131072]
2026-06-06 19:07:41,140 DEBUG Calling on_part_data with data[0:131072]
2026-06-06 19:07:41,141 DEBUG Calling on_part_data with data[0:131072]
2026-06-06 19:07:41,142 DEBUG Calling on_part_data with data[0:131072]
2026-06-06 19:07:41,143 DEBUG Calling on_part_data with data[0:131072]
2026-06-06 19:07:41,143 DEBUG Calling on_part_data with data[0:131072]
2026-06-06 19:07:41,144 DEBUG Calling on_part_data with data[0:131072]
2026-06-06 19:07:41,145 DEBUG Calling on_part_data with data[0:131072]
2026-06-06 19:07:41,146 DEBUG Calling on_part_data with data[0:131072]
2026-06-06 19:07:41,146 DEBUG Calling on_part_data with data[0:106673]
2026-06-06 19:07:41,146 DEBUG Calling on_part_end with no data
2026-06-06 19:07:41,146 DEBUG Calling on_end with no data
2026-06-06 19:07:43,170 DEBUG Calling on_part_begin with no data
2026-06-06 19:07:43,170 DEBUG Calling on_header_field with data[36:55]
2026-06-06 19:07:43,172 DEBUG Calling on_header_value with data[57:106]
2026-06-06 19:07:43,172 DEBUG Calling on_header_end with no data
2026-06-06 19:07:43,173 DEBUG Calling on_header_field with data[108:120]
2026-06-06 19:07:43,173 DEBUG Calling on_header_value with data[122:131]
2026-06-06 19:07:43,173 DEBUG Calling on_header_end with no data
2026-06-06 19:07:43,173 DEBUG Calling on_headers_finished with no data
2026-06-06 19:07:43,174 DEBUG Calling on_part_data with data[135:65671]
2026-06-06 19:07:43,175 DEBUG Calling on_part_data with data[0:131072]
2026-06-06 19:07:43,176 DEBUG Calling on_part_data with data[0:131072]
2026-06-06 19:07:43,177 DEBUG Calling on_part_data with data[0:131072]
2026-06-06 19:07:43,178 DEBUG Calling on_part_data with data[0:131072]
2026-06-06 19:07:43,179 DEBUG Calling on_part_data with data[0:131072]
2026-06-06 19:07:43,179 DEBUG Calling on_part_data with data[0:131072]
2026-06-06 19:07:43,180 DEBUG Calling on_part_data with data[0:131072]
2026-06-06 19:07:43,181 DEBUG Calling on_part_data with data[0:131072]
2026-06-06 19:07:43,181 DEBUG Calling on_part_data with data[0:131072]
2026-06-06 19:07:43,182 DEBUG Calling on_part_data with data[0:131072]
2026-06-06 19:07:43,183 DEBUG Calling on_part_data with data[0:106574]
2026-06-06 19:07:43,183 DEBUG Calling on_part_end with no data
2026-06-06 19:07:43,183 DEBUG Calling on_end with no data
2026-06-06 19:07:45,302 INFO get zero_shot inference request
0%| | 0/1 [00:00

这是 CosyVoice 服务内部的 PyTorch 卷积层报错:输入的音频特征长度(3)小于卷积核大小(4)。核心原因是参考音频过短,导致模型无法正常提取特征。


解决方案

  1. 确认参考音频时长
    软件根目录/f5-tts/ 文件夹中,检查您选择的参考音频(.wav 格式)时长是否 3~10 秒。若时长不足,请替换为更长、清晰的单声道 wav 文件。
  2. 检查音频格式
    确保参考音频为 wav,采样率 16kHz 或 48kHz,单声道,无明显背景噪声。时长过短(如小于 1 秒)会直接触发 Kernel size error。
  3. 重启 CosyVoice 服务并开启详细日志
    在 CosyVoice 服务启动文件中,将 launch(show_error=True) 添加到 .launch() 调用,以显示完整错误栈。
    确认服务地址(如 http://127.0.0.1:7860)在 pyVideoTrans 的 TTS设置 → CosyVoice 中填写正确。
  4. 版本兼容性
    如果您使用的是 CosyVoice 3 预览版,部分旧版本存在该 bug。建议更新到最新版本或回退到稳定版。
  5. 测试可用性
    选择一个已知正常、时长为 5 秒的参考音频(如软件自带的示例音频)进行单视频测试,排除音频质量问题。

若以上步骤仍无法解决,请提供 CosyVoice 服务终端输出的完整报错信息(开启 show_error=True 后),以便进一步排查。

请查阅相关文档:

使用该接口需启动CosyVoice2/3官方项目的webui.py,cosyvoice3无法直接使用官方webui.py对接本软
件,点击右下角填写教程按钮,查看解决办法
WebUl url
http://127.0.0.1:8000promptinstruct text
保存修改
测试
设置参考音频
查看填写教程

CosyVoice3 官方 webui.py 无法直接与本软件对接的原因在于接口不匹配。正确的对接方法是使用 CosyVoice 官方提供的 API 服务(如 api.py)或启动 webui 后适配自定义接口。具体操作如下:

  1. 启动 CosyVoice 服务

    • 在 CosyVoice 源码根目录下,运行 python webui.py --port 8000(或使用官方推荐的 api.py,如 python api.py --port 8000)。
    • 务必开启详细错误日志:在 webui 的 launch() 中添加 show_error=True,便于排查问题。
  2. 配置本软件

    • 点击菜单栏 TTS 设置 → F5-TTS(CosyVoice 共用该面板)。
    • WebUI URL 填写服务地址,例如 http://127.0.0.1:8000
    • 若使用 prompt+instruct 模式(部分版本),URL 应填写 http://127.0.0.1:8000/promptinstruct
    • 参考音频:将 3-10 秒的 .wav 文件放入软件根目录 f5-tts/ 文件夹,然后在同一面板的“参考音频”设置中填写文件名(含后缀,如 myvoice.wav#音频中的说话文本)。
  3. 注意事项

    • CosyVoice3 部分版本需额外安装依赖或修改 webui.py 以暴露 API。若默认 webui 仅提供 Gradio 界面,请改用官方提供的 API 服务脚本。
    • 若仍报 Kernel size error,按上一条回复检查参考音频时长(必须 ≥ 3 秒)和格式(单声道、16kHz/48kHz、无背景噪声)。

请查阅相关文档:

http://127.0.0.1:8000/promptinstruct。 这个打开后是这样的
{"detail":"Not Found"}

您访问的 http://127.0.0.1:8000/promptinstruct 返回 404,说明该接口路径不存在。CosyVoice3 不同版本的 API 端点可能不同,请按以下步骤确认正确的接口地址:

  1. 查看服务端实际暴露的接口
    在启动 CosyVoice3 服务的终端中,通常 Gradio 会打印出 Running on local URL: http://127.0.0.1:8000,并可能显示可用的 API 路径(如 /api/predict/run/predict、或自定义的 /tts)。若未显示,可尝试在浏览器中打开 http://127.0.0.1:8000/docshttp://127.0.0.1:8000/redoc(如果使用了 FastAPI 框架),查看所有可用路由。
  2. 使用正确的填写格式

    • 如果服务端是 Gradio 原生接口,通常在 WebUI URL 处直接填写 http://127.0.0.1:8000/ 即可,无需加 /promptinstruct
    • 若服务端使用了 FastAPI 并自定义了 /tts 端点,则应填写 http://127.0.0.1:8000/tts
    • 最稳妥的方法:查看 CosyVoice3 官方文档或代码中的 api.py(如有),确认正确的请求端点。
  3. 若无法确定,改用官方 api.py
    CosyVoice3 常提供独立的 api.py 脚本,启动后可直接对接。启动方式:
    python api.py --port 8000
    然后在本软件 WebUI URL 处填写 http://127.0.0.1:8000,再点击测试按钮验证连接。
  4. 验证参考音频是否合规
    即便接口调通,若参考音频时长 < 3 秒仍会报 Kernel size error。请确保放入 软件根目录/f5-tts/ 的 .wav 文件时长为 3~10 秒,单声道、16kHz 或 48kHz、无背景噪声。

请查阅相关文档:

The upstream Gradio app has raised an exception but has not enabled verbose error reporting. To enable, set show_error=True in launch().:
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
videotrans.configure.excepts.DubbingSrtError: The upstream Gradio app has raised an exception but has not enabled verbose error reporting. To enable, set show_error=True in launch().
还是不行

这个问题需要您在 CosyVoice3 的服务端 开启详细错误日志才能看到具体原因。当前错误是 Gradio 包装后的通用提示,未暴露真实异常。请按以下步骤操作:


1. 修改 CosyVoice3 的 webui.py

找到 webui.py 中最后一行 demo.launch(...)interface.launch(...),在其中添加 show_error=True,例如:

demo.launch(server_name="0.0.0.0", server_port=8000, show_error=True)

保存后重启服务。再次触发配音时,服务端终端就会打印完整的 Python 错误栈(例如具体哪一行代码出错、模型加载失败还是音频处理异常)。


2. 先单独测试 WebUI 是否正常

在浏览器中访问 http://127.0.0.1:8000,看 Gradio 界面能否正常加载。如果无法加载,说明服务本身启动失败,可能是依赖缺失、端口被占用或模型路径错误。

  • 检查终端是否有红色报错。
  • 确保 CosyVoice3 的模型文件已下载完整,且环境变量(如 MODELSCOPE_CACHE)指向正确。

3. 确认本软件填写的 URL 路径

  • 仅填根地址:如 http://127.0.0.1:8000(不加 /promptinstruct 或其他后缀)。
  • 点击“测试”按钮:本软件会尝试发送一个简单的请求检查连通性,如果失败会提示具体 HTTP 错误码(如 404、500)。
  • 如果测试成功但配音仍失败,说明是配音过程中的执行异常,此时服务端 show_error=True 会给出具体错误。

4. 推荐使用 CosyVoice 官方 API 脚本(而非 webui)

许多 CosyVoice3 版本提供了独立的 api.pyserver.py,它们直接暴露 REST API,不依赖 Gradio 界面,更容易对接且错误信息更清晰。

  • 在 CosyVoice3 代码根目录下查找 api.pyserver.py,或查看官方 README。
  • 启动命令示例:python api.py --port 8000
  • 然后在 pyVideoTrans 中 WebUI URL 填写 http://127.0.0.1:8000 即可。

5. 检查参考音频是否合规

即便服务正常,参考音频过短(<3秒)或格式不对仍会导致内部卷积错误。确保:

  • 文件放入 软件根目录/f5-tts/ 文件夹
  • 格式:16kHz 单声道 wav,时长 3~10 秒
  • 内容清晰,无噪音

6. 如果依然无法解决

请提供 CosyVoice3 服务端终端show_error=True 后打印出的完整错误栈(复制十几行即可),我可以帮您分析。暂时无法确定原因时,请附上该日志。

  1. 修改 CosyVoice3 的 webui.py
    找到 webui.py 中最后一行 demo.launch(...) 或 interface.launch(...),在其中添加 show_error=True,例如:

demo.launch(server_name="0.0.0.0", server_port=8000, show_error=True)
保存后重启服务。再次触发配音时,服务端终端就会打印完整的 Python 错误栈(例如具体哪一行代码出错、模型加载失败还是音频处理异常)。具体点

好的,以下是以 CosyVoice3 为例的详细修改步骤:

1. 找到 webui.py 文件位置

  • 在您的 CosyVoice3 项目根目录下(与 api.pymodels 文件夹同级),文件名为 webui.py
  • 如果官方文件名为其他(如 demo.pyapp.py),请以实际文件名为准。

2. 定位 launch() 调用

  • 使用文本编辑器(如记事本、Notepad++、VS Code)打开 webui.py
  • 滚动到文件末尾,通常最后一行或最后几行会有一个 demo.launch(...)interface.launch(...)app.launch(...) 调用。
  • 示例原始代码:

    demo.launch(server_name="0.0.0.0", server_port=8000)

    或者

    interface.launch(server_name="0.0.0.0", server_port=8000)

3. 添加 show_error=True 参数

  • 在上述 launch() 的圆括号内,添加 show_error=True
  • 修改后变为:

    demo.launch(server_name="0.0.0.0", server_port=8000, show_error=True)

4. 保存文件并重启

  • 保存修改后的 webui.py(Ctrl+S)。
  • 在终端中重新启动 CosyVoice3 服务:

    python webui.py --port 8000

    确保端口与之前一致(8000)。

5. 验证效果

  • 再次在 pyVideoTrans 中触发配音操作。
  • 观察 CosyVoice3 服务运行的 终端窗口,现在应该会打印出详细的 Python 错误栈(而不仅仅是“上游 Gradio 异常”)。
  • 根据打印的具体错误信息,即可针对性解决(例如缺少某个模块、模型文件路径错误、内存不足等)。

特别说明

  • 如果 webui.py 中找不到 launch(),可能是使用了另一种风格的 Gradio 接口(例如 gr.TabbedInterfaceBlock.launch()),请在整个文件中搜索 .launch(launch( 找到对应行。
  • 如果 webui.py 使用了 Python 的 __main__ 保护,例如:

    if __name__ == "__main__":
      demo.launch(...)

    则修改 if 块内部的 launch() 即可。

  • 若 CosyVoice3 官方提供了 api.py,强烈建议改用 api.py 启动,因为它直接暴露 REST API,错误信息更清晰,且无需修改 webui.py。启动命令:

    python api.py --port 8000

完成修改后,请再次尝试触发配音,并将终端输出的具体错误信息粘贴给我,以便进一步分析。

连接被拒绝,目标服务可能未运行或端口错误:
Traceback (most recent call last):
File "httpx\_transports\default.py", line 101, in map_httpcore_exceptions
File "httpx\_transports\default.py", line 250, in handle_request
File "httpcore\_sync\connection_pool.py", line 216, in handle_request
File "httpcore\_sync\connection_pool.py", line 196, in handle_request
File "httpcore\_sync\connection.py", line 99, in handle_request
File "httpcore\_sync\connection.py", line 76, in handle_request
File "httpcore\_sync\connection.py", line 122, in _connect
File "httpcore\_backends\sync.py", line 205, in connect_tcp
File "contextlib.py", line 153, in exit
File "httpcore\_exceptions.py", line 14, in map_exceptions
httpcore.ConnectError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。

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 183, in run
File "videotrans\tts\_base.py", line 132, in run
File "videotrans\tts\_base.py", line 213, in _item_task
File "videotrans\tts\_cosyvoice.py", line 37, 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 50, in _send
File "videotrans\tts\_gradio.py", line 35, in get_thread_client
File "gradio_client\client.py", line 163, in init
File "gradio_client\client.py", line 938, in _get_config
File "httpx\_api.py", line 195, in get
File "httpx\_api.py", line 109, in request
File "httpx\_client.py", line 825, in request
File "httpx\_client.py", line 914, in send
File "httpx\_client.py", line 942, in _send_handling_auth
File "httpx\_client.py", line 979, in _send_handling_redirects
File "httpx\_client.py", line 1014, in _send_single_request
File "httpx\_transports\default.py", line 249, in handle_request
File "contextlib.py", line 153, in exit
File "httpx\_transports\default.py", line 118, in map_httpcore_exceptions
httpx.ConnectError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。
怎么回事拒绝了一天了

错误 [WinError 10061] 由于目标计算机积极拒绝,无法连接 表示 pyVideoTrans 无法连接到 CosyVoice3 服务。说明该服务未运行端口/地址配置不正确

请按顺序执行以下检查:

  1. 确认 CosyVoice3 服务已启动且正常运行

    • 打开运行 CosyVoice 的终端窗口,查看是否有类似输出:

      Running on local URL: http://127.0.0.1:8000
    • 如果终端已关闭或没有任何输出,说明服务未启动。请重新启动:

      python webui.py --port 8000
    • 若启动过程中出现红色错误(如缺少模块、模型路径错误等),请根据错误提示修复。
  2. 检查 pyVideoTrans 中填写的 URL 是否完全匹配

    • 菜单栏 → TTS设置F5-TTS(CosyVoice共用)WebUI URL
    • 必须与 CosyVoice 启动时打印的 URL 完全一致,例如 http://127.0.0.1:8000(注意末尾不加斜线,端口号正确)。
    • 若你手动改过端口(如 8001),URL 也要对应修改。
  3. 验证服务是否可被浏览器访问

    • 打开浏览器,直接访问填写的 URL(例如 http://127.0.0.1:8000)。
    • 如果能看到 Gradio 界面(即使是空白页或报错但能连接),说明服务可访问;如果提示“无法连接”,则服务未启动或被防火墙阻止。
  4. 排查端口占用

    • 在命令提示符中运行:

      netstat -ano | findstr :8000
    • 如果没有任何输出,说明端口未被监听,服务确实未启动。
    • 如果有监听但程序不是 CosyVoice(如被其他软件占用),换一个端口启动 CosyVoice,例如 python webui.py --port 8001,并相应修改 pyVideoTrans 中的 URL。
  5. 开启详细错误日志

    • 按照之前的说明,在 webui.py 的最后一行 demo.launch(...) 中添加 show_error=True,然后重启服务。
    • 再次尝试连接,CosyVoice 终端会打印具体错误(如模型加载失败、依赖缺失等),据此修复。

如果以上步骤都正确但仍无法连接

可能是 CosyVoice3 的 Python 环境问题或依赖未安装。建议改用官方提供的 api.py 启动(如果存在):

python api.py --port 8000

这种方式通常更稳定,且 show_error=True 更易生效。

完成上述排查后,如果仍有问题,请提供 CosyVoice 终端启动时的完整输出(包括任何错误信息),以便进一步定位。

Active code page: 65001

开始启动,用时可能较久,请耐心等待...

Downloading Model to directory: C:\Users\zhangjing.cache\modelscope\hub\FunAudioLLM/Fun-CosyVoice3-0.5B-2512
2026-06-06 19:35:20,264 DEBUG Starting new HTTPS connection (1): www.modelscope.cn:443
2026-06-06 19:35:20,604 DEBUG https://www.modelscope.cn:443 "GET /api/v1/models/FunAudioLLM/Fun-CosyVoice3-0.5B-2512/revisions HTTP/1.1" 200 222
2026-06-06 19:35:20,714 DEBUG https://www.modelscope.cn:443 "GET /api/v1/models/FunAudioLLM/Fun-CosyVoice3-0.5B-2512/repo/files?Revision=master&Recursive=True HTTP/1.1" 200 None
2026-06-06 19:35:20,721 - modelscope - INFO - Creating symbolic link C:\Users\zhangjing.cache\modelscope\hub\FunAudioLLM\FunAudioLLM/Fun-CosyVoice3-0___5B-2512 -> C:\Users\zhangjing.cache\modelscope\hub\FunAudioLLM/Fun-CosyVoice3-0.5B-2512.
2026-06-06 19:35:20,721 - modelscope - WARNING - Failed to create symbolic link C:\Users\zhangjing.cache\modelscope\hub\FunAudioLLM\FunAudioLLM/Fun-CosyVoice3-0___5B-2512 -> C:\Users\zhangjing.cache\modelscope\hub\FunAudioLLM/Fun-CosyVoice3-0.5B-2512: [WinError 3] 系统找不到指定的路径。: 'C:\Users\zhangjing\.cache\modelscope\hub\FunAudioLLM\FunAudioLLM\Fun-CosyVoice3-0___5B-2512' -> 'C:\Users\zhangjing\.cache\modelscope\hub\FunAudioLLM/Fun-CosyVoice3-0.5B-2512'
Traceback (most recent call last):
File "D:\BaiduNetdisk


\tts\cosyvoice3-0529\webui.py", line 162, in

demo.launch(server_name="0.0.0.0", server_port=8000, show_error=True)

NameError: name 'demo' is not defined
Press any key to continue . . .

从日志可以看到两个关键问题:

  1. 模型下载路径创建符号链接失败Failed to create symbolic link ... 系统找不到指定的路径),说明ModelScope缓存目录结构有误或磁盘不支持符号链接。
  2. NameError: name 'demo' is not defined,表明 webui.py 在执行到 demo.launch() 时,demo 变量尚未被定义。通常是因为前面的模型初始化代码因异常中断,导致 Gradio 界面对象(通常名为 demoappinterface)没有被创建。

根本原因:CosyVoice3 脚本在尝试从 ModelScope 下载模型时出错,脚本崩溃但没有正确退出,最终却尝试运行 demo.launch(),而 demo 还未被赋值。


解决步骤

第一步:手动下载模型并放置到正确位置

由于自动下载失败,建议手动下载模型,并绕过自动下载逻辑。

  1. 从 ModelScope 手动下载 Fun-CosyVoice3-0.5B-2512 模型。
    可访问 ModelScope 模型页 下载所有文件。
  2. 将下载的模型放到固定目录,例如 D:/models/Fun-CosyVoice3-0.5B-2512
  3. 修改 webui.py,在模型加载前指定本地路径,避免自动下载。
    搜索类似 model_dir = snapshot_download(...)model_dir = modelscope_download(...) 的代码,将其改为直接使用本地路径:

    # 原代码类似:
    # model_dir = snapshot_download('FunAudioLLM/Fun-CosyVoice3-0.5B-2512', ...)
    # 改为:
    model_dir = 'D:/models/Fun-CosyVoice3-0.5B-2512'

第二步:修复符号链接警告

如果仍保留自动下载,可清理缓存目录,确保路径不含特殊字符:

  • 删除 C:\Users\zhangjing\.cache\modelscope\hub\FunAudioLLM\ 目录下的所有文件和链接。
  • 以管理员身份运行 CMD,然后再次启动 webui.py。

第三步:检查 webui.py 中 demo 的定义

打开 webui.py,确认 demo 是在 try/except 块外定义的,且所有可能的异常已被捕获。例如在脚本末尾添加异常捕获:

if __name__ == '__main__':
    try:
        # 原有的模型加载和 UI 构建代码
        demo = gr.Interface(...)  # 或其他方式创建 demo
    except Exception as e:
        print(f"初始化失败: {e}")
        # 可以设置一个简单的 fallback demo 防止未定义
        demo = gr.Interface(fn=lambda: "Error", inputs=[], outputs="text")
    demo.launch(server_name="0.0.0.0", server_port=8000, show_error=True)

第四步:强烈建议改用官方 api.py

CosyVoice3 通常提供独立的 api.py,启动方式为:

python api.py --port 8000

它直接暴露 REST API,不依赖 Gradio 界面,无 demo 未定义的问题,且错误信息更清晰。请确认官方仓库中是否有 api.py,推荐使用。

第五步:如果仍然无法解决

请提供 webui.py从第 150 行到末尾 的代码片段(关键在 demo 定义部分),以便给出精准修改建议。

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