#5903 {"message":"tts failed","Exception":"\"slow_conv2d_cpu\" not implemented for 'Half'"}self.api_url='http://127.

2408:825c* Posted at: 3 hours ago

{"message":"tts failed","Exception":"\"slow_conv2d_cpu\" not implemented for 'Half'"}
self.api_url='http://127.0.0.1:9880/tts':
Traceback (most recent call last):
File "videotrans\util\ListenVoice.py", line 21, in run
File "videotrans\tts\__init__.py", line 207, in run
File "videotrans\tts\_base.py", line 134, in run
videotrans.configure.excepts.DubbingSrtError: {"message":"tts failed","Exception":"\"slow_conv2d_cpu\" not implemented for 'Half'"}
self.api_url='http://127.0.0.1:9880/tts'


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

10 Replies

这是由于 GPT-SoVITS 当前使用了半精度浮点数(Half)参数,但在 CPU 上执行时 PyTorch 不支持该类型的 slow_conv2d 操作。

解决方案:

  1. 修改 GPT-SoVITS 服务启动参数:在启动 GPT-SoVITS API 服务时,添加或修改参数 --half 0--fp16 0,强制使用 float32 精度(不同版本的参数名可能不同,请查阅您的 GPT-SoVITS 启动脚本)。
  2. 或使用 GPU 运行:如果您的机器有 NVIDIA 显卡并已配置 CUDA,请确保 GPT-SoVITS 运行在 GPU 上(默认即用 GPU,此时半精度可正常加速)。
  3. 检查 API 请求参数:若您自行修改了软件 params.json 中 GPT-SoVITS 的配置,请确认未额外添加 "half": "True" 等参数。

调整后重启 GPT-SoVITS 服务,再重新运行 pyVideoTrans 即可。

在启动 GPT-SoVITS API 服务时,添加或修改参数 --half 0 或 --fp16 0,强制使用 float32 精度(不同版本的参数名可能不同,请查阅您的 GPT-SoVITS 启动脚本)

确认:您需要强制 GPT-SoVITS 使用 float32 精度,禁用半精度(Half)。具体操作步骤如下:

  1. 找到 GPT-SoVITS 的启动脚本(通常是 api.pywebui.py 所在目录下的启动命令/批处理文件)。
  2. 在命令行参数中添加 --fp16 False--half 0(取决于版本,大多数新版使用 --fp16)。例如:

    python api.py --fp16 False --port 9880
  3. 如果您的 GPT-SoVITS 是通过一键包启动的,请编辑启动脚本或配置文件(如 config.yaml),将 fp16half 设置为 false
  4. 重启 GPT-SoVITS 服务,确保控制台输出中无 half 相关提示。

修改后回到 pyVideoTrans 重新执行任务即可。如果仍有问题,请提供 GPT-SoVITS 启动时的完整控制台日志。

请提供 GPT-SoVITS 启动时的完整控制台日志

请提供 GPT-SoVITS 启动时的完整控制台日志(包括启动参数和任何报错信息),以便进一步分析。

请提供 GPT-SoVITS 启动时的完整控制台日志,哪里找控制台日志

如果您是通过命令行或批处理文件启动的 GPT-SoVITS,控制台日志就是终端(CMD、PowerShell 或终端窗口)中显示的所有文字。请按照以下方式获取:

  1. 如果是双击 .bat.sh 启动的

    • 打开该启动脚本所在的文件夹,按住 Shift 键并右键点击空白处,选择“在此处打开命令窗口”(或“在终端中打开”)。
    • 在命令窗口中输入启动脚本的名称(如 api.bat./api.sh)并回车,启动后终端上显示的信息就是控制台日志。
    • 将其中从启动开始到出现错误或您停止之间的全部文本复制出来即可。
  2. 如果是通过 python api.py 命令启动的

    • 直接用终端运行该命令,终端输出的内容即为控制台日志。
  3. 如果启动后程序自动隐藏了控制台窗口(例如 GPT-SoVITS 的一键整合包有时默认不显示控制台),请找到 api.py 所在的目录,手动用终端运行:

    python api.py --fp16 False

    即可看到实时日志。

请将得到的日志完整粘贴回来,我会帮您分析具体原因。

如果启动后程序自动隐藏了控制台窗口(例如 GPT-SoVITS 的一键整合包有时默认不显示控制台),请找到 api.py 所在的目录,手动用终端运行:

python api.py --fp16 False
具体操作

如果启动后程序自动隐藏了控制台窗口(例如 GPT-SoVITS 的一键整合包有时默认不显示控制台),请找到 api.py 所在的目录,手动用终端运行:

python api.py --fp16 False
如何
具体操作

请按以下步骤手动在终端中运行 GPT-SoVITS 的 API 服务并获取日志:

  1. 找到 api.py 所在的文件夹

    • 通常在您下载的 GPT-SoVITS 主目录下,例如 D:\GPT-SoVITS\E:\GPT-SoVITS一键包\
    • 如果找不到,可以在该目录里用搜索功能搜索 api.py
  2. 在该目录下打开命令提示符(CMD)

    • api.py 所在的文件夹内,按住键盘上的 Shift 键,然后 右键点击 文件夹空白处。
    • 在弹出的菜单中选择 “在此处打开命令窗口”“在终端中打开”(Windows 11 中为 “在终端中打开”)。
  3. 输入启动命令

    • 在打开的黑窗口(CMD 或 PowerShell)中,输入以下命令并回车:

      python api.py --fp16 False
    • 如果您使用的是虚拟环境,可能需要先激活环境,但大部分一键包已内置 Python 环境,直接执行即可。
  4. 观察并复制日志

    • 启动后终端会滚动输出日志。如果出现错误或您需要停止服务(按 Ctrl+C),请将终端中 从开始到结束的全部文本 选中并复制(鼠标选中文字后右键点击即可复制)。
    • 将复制的日志内容粘贴回来,我会帮您分析和解决 slow_conv2d_cpu not implemented for 'Half' 的问题。

如果提示 python 命令未找到,请尝试改用 python.exe 的完整路径(例如一键包内的 runtime/python.exe)或使用 .\runtime\python.exe api.py --fp16 False。具体路径请查看您的 GPT-SoVITS 文件夹内的 start.batapi.sh 文件中的实际调用方式。

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 via ko-fi.com

Dondate via PayPal

Related resource