#2159 requests.exceptions.HTTPError: 400 Client Error: Bad Request for url: http://127.0.0.1:9880/tts?text=%E4%BD%A0%E5%A5%BD%

2409:8a50* Posted at: 8 hours ago 👁13

400 Client Error: Bad Request for url: http://127.0.0.1:9880/tts?text=%E4%BD%A0%E5%A5%BD%E5%95%8A%E6%88%91%E7%9A%84%E6%9C%8B%E5%8F%8B.&text_lang=zh&ref_audio_path=shenyiu.wav&prompt_text=%E6%88%91%E4%B9%9F%E6%98%AF%E6%9C%BA%E5%85%B3%E5%BF%83%E7%81%B5%E8%B7%91%E5%91%80%EF%BC%8C%E8%B7%91%E5%91%80%EF%BC%8C%E8%B7%91%EF%BC%8C%E7%9C%8B%E5%88%B0%E5%AE%9D%E8%B4%9D%E6%9C%89%E4%B8%AA%E7%BC%BA%E5%8F%A3%EF%BC%8C%E8%BF%99%E4%BC%9A%E6%83%85%E4%B8%8D%E8%87%AA%E7%A6%81%E8%BA%B2%E8%BF%9B%E5%8E%BB%EF%BC%8C%E6%8E%A5%E7%9D%80%E5%B0%B1%E6%98%AFbom.&prompt_lang=zh&speed_factor=1.0:
Traceback (most recent call last):
File "videotrans\util\ListenVoice.py", line 18, in run
File "videotrans\tts\__init__.py", line 291, in run
File "videotrans\tts\_base.py", line 177, in run
File "videotrans\tts\_gptsovits.py", line 112, in _item_task
File "videotrans\tts\_gptsovits.py", line 90, in _run
File "requests\models.py", line 1026, in raise_for_status
requests.exceptions.HTTPError: 400 Client Error: Bad Request for url: http://127.0.0.1:9880/tts?text=%E4%BD%A0%E5%A5%BD%E5%95%8A%E6%88%91%E7%9A%84%E6%9C%8B%E5%8F%8B.&text_lang=zh&ref_audio_path=shenyiu.wav&prompt_text=%E6%88%91%E4%B9%9F%E6%98%AF%E6%9C%BA%E5%85%B3%E5%BF%83%E7%81%B5%E8%B7%91%E5%91%80%EF%BC%8C%E8%B7%91%E5%91%80%EF%BC%8C%E8%B7%91%EF%BC%8C%E7%9C%8B%E5%88%B0%E5%AE%9D%E8%B4%9D%E6%9C%89%E4%B8%AA%E7%BC%BA%E5%8F%A3%EF%BC%8C%E8%BF%99%E4%BC%9A%E6%83%85%E4%B8%8D%E8%87%AA%E7%A6%81%E8%BA%B2%E8%BF%9B%E5%8E%BB%EF%BC%8C%E6%8E%A5%E7%9D%80%E5%B0%B1%E6%98%AFbom.&prompt_lang=zh&speed_factor=1.0


=
system:Windows-10-10.0.26100-SP0
version:v3.89
frozen:True
language:zh
root_dir:F:/win-pyvideotrans-3.89_20251210_143714

7 Replies

这个错误是 GPT-SoVITS 语音克隆服务返回的 HTTP 400 错误。通常是由于发送给 GPT-SoVITS 服务的请求参数有问题,导致服务器无法处理。

