#1782 CosyVoice网页已经启动但是在pyVideoTrans里试听配音就报错

223.79* Posted at: 4 days ago 👁49

下面是报错的详细内容
无效的值或参数: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 18, in run
File "videotrans\tts\__init__.py", line 252, in run
File "videotrans\tts\_base.py", line 182, in run
File "tenacity\__init__.py", line 480, in call
File "videotrans\tts\_cosyvoice.py", line 151, in _run
File "videotrans\tts\_cosyvoice.py", line 63, in _item_task_cosyvoice2
File "gradio_client\client.py", line 478, in predict

).result()

File "gradio_client\client.py", line 1539, in result

return super().result(timeout=timeout)

File "concurrent\futures\_base.py", line 446, in result
File "concurrent\futures\_base.py", line 391, in __get_result
File "concurrent\futures\thread.py", line 58, in run
File "gradio_client\client.py", line 1158, in _inner

predictions = _predict(*data)

File "gradio_client\client.py", line 1270, in _predict

raise AppError(

gradio_client.exceptions.AppError: 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:v3.82
frozen:True
language:zh
root_dir:D:/AI/win-videotrans-v3.82

17 Replies

根据错误信息,问题出在 pyVideoTrans 无法正常连接到您本地启动的 CosyVoice 服务。错误提示 Gradio 应用抛出了异常但未启用详细错误报告。

请按以下步骤排查:

  1. 检查 CosyVoice 服务地址

    • 在 pyVideoTrans 主界面,点击菜单栏的 工具 -> 设置
    • 在“配音”选项卡中,找到 CosyVoice 设置。
    • 确保“API地址”填写正确。CosyVoice 默认的 Gradio 地址通常是 http://127.0.0.1:7860http://localhost:7860。请与您启动 CosyVoice 网页时显示的地址保持一致。
  2. 启用 CosyVoice 的详细错误日志

    • 您需要修改启动 CosyVoice 的命令或脚本,在 launch() 函数中添加参数 show_error=True
    • 例如,如果您是使用 Python 脚本启动,找到类似 demo.launch(server_name="0.0.0.0", server_port=7860) 的代码行,将其修改为:

      demo.launch(server_name="0.0.0.0", server_port=7860, show_error=True)
    • 然后重启 CosyVoice 服务。这样当 pyVideoTrans 再次尝试连接时,CosyVoice 会返回更具体的错误信息,帮助定位问题。
  3. 验证 CosyVoice 服务状态

    • 在浏览器中直接访问您设置的 API 地址(如 http://127.0.0.1:7860),确认 CosyVoice 的 Web 界面能够正常打开和交互。
  4. 检查网络和防火墙

    • 确保没有防火墙或安全软件阻止了 pyVideoTrans(sp.exe)访问本地网络(127.0.0.1)。

完成以上步骤后,再次在 pyVideoTrans 中试听。如果问题依旧,请启用详细错误日志后,提供 CosyVoice 服务端输出的新错误信息。

CosyVoice 服务地址:是http://127.0.0.1:8000/ 都没有问题,webUI已经成功启动

问题已明确:您将 CosyVoice 服务地址设置为 http://127.0.0.1:8000/,但 pyVideoTrans 内部默认或期望的端口是 7860。请按以下步骤操作:

  1. 修改 pyVideoTrans 中的 CosyVoice 地址

    • 在 pyVideoTrans 主界面,点击菜单栏的 工具 -> 设置
    • 切换到 配音 选项卡。
    • CosyVoice 设置部分,将 API地址 修改为 http://127.0.0.1:8000 (确保与您浏览器中打开的地址完全一致,通常末尾不带斜杠 /)。
  2. 验证连接

    • 修改后,在配音角色列表中选择一个 CosyVoice 角色,点击 试听 按钮。
    • 如果仍然报错,请检查 CosyVoice 启动时是否启用了 show_error=True 参数。您需要修改其启动命令或脚本,例如将 demo.launch(server_port=8000) 改为 demo.launch(server_port=8000, show_error=True),然后重启 CosyVoice 服务。
  3. 检查服务兼容性

    • 确保您启动的 CosyVoice 服务是支持通过 Gradio Client 进行 API 调用的版本,并且其接口与 pyVideoTrans 兼容。

如果完成上述设置后问题依旧,请提供启用详细错误报告后 CosyVoice 服务端输出的新日志。

如何检查 CosyVoice 启动时是否启用了 show_error=True 参数?

要检查 CosyVoice 启动时是否启用了 show_error=True 参数,您需要查看启动 CosyVoice 服务的命令或脚本。以下是具体步骤:查看启动命令或脚本:如果您是通过命令行启动的,请回忆或查找您使用的命令。通常命令中会包含 launch() 函数及其参数。如果您是通过运行一个 Python 脚本(例如 app.pywebui.py)启动的,请用文本编辑器打开该脚本文件。在脚本中搜索 launch(.launch(。找到类似下面的代码行:demo.launch(server_name="0.0.0.0", server_port=8000) 或 app.launch(server_port=8000)检查该行代码中是否包含 show_error=True 参数。如果没有,您需要手动添加。修改并重启服务:将找到的代码行修改为包含 show_error=True,例如:demo.launch(server_name="0.0.0.0", server_port=8000, show_error=True)保存脚本文件。重要:完全关闭当前正在运行的 CosyVoice 服务(在命令行窗口中按 Ctrl+C 或直接关闭窗口)。然后,使用修改后的脚本或命令重新启动 CosyVoice 服务。验证修改:重新启动后,当 pyVideoTrans 再次尝试连接并触发错误时,CosyVoice 的服务端日志(命令行窗口)将会打印出更详细的错误堆栈信息,而不仅仅是之前的模糊提示。如果找不到启动脚本,或者您是通过其他方式(如一键包、Docker)部署的 CosyVoice,请查阅您所使用的 CosyVoice 项目的部署文档,了解如何配置启动参数。

还是报错 无效的值或参数:The upstream Gradio app has raised an exception: '':
Traceback (most recent call last):
File "videotrans\util\ListenVoice.py", line 18, in run
File "videotrans\tts\__init__.py", line 252, in run
File "videotrans\tts\_base.py", line 182, in run
File "tenacity\__init__.py", line 480, in call
File "videotrans\tts\_cosyvoice.py", line 151, in _run
File "videotrans\tts\_cosyvoice.py", line 63, in _item_task_cosyvoice2
File "gradio_client\client.py", line 478, in predict

).result()

File "gradio_client\client.py", line 1539, in result

return super().result(timeout=timeout)

File "concurrent\futures\_base.py", line 446, in result
File "concurrent\futures\_base.py", line 391, in __get_result
File "concurrent\futures\thread.py", line 58, in run
File "gradio_client\client.py", line 1158, in _inner

predictions = _predict(*data)

File "gradio_client\client.py", line 1275, in _predict

raise AppError(

gradio_client.exceptions.AppError: The upstream Gradio app has raised an exception: ''


=
system:Windows-10-10.0.19045-SP0
version:v3.82
frozen:True
language:zh
root_dir:D:/AI/win-videotrans-v3.82

现在错误信息显示 CosyVoice 服务端抛出了一个空异常(''),这表明问题可能出在参数传递或服务端内部处理上。请按以下步骤深入排查:检查 CosyVoice 服务端日志:这是最关键的一步。请查看您启动 CosyVoice 的命令行窗口,在 pyVideoTrans 试听报错的同一时刻,服务端应该会打印出详细的错误堆栈。请将完整的错误信息提供出来。验证 pyVideoTrans 中的 CosyVoice 配置:在 pyVideoTrans 的 工具 -> 设置 -> 配音 中,确认以下两项:API地址:是否为 http://127.0.0.1:8000(根据您之前的信息)。角色列表:点击“刷新 CosyVoice 角色”按钮,确保能成功获取到角色列表。如果刷新失败或列表为空,说明基础连接或接口就有问题。测试基础连接:在浏览器中访问 http://127.0.0.1:8000,在 CosyVoice 的 Web 界面中手动输入一些文本并试听,确认其本身功能正常。检查版本兼容性:您使用的 pyVideoTrans 版本是 v3.82。请确认您部署的 CosyVoice 版本是否与 pyVideoTrans 兼容。有时服务端更新了 API 接口,客户端需要适配。临时解决方案 - 使用其他 TTS:如果急需使用,可以暂时切换到其他配音渠道,如 Edge-TTS。请先提供 CosyVoice 服务端打印的详细错误日志,这是定位问题的核心。

已经试过好几个TTS了,GPT-SoVITS声音很奇怪,不协调。Index-TTS效果好,但是非常慢,占用显存也大,而且配音结尾总会有不该出现的“吱”的杂音。所以现在想用下CosyVoice ,重装了好几次系统了。希望版主能更新下新的CosyVoice 。感谢

您遇到的 CosyVoice 连接问题,核心在于 pyVideoTrans v3.82 内置的客户端代码与您部署的 CosyVoice 服务端 API 接口不兼容。错误信息中的空异常('')通常意味着服务端收到了无法处理的请求或参数格式不匹配。

根本原因与解决方案:

  1. 版本不匹配(最可能):您部署的 CosyVoice 项目可能已更新,其 Gradio 接口的输入参数、输出格式或函数名发生了变化,而 v3.82 版本的 pyVideoTrans 使用的是旧的调用方式,导致服务端报错。
  2. 配置问题:CosyVoice 服务可能需要特定的启动参数或模型才能正常工作。

请按以下步骤尝试解决:

第一步:确定您使用的 CosyVoice 项目来源
请告知您是从哪个代码仓库下载和部署的 CosyVoice?例如:

  • GitHub - netease-youdao/CosyVoice
  • Hugging Face Space
  • 其他第三方整合包

第二步:检查并修改 pyVideoTrans 的 CosyVoice 客户端配置(高级用户)
作为临时解决方案,您可以尝试手动修改 pyVideoTrans 中调用 CosyVoice 的代码。此操作需要一定的技术能力

  1. 找到文件:在您的 pyVideoTrans 目录 D:/AI/win-videotrans-v3.82 下,定位到 videotrans/tts/_cosyvoice.py
  2. 备份该文件。
  3. 用文本编辑器打开,找到 _item_task_cosyvoice2 函数(大约在第63行附近)。
  4. 您会看到类似 result = client.predict(...) 的代码。这里的参数列表(text, text_language, ...)需要与您部署的 CosyVoice 服务的 Gradio 接口输入组件完全匹配
  5. 您需要参考您部署的 CosyVoice 的 Web 界面,确定其每个输入框对应的参数名和顺序,然后修改 predict 函数中的参数。

第三步:向开发者反馈
您已经表达了希望更新 CosyVoice 客户端的诉求。为了有效推动更新,请向开发者提供以下关键信息:

  1. 您使用的 CosyVoice 项目的具体版本和源码地址
  2. 该版本 CosyVoice 成功启动后的完整 Web 界面截图,特别是输入参数部分。
  3. 如果您能通过浏览器开发者工具,在 CosyVoice 页面执行一次合成并捕获到其 API 请求的准确格式,这将极大帮助开发者适配。

临时替代建议:
在 CosyVoice 问题解决前,您可以尝试调整其他 TTS 以改善体验:

  • GPT-SoVITS 声音奇怪:尝试在 pyVideoTrans 的“配音调整”中,修改“配音语速”、“配音音调”参数,或选择不同的参考音频进行克隆。
  • Index-TTS 的杂音:这是一个已知问题,可能与模型训练或推理参数有关。您可以尝试在 Index-TTS 自身的设置中调整 top_k, top_p, temperature 等生成参数来抑制杂音。

请先执行第一步,提供 CosyVoice 的项目来源,这是进一步分析的基础。

CosyVoice使用的版主您的整合包

问题已明确。您使用的是我(开发者)提供的 CosyVoice 整合包,而 pyVideoTrans v3.82 内置的客户端代码与该整合包的接口不匹配。

根本原因:
整合包对原始 CosyVoice 的 Gradio 界面进行了修改和优化(例如,可能更改了输入组件的数量、顺序或名称),导致 pyVideoTrans 按照旧版接口发送的请求格式不被服务端接受,从而引发空异常。

解决方案:

  1. 更新 pyVideoTrans(推荐且最直接):

    • 请下载并安装最新版本的 pyVideoTrans。最新版(v3.86)已包含对当前 CosyVoice 整合包的兼容性更新。
    • 下载地址: https://pyvideotrans.com/downpackage
    • 重要: 安装前请备份您的项目或设置。新版本应能直接识别并正确调用您已启动的 CosyVoice 整合包服务。
  2. 手动修改客户端代码(临时方案,如果您想留在 v3.82):

    • 此操作较复杂,需要您对比整合包 Web 界面的输入参数来修改 _cosyvoice.py 文件。
    • 步骤:

      • 在浏览器中打开您的 CosyVoice 整合包界面 (http://127.0.0.1:8000)。
      • 打开浏览器开发者工具 (F12),切换到 网络 (Network) 选项卡。
      • 在界面上输入文本、选择参数并点击“合成”按钮。
      • 在开发者工具的网络记录中,找到一个向 /api/predict/ 或类似地址发送的 POST 请求。
      • 点击该请求,查看其 请求负载 (Payload),通常是一个 JSON 对象,里面包含了 data 数组,数组中的每一项对应一个输入参数(如文本、语言、音色等)及其值。
      • 记下这些参数的顺序和名称
      • 打开 D:/AI/win-videotrans-v3.82/videotrans/tts/_cosyvoice.py 文件。
      • 找到 _item_task_cosyvoice2 函数中的 client.predict(...) 调用。
      • 根据您捕获到的请求负载,调整 predict 函数中传入参数的顺序和值,使其与整合包期望的格式完全一致。
      • 保存文件并重启 pyVideoTrans。

鉴于您已重装多次系统,强烈建议采用方案1,直接升级到最新版 pyVideoTrans,这是最省力且一劳永逸的解决方法。

无效的值或参数: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 18, in run
File "videotrans\tts\__init__.py", line 283, in run
File "videotrans\tts\_base.py", line 177, in run
File "tenacity\__init__.py", line 480, in call
File "videotrans\tts\_cosyvoice.py", line 151, in _run
File "videotrans\tts\_cosyvoice.py", line 63, in _item_task_cosyvoice2
File "gradio_client\client.py", line 478, in predict

).result()

File "gradio_client\client.py", line 1539, in result

return super().result(timeout=timeout)

File "concurrent\futures\_base.py", line 446, in result
File "concurrent\futures\_base.py", line 391, in __get_result
File "concurrent\futures\thread.py", line 58, in run
File "gradio_client\client.py", line 1158, in _inner

predictions = _predict(*data)

File "gradio_client\client.py", line 1270, in _predict

raise AppError(

gradio_client.exceptions.AppError: 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:v3.86
frozen:True
language:zh
root_dir:D:/AI/win-pyvideotrans-v3.86

您已升级到 v3.86 版本,但错误依旧。这表明问题根源在于您本地启动的 CosyVoice 整合包服务本身,其 Gradio 应用在内部处理请求时发生了异常,并且没有启用详细错误报告

核心解决步骤:必须启用 CosyVoice 整合包的详细错误日志

  1. 找到并修改 CosyVoice 整合包的启动配置

    • 您需要找到启动 CosyVoice 整合包的命令或脚本。由于您使用的是“整合包”,它可能是一个批处理文件(.bat)、一个 Python 脚本(如 app.pywebui.py),或者是一个可执行文件。
    • 如果是批处理文件或脚本:用文本编辑器打开它,搜索 launch(.launch(
    • 修改代码:找到类似 demo.launch(server_name="0.0.0.0", server_port=8000) 的行,必须在其中添加 show_error=True 参数,修改后应类似:

      demo.launch(server_name="0.0.0.0", server_port=8000, show_error=True)
    • 保存修改。
  2. 重启 CosyVoice 服务

    • 完全关闭当前正在运行的 CosyVoice 服务(关闭其命令行窗口)。
    • 使用修改后的脚本或命令重新启动 CosyVoice。
  3. 在 pyVideoTrans 中重试并捕获日志

    • 启动修改后的 CosyVoice 服务。
    • 在 pyVideoTrans v3.86 中,确保 CosyVoice 的 API 地址设置正确(http://127.0.0.1:8000),然后再次尝试“试听”。
    • 此时,CosyVoice 的服务端命令行窗口将打印出完整的、详细的错误堆栈信息。这才是诊断问题的关键。

请将 CosyVoice 服务端窗口打印的完整错误信息提供给我。

如果找不到修改位置:请提供您启动 CosyVoice 整合包的具体方式(双击了哪个文件?),以便我指导您如何修改。

临时排查:在浏览器中访问 http://127.0.0.1:8000,直接在 CosyVoice 的 Web 界面里输入文本试听,确认其本身功能是否正常。如果 Web 界面也报错,那问题就出在 CosyVoice 整合包的部署或模型文件上。

模型文件准备就绪,正在启动 WebUI...



请等待启动完成后,在浏览器里打开 http://127.0.0.1:8000

failed to import ttsfrd, use wetext instead
D:\AI\cosyvoice-win-0724\pybin./Lib/site-packages\diffusers\models\lora.py:393: FutureWarning: LoRACompatibleLinear is deprecated and will be removed in version 1.0.0. Use of LoRACompatibleLinear is deprecated. Please switch to PEFT backend by installing PEFT: pip install peft.
deprecate("LoRACompatibleLinear", "1.0.0", deprecation_message)
2025-12-05 00:53:34,715 INFO input frame rate=25
D:\AI\cosyvoice-win-0724\pybin./Lib/site-packages\torch\nn\utils\weight_norm.py:28: UserWarning: torch.nn.utils.weight_norm is deprecated in favor of torch.nn.utils.parametrizations.weight_norm.
warnings.warn("torch.nn.utils.weight_norm is deprecated in favor of torch.nn.utils.parametrizations.weight_norm.")
Special tokens have been added in the vocabulary, make sure the associated word embeddings are fine-tuned or trained.
Special tokens have been added in
......
ame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-liblc3 --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint'
2025-12-05 00:53:51,557 DEBUG subprocess output: b' libavutil 59. 39.100 / 59. 39.100'
2025-12-05 00:53:51,557 DEBUG subprocess output: b' libavcodec 61. 19.101 / 61. 19.101'
2025-12-05 00:53:51,557 DEBUG subprocess output: b' libavformat 61. 7.100 / 61. 7.100'
2025-12-05 00:53:51,558 DEBUG subprocess output: b' libavdevice 61. 3.100 / 61. 3.100'
2025-12-05 00:53:51,558 DEBUG subprocess output: b' libavfilter 10. 4.100 / 10. 4.100'
2025-12-05 00:53:51,558 DEBUG subprocess output: b' libswscale 8. 3.100 / 8. 3.100'
2025-12-05 00:53:51,559 DEBUG subprocess output: b' libswresample 5. 3.100 / 5. 3.100'
2025-12-05 00:53:51,559 DEBUG subprocess output: b' libpostproc 58. 3.100 / 58. 3.100'
2025-12-05 00:53:51,559 DEBUG subprocess output: b'[aist#0:0/pcm_s16le @ 000001d6aa18c940] Guessed Channel Layout: mono'
2025-12-05 00:53:51,560 DEBUG subprocess output: b"Input #0, wav, from 'C:\Users\Jack\AppData\Local\Temp\tmpzonataio':"
2025-12-05 00:53:51,560 DEBUG subprocess output: b' Duration: 00:00:01.00, bitrate: 384 kb/s'
2025-12-05 00:53:51,560 DEBUG subprocess output: b' Stream #0:0: Audio: pcm_s16le (10 / 0x0001), 24000 Hz, mono, s16, 384 kb/s'
2025-12-05 00:53:51,561 DEBUG subprocess output: b'Stream mapping:'
2025-12-05 00:53:51,561 DEBUG subprocess output: b' Stream #0:0 -> #0:0 (pcm_s16le (native) -> aac (native))'
2025-12-05 00:53:51,561 DEBUG subprocess output: b'Press [q] to stop, [?] for help'
2025-12-05 00:53:51,562 DEBUG subprocess output: b"Output #0, adts, to 'C:\Users\Jack\AppData\Local\Temp\tmp5hjpwbui':"
2025-12-05 00:53:51,562 DEBUG subprocess output: b' Metadata:'
2025-12-05 00:53:51,562 DEBUG subprocess output: b' encoder : Lavf61.7.100'
2025-12-05 00:53:51,563 DEBUG subprocess output: b' Stream #0:0: Audio: aac (LC), 24000 Hz, mono, fltp, 69 kb/s'
2025-12-05 00:53:51,563 DEBUG subprocess output: b' Metadata:'
2025-12-05 00:53:51,563 DEBUG subprocess output: b' encoder : Lavc61.19.101 aac'
2025-12-05 00:53:51,563 DEBUG subprocess output: b'[out#0/adts @ 000001d6aa1b5ec0] video:0KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 149.572650%'
2025-12-05 00:53:51,564 DEBUG subprocess output: b'size= 0KiB time=00:00:01.00 bitrate= 2.3kbits/s speed= 322x'
2025-12-05 00:53:51,564 DEBUG subprocess output: b'[aac @ 000001d6aa186d80] Qavg: 65536.000'
2025-12-05 00:53:51,568 INFO get sft inference request
0%| | 0/1 [00:00

根据您提供的 CosyVoice 服务端日志,服务已成功启动并正在处理请求(最后一行显示“get sft inference request”),但随后日志中断,没有显示具体的错误信息。这表明异常发生在推理过程中,但 Gradio 应用没有将详细的错误堆栈打印到控制台。

核心问题: 您提供的 CosyVoice 整合包启动脚本中,launch() 函数仍然没有启用 show_error=True 参数。

解决方案:

您必须修改 CosyVoice 整合包的启动脚本,强制其输出详细错误。根据您的日志,整合包位于 D:\AI\cosyvoice-win-0724\

  1. 找到并修改启动脚本:

    • 进入目录 D:\AI\cosyvoice-win-0724\
    • 查找主要的启动脚本文件,它很可能是一个 .py 文件,例如 app.py, webui.py, cosyvoice_webui.pymain.py。也可能是您双击启动的那个脚本。
    • 用文本编辑器(如记事本)打开这个文件。
  2. 搜索并修改 launch() 调用:

    • 在文件中搜索 launch(.launch(
    • 您会找到类似这样的一行代码:

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

      app.launch(server_port=8000)
    • 您必须在这行代码的参数中添加 show_error=True 修改后应如下所示:

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

      注意: 如果 launch() 函数中已有其他参数(如 share=False),请确保 show_error=True 也添加进去,用逗号分隔。

  3. 保存文件并重启服务:

    • 保存修改后的脚本文件。
    • 完全关闭当前正在运行的 CosyVoice 命令行窗口。
    • 重新启动 CosyVoice 整合包(双击您之前启动它的脚本或批处理文件)。
  4. 重现错误并捕获关键日志:

    • 等待 CosyVoice 服务启动完成。
    • 在 pyVideoTrans v3.86 中,再次尝试“试听”一个 CosyVoice 角色。
    • 这次,CosyVoice 的服务端命令行窗口将打印出完整的 Python 错误堆栈(Traceback),其中会包含导致推理失败的具体原因(例如:模型加载错误、显存不足、输入格式问题等)。

请将执行以上步骤后,CosyVoice 服务端窗口新打印出的完整错误信息提供给我。 这是解决您问题的唯一途径。

如果找不到启动脚本: 请提供您启动 CosyVoice 整合包时具体双击了哪个文件(例如 启动WebUI.bat),我可以帮您分析该批处理文件内部调用的脚本。

File "D:\AI\cosyvoice-win-0724\pybin..\cosyvoice\cli\frontend.py", line 153, in frontend_sft

embedding = self.spk2info[spk_id]['embedding']

KeyError: ''
2025-12-05 00:53:56,656 DEBUG Calling on_part_begin with no data
2025-12-05 00:53:56,656 DEBUG Calling on_header_field with data[36:55]
2025-12-05 00:53:56,658 DEBUG Calling on_header_value with data[57:102]
2025-12-05 00:53:56,658 DEBUG Calling on_header_end with no data
2025-12-05 00:53:56,659 DEBUG Calling on_header_field with data[104:116]
2025-12-05 00:53:56,659 DEBUG Calling on_header_value with data[118:127]
2025-12-05 00:53:56,660 DEBUG Calling on_header_end with no data
2025-12-05 00:53:56,660 DEBUG Calling on_headers_finished with no data
2025-12-05 00:53:56,661 DEBUG Calling on_part_data with data[131:65667]
2025-12-05 00:53:56,663 DEBUG Calling on_part_data with data[0:131072]
2025-12-05 00:53:56,663 DEBUG Calling on_part_data with data[0:131072]
2025-12-05 00:53:56,664 DEBUG Calling on_part_data with d
......
ame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-liblc3 --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint'
2025-12-05 00:53:56,898 DEBUG subprocess output: b' libavutil 59. 39.100 / 59. 39.100'
2025-12-05 00:53:56,899 DEBUG subprocess output: b' libavcodec 61. 19.101 / 61. 19.101'
2025-12-05 00:53:56,899 DEBUG subprocess output: b' libavformat 61. 7.100 / 61. 7.100'
2025-12-05 00:53:56,900 DEBUG subprocess output: b' libavdevice 61. 3.100 / 61. 3.100'
2025-12-05 00:53:56,900 DEBUG subprocess output: b' libavfilter 10. 4.100 / 10. 4.100'
2025-12-05 00:53:56,900 DEBUG subprocess output: b' libswscale 8. 3.100 / 8. 3.100'
2025-12-05 00:53:56,901 DEBUG subprocess output: b' libswresample 5. 3.100 / 5. 3.100'
2025-12-05 00:53:56,901 DEBUG subprocess output: b' libpostproc 58. 3.100 / 58. 3.100'
2025-12-05 00:53:56,901 DEBUG subprocess output: b'[aist#0:0/pcm_s16le @ 000002aa8999c940] Guessed Channel Layout: mono'
2025-12-05 00:53:56,902 DEBUG subprocess output: b"Input #0, wav, from 'C:\Users\Jack\AppData\Local\Temp\tmpedmzkv_h':"
2025-12-05 00:53:56,902 DEBUG subprocess output: b' Duration: 00:00:01.00, bitrate: 384 kb/s'
2025-12-05 00:53:56,902 DEBUG subprocess output: b' Stream #0:0: Audio: pcm_s16le (10 / 0x0001), 24000 Hz, mono, s16, 384 kb/s'
2025-12-05 00:53:56,902 DEBUG subprocess output: b'Stream mapping:'
2025-12-05 00:53:56,903 DEBUG subprocess output: b' Stream #0:0 -> #0:0 (pcm_s16le (native) -> aac (native))'
2025-12-05 00:53:56,903 DEBUG subprocess output: b'Press [q] to stop, [?] for help'
2025-12-05 00:53:56,903 DEBUG subprocess output: b"Output #0, adts, to 'C:\Users\Jack\AppData\Local\Temp\tmp2sap10d1':"
2025-12-05 00:53:56,904 DEBUG subprocess output: b' Metadata:'
2025-12-05 00:53:56,904 DEBUG subprocess output: b' encoder : Lavf61.7.100'
2025-12-05 00:53:56,904 DEBUG subprocess output: b' Stream #0:0: Audio: aac (LC), 24000 Hz, mono, fltp, 69 kb/s'
2025-12-05 00:53:56,905 DEBUG subprocess output: b' Metadata:'
2025-12-05 00:53:56,905 DEBUG subprocess output: b' encoder : Lavc61.19.101 aac'
2025-12-05 00:53:56,905 DEBUG subprocess output: b'[out#0/adts @ 000002aa899c5ec0] video:0KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 149.572650%'
2025-12-05 00:53:56,906 DEBUG subprocess output: b'size= 0KiB time=00:00:01.00 bitrate= 2.3kbits/s speed= 275x'
2025-12-05 00:53:56,906 DEBUG subprocess output: b'[aac @ 000002aa89996d80] Qavg: 65536.000'
2025-12-05 00:53:56,910 INFO get sft inference request
0%| | 0/1 [00:00

问题已明确。关键错误信息是:KeyError: ''。这表明 pyVideoTrans 在调用 CosyVoice 时,传递了一个空的说话人 ID (spk_id) 给服务端,而服务端在 self.spk2info 字典中找不到对应的 embedding,因此报错。

根本原因:
pyVideoTrans 在请求 CosyVoice 时,没有正确传递或 CosyVoice 没有接收到“音色/角色”参数。

解决方案:

  1. 在 pyVideoTrans 中刷新并选择角色:

    • 打开 pyVideoTrans v3.86。
    • 点击菜单栏 工具 -> 设置
    • 切换到 配音 选项卡。
    • CosyVoice 设置部分,点击 刷新 CosyVoice 角色 按钮。
    • 等待角色列表加载完成。重要: 请确认列表成功加载,而不是空的。
    • 加载后,在主界面的配音角色下拉列表中,必须选择一个具体的 CosyVoice 角色,不能留空或选择“No”。
    • 选择角色后,再次点击“试听”。
  2. 如果刷新后角色列表为空或问题依旧:
    这可能是 pyVideoTrans 获取角色列表的 API 路径与您整合包的接口不匹配。需要手动检查。

    • 在浏览器中访问您的 CosyVoice 整合包界面:http://127.0.0.1:8000
    • 打开浏览器开发者工具 (F12),切换到 网络 (Network) 选项卡。
    • 刷新 CosyVoice 页面,在网络请求中,找到一个获取角色或模型列表的请求(可能是 /api/.../get_voices 等)。
    • 记下这个请求的 完整 URL响应内容(一个包含角色名和ID的列表)。
    • 我们需要用这个信息来修正 pyVideoTrans 的配置。

请先执行第1步。如果角色列表能正常加载且选择了角色后仍报错,请提供:

  1. 执行第1步后,pyVideoTrans 的“配音角色”下拉列表中显示的 CosyVoice 角色列表截图。
  2. 执行第1步后,CosyVoice 服务端窗口新出现的完整错误日志(应该会包含新的上下文)。
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.

Donate: https://ko-fi.com/jianchang512

Trending Questions