核心原因与解决步骤:

  1. 检查 GPT-SoVITS 服务是否正常运行:

    • 请确保你已经正确启动并运行了 GPT-SoVITS 服务(通常是运行 api.pywebui.py)。
    • 在浏览器中访问 http://127.0.0.1:9880,确认服务页面能正常打开。
  2. 检查参考音频文件路径:

    • 错误日志中显示 ref_audio_path=shenyiu.wav。请确认这个名为 shenyiu.wav 的音频文件是否存在于 pyVideoTrans 的根目录(即 F:/win-pyvideotrans-3.89_20251210_143714 文件夹)下。
    • 如果文件不存在,请将你的参考音频文件(.wav 格式)复制到该目录,并确保文件名与设置中的完全一致。
  3. 检查提示文本(Prompt Text):

    • 错误日志中的 prompt_text 参数包含了一段较长的中文文本。GPT-SoVITS 对提示文本的格式和内容可能有要求。
    • 尝试简化提示文本: 在 pyVideoTrans 的 GPT-SoVITS 设置中,将“提示文本”修改为更简短、清晰的内容,例如只包含参考音频中的一句核心台词。避免使用过长、复杂或包含特殊符号(如“bom”)的文本。
  4. 检查文本内容:

    • 确保要合成的文本(text 参数,这里是“你好啊我的朋友.”)是有效的,并且语言设置(text_lang=zh)正确。

操作流程:

  • 首先完成步骤 1 和 2,确保服务运行且文件存在。
  • 如果问题依旧,重点执行步骤 3,简化或清空提示文本后重试。
  • 如果以上步骤均无效,请提供 GPT-SoVITS 服务端的错误日志(通常在启动服务的命令行窗口里),以便进一步诊断。

400 Bad Request

这个错误是 GPT-SoVITS 语音克隆服务返回的 HTTP 400 错误。通常是由于发送给 GPT-SoVITS 服务的请求参数有问题,导致服务器无法处理。

核心原因与解决步骤:

  1. 检查 GPT-SoVITS 服务是否正常运行

    • 请确保你已经正确启动并运行了 GPT-SoVITS 服务(通常是运行 api.pywebui.py)。
    • 在浏览器中访问 http://127.0.0.1:9880,确认服务页面能正常打开。
  2. 检查参考音频文件路径

    • 错误日志中显示 ref_audio_path=shenyiu.wav
    • 请确认这个名为 shenyiu.wav 的音频文件是否存在于 pyVideoTrans 的根目录(即 F:/win-pyvideotrans-3.89_20251210_143714 文件夹)下。
    • 如果文件不存在,请将你的参考音频文件(.wav 格式)复制到该目录,并确保文件名与设置中的完全一致。
  3. 检查提示文本(Prompt Text)

    • 错误日志中的 prompt_text 参数包含了一段较长的中文文本。GPT-SoVITS 对提示文本的格式和内容可能有要求。
    • 尝试简化提示文本:在 pyVideoTrans 的 GPT-SoVITS 设置中,将“提示文本”修改为更简短、清晰的内容,例如只包含参考音频中的一句核心台词。避免使用过长、复杂或包含特殊符号(如“bom”)的文本。
    • 检查文本内容:确保要合成的文本(text 参数,这里是“你好啊我的朋友.”)是有效的,并且语言设置(text_lang=zh)正确。

操作流程
首先完成步骤 1 和 2,确保服务运行且文件存在。如果问题依旧,重点执行步骤 3,简化或清空提示文本后重试。

如果以上步骤均无效,请提供 GPT-SoVITS 服务端的错误日志(通常在启动服务的命令行窗口里),以便进一步诊断。

后台显示 :INFO: 127.0.0.1:26745 - "GET /tts?text=%E4%BD%A0%E5%A5%BD%E5%95%8A%E6%88%91%E7%9A%84%E6%9C%8B%E5%8F%8B.&text_lang=zh&ref_audio_path=shenyiu.wav&prompt_text=%E6%88%91%E4%B9%9F%E6%98%AF%E6%9C%BA%E5%85%B3%E5%BF%83%E7%81%B5%E8%B7%91%E5%91%80%EF%BC%8C%E8%B7%91%E5%91%80%EF%BC%8C%E8%B7%91%EF%BC%8C%E7%9C%8B%E5%88%B0%E5%AE%9D%E8%B4%9D%E6%9C%89%E4%B8%AA%E7%BC%BA%E5%8F%A3%EF%BC%8C%E8%BF%99%E4%BC%9A%E6%83%85%E4%B8%8D%E8%87%AA%E7%A6%81%E8%BA%B2%E8%BF%9B%E5%8E%BB%EF%BC%8C%E6%8E%A5%E7%9D%80%E5%B0%B1%E6%98%AFbom.&prompt_lang=zh&speed_factor=1.0 HTTP/1.1" 400 Bad Request

问题已明确:GPT-SoVITS 服务收到了请求,但返回了 400 错误。这表明请求参数不符合服务端的要求。根据官方文档和常见问题,这通常由以下原因导致:

  1. 参考音频文件路径问题:GPT-SoVITS 服务端无法找到 shenyiu.wav 这个文件。请确认:

    • .wav 文件是否已放置在 GPT-SoVITS 项目根目录下(即你启动 api.pywebui.py 的目录),而不是 pyVideoTrans 的目录。
    • 文件名是否完全一致(包括大小写和扩展名)。
  2. 提示文本(Prompt Text)问题:这是最常见的 400 错误原因。GPT-SoVITS 对提示文本有严格要求:

    • 内容必须与参考音频的说话内容完全一致。你提供的提示文本(“我也是机关心灵跑呀,跑呀,跑,看到宝贝有个缺口,这会情不自禁躲进去,接着就是bom.”)很可能与 shenyiu.wav 文件里的实际说话内容不匹配。
    • 必须使用纯文本,不能包含任何标点符号(如句号、逗号、感叹号)或特殊字符(如“bom.”中的点)。
    • 最佳实践:在 GPT-SoVITS 的 WebUI 中,使用“开启离线批量推理”或“开启API批量推理”功能,让系统自动从参考音频中提取文本作为提示文本,这样可以保证100%匹配。

请按以下步骤操作:

  1. 检查并修正参考音频:将 shenyiu.wav 文件移动到 GPT-SoVITS 的项目文件夹内。
  2. 修正提示文本(关键步骤):

    • 方法一(推荐):在 pyVideoTrans 的 GPT-SoVITS 设置中,清空“提示文本”一栏,留空不填。然后,在 GPT-SoVITS 的 WebUI (http://127.0.0.1:9880) 中,手动上传 shenyiu.wav 并点击“开启离线批量推理”,系统会自动生成正确的提示文本并保存。
    • 方法二:如果你知道参考音频的确切台词,将“提示文本”修改为与音频内容一字不差的纯文本,并删除所有标点符号。例如,如果音频说的是“你好,我的朋友”,则提示文本应设为“你好我的朋友”。

完成以上修正后,重新在 pyVideoTrans 中尝试合成。

还是同样的提示, shenyiu.wav文件在同api.py 或 webui.py 的目录中,文本中的符号也全部去除

根据你提供的信息,问题依然存在。这表明错误可能源于更深层的原因,例如 GPT-SoVITS 模型未正确加载或配置不匹配。请按以下步骤进行深度排查:检查 GPT-SoVITS 模型文件:确保 GPT-SoVITS 项目目录下的 SoVITS_weightsGPT_weights 文件夹中已放置了对应的模型文件(.pth 文件)。如果使用预训练模型,请确认模型文件已下载完整。检查服务启动日志:查看启动 GPT-SoVITS 服务(运行 python api.pywebui.py)的命令行窗口,在启动过程中是否有任何错误或警告信息(例如模型加载失败、CUDA 内存不足等)。这通常是问题的根源。测试 GPT-SoVITS WebUI 基础功能:在浏览器中打开 http://127.0.0.1:9880,尝试在 WebUI 界面中手动进行推理:在“参考音频”部分上传你的 shenyiu.wav 文件。在“推理文本”中输入“你好啊我的朋友”(不带标点)。点击“合成语音”。观察 WebUI 是否能成功合成语音。如果 WebUI 也失败,错误信息会直接显示在页面上,这将直接指明问题所在(如模型错误、音频格式问题等)。检查音频文件格式:虽然文件扩展名是 .wav,但请确认其编码格式是 GPT-SoVITS 支持的(如 PCM 16bit)。你可以使用音频编辑软件(如 Audacity)打开并检查属性,或尝试将其转换为标准的 PCM 16bit, 44100Hz 或 22050Hz 的 WAV 文件。请优先执行步骤 2 和 3,并将服务启动日志和 WebUI 测试结果反馈给我,这能最快速地定位问题。

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

Similar issues already exist

Trending Questions