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

45.144* Posted at: 3 days ago 👁35

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=456.wav&prompt_text=%E4%BD%A0%E6%98%AF%E4%BB%80%E4%B9%88%E6%A0%B7%E5%B0%B1%E6%98%AF%E4%BB%80%E4%B9%88%E6%A0%B7%E5%95%8A%EF%BC%81%E5%81%9A%E8%87%AA%E5%B7%B1%E5%8A%9B%E6%89%80%E8%83%BD%E5%8F%8A%E7%9A%84%E4%BA%8B%E6%83%85%E3%80%82&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 284, in run
File "videotrans\tts\_base.py", line 179, in run
File "videotrans\tts\_base.py", line 208, in _local_mul_thread
File "videotrans\tts\_gptsovits.py", line 98, in _item_task
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=456.wav&prompt_text=%E4%BD%A0%E6%98%AF%E4%BB%80%E4%B9%88%E6%A0%B7%E5%B0%B1%E6%98%AF%E4%BB%80%E4%B9%88%E6%A0%B7%E5%95%8A%EF%BC%81%E5%81%9A%E8%87%AA%E5%B7%B1%E5%8A%9B%E6%89%80%E8%83%BD%E5%8F%8A%E7%9A%84%E4%BA%8B%E6%83%85%E3%80%82&prompt_lang=zh&speed_factor=1.0


=
system:Windows-10-10.0.26100-SP0
version:v3.92
frozen:True
language:zh
root_dir:D:/videotrans

13 Replies

这个错误表明在使用 GPT-SoVITS 进行语音克隆时,向本地服务 http://127.0.0.1:9880 发送的请求被拒绝(HTTP 400 Bad Request)。这通常是由于请求参数格式或内容不符合 GPT-SoVITS 服务端的要求。

请按以下步骤排查:

  1. 确认 GPT-SoVITS 服务已正确启动并运行在端口 9880

    • 检查你的 GPT-SoVITS 项目是否已成功启动,并监听在 127.0.0.1:9880 端口。你可以在浏览器中访问 http://127.0.0.1:9880 查看是否有响应。
  2. 检查参考音频文件路径

    • 错误日志中显示 ref_audio_path=456.wav。请确认这个 456.wav 文件是否存在于 GPT-SoVITS 项目根目录下。在 pyVideoTrans 中设置的参考音频路径,应该是相对于 GPT-SoVITS 服务端的路径,而不是 pyVideoTrans 的路径。
    • 解决方案:将你的参考音频文件(例如 456.wav)复制到 GPT-SoVITS 项目的根目录中。
  3. 检查参考音频和提示文本

    • GPT-SoVITS 对参考音频和提示文本有特定要求。参考音频应清晰、无背景噪音,且包含的语音内容应与 prompt_text(提示文本)完全一致
    • 从错误信息看,你的提示文本是:“你是什么样就是什么样啊!做自己力所能及的事情。” 请确保你的 456.wav 音频里说的就是这句话,且发音清晰。
  4. 简化请求进行测试

    • 在 pyVideoTrans 的 GPT-SoVITS 配置界面,尝试使用更短的、无标点符号的提示文本,并确保其与参考音频内容一字不差。
  5. 查看 GPT-SoVITS 服务端日志

    • 启动 GPT-SoVITS 服务的命令行窗口会输出详细日志。当 pyVideoTrans 发送请求失败时,查看该窗口的报错信息,这能提供最直接的错误原因(如音频加载失败、文本编码问题等)。

总结:核心问题极有可能是 参考音频文件不在 GPT-SoVITS 服务端可访问的路径下,或者参考音频内容与提示文本不匹配。请优先检查并确保 456.wav 文件位于 GPT-SoVITS 项目文件夹内。

请查看更多参考文档:

如何解决

核心解决步骤是确保 GPT-SoVITS 服务端能正确访问到参考音频文件,并检查音频与文本的匹配。请按顺序操作:

  1. 定位并启动 GPT-SoVITS 服务

    • 找到你部署 GPT-SoVITS 的文件夹。
    • 根据其文档(通常运行 python api.py 或执行 run.bat)启动服务。确保命令行窗口显示成功运行在 http://127.0.0.1:9880
  2. 放置参考音频文件

    • 将你准备好的参考音频文件(例如 456.wav复制或移动到 GPT-SoVITS 项目的根目录(即与 api.py 同级的文件夹)。
  3. 在 pyVideoTrans 中正确配置

    • 在配音角色选择时,选择 GPT-SoVITS 并点击“设置”。
    • 在“参考音频”处,只需填写文件名 456.wav(因为服务默认从自己的根目录查找)。
    • 在“参考音频文本”处,必须严格、一字不差地填写 456.wav 音频中人物所说的完整句子(例如:“你是什么样就是什么样啊!做自己力所能及的事情。”)。
  4. 测试与查看日志

    • 在 pyVideoTrans 中点击“试听”进行测试。
    • 关键:同时观察 GPT-SoVITS 服务端的命令行窗口,查看是否有更详细的错误输出(如“音频加载失败”、“文本编码错误”等),这是诊断问题的关键。

如果上述步骤后问题依旧,请提供 GPT-SoVITS 服务端命令行中显示的错误日志。

请查看更多参考文档:

image
image

根据你提供的截图,问题已经非常明确。错误信息显示 “参考音频路径不存在”。这表明 pyVideoTrans 发送请求时,指定的 ref_audio_path=456.wav 这个文件路径,在你的 GPT-SoVITS 服务端 上找不到。

根本原因:你很可能在 pyVideoTrans 的 GPT-SoVITS 设置中,填写了 456.wav 这个文件名,但 这个文件并没有放在 GPT-SoVITS 服务程序所在的目录下。GPT-SoVITS 服务是从它自己所在的文件夹去寻找这个文件的。

解决方案(两步):

  1. 找到并放置音频文件

    • 找到你电脑上 456.wav 这个参考音频文件。
    • 找到你启动 GPT-SoVITS 服务的文件夹(也就是运行 api.pyrun.bat 的那个目录)。
    • 456.wav 文件 复制或移动 到这个 GPT-SoVITS 服务文件夹的根目录下(和 api.py 放在一起)。
  2. 在 pyVideoTrans 中简化配置(关键)

    • 重新打开 pyVideoTrans 的 GPT-SoVITS 设置窗口。
    • “参考音频” 输入框中,只填写文件名 456.wav不要包含任何路径(例如 C:\Users\...\456.wav 是错误的)。
    • “参考音频文本” 输入框中,确保内容与 456.wav 里的说话内容 完全一致(从你的错误信息看,文本是“你是什么样就是什么样啊!做自己力所能及的事情。”)。
    • 保存设置,然后重新试听。

完成以上操作后,问题应该就能解决。 如果仍然报错,请检查 GPT-SoVITS 服务端的命令行窗口,看是否有新的错误信息,并截图提供。

请查看更多参考文档:

zimage
不是在一起吗

从截图看,你的 456.wav 文件确实和 api.py 在同一个目录下。问题可能出在 文件路径的格式GPT-SoVITS 服务对音频文件的要求 上。

请按以下步骤进行精确排查:

  1. 检查音频文件格式和内容

    • 确认 456.wav 是一个标准的、未损坏的 WAV 音频文件。你可以用系统自带的播放器(如 Windows Media Player)打开它,确认能正常播放,且内容清晰。
    • 关键:确保音频的采样率、位深等参数符合 GPT-SoVITS 的要求。通常它需要 16kHz 采样率、单声道(mono) 的 WAV 文件。你可以使用格式工厂、Audacity 等工具查看并转换。
  2. 在 pyVideoTrans 中简化路径设置(再次确认)

    • 打开 pyVideoTrans 的 GPT-SoVITS 设置。
    • 在“参考音频”一栏,只填写 456.wav,确保前面没有 C:\D:\ 等盘符路径,也没有 ./../ 等相对路径。
    • 在“参考音频文本”一栏,一字不差地填写音频里人物说的完整句子。
  3. 查看 GPT-SoVITS 服务端详细日志(最重要的一步)

    • 问题最可能的原因会显示在 启动 GPT-SoVITS 服务的那个黑色命令行窗口 里。
    • 当你从 pyVideoTrans 点击“试听”时,立刻查看该窗口,把新出现的错误信息完整地截图发出来。这行日志会明确告诉你到底是“文件找不到”、“音频加载失败”、“文本编码错误”还是其他问题。

总结:文件位置正确,但服务端仍报“路径不存在”,很可能是:

  • 音频文件格式不符合要求(最常见)。
  • 或者 pyVideoTrans 发送请求时,路径参数仍包含了错误的前缀。

请先完成第3步(查看服务端日志)并截图,这是定位问题的关键。

请查看更多参考文档:

image

从 GPT-SoVITS 服务端的日志截图可以明确看到问题所在。错误信息是:audio file load error: [WinError 2] 系统找不到指定的文件。: '456.wav'。这清楚地表明,GPT-SoVITS 服务程序在它当前的工作目录下,确实没有找到名为 456.wav 的文件。核心原因与解决方案:虽然你的文件管理器显示 456.wavapi.py 在同一个文件夹,但 GPT-SoVITS 服务启动时的“当前工作目录”可能不是这个文件夹。这通常发生在你通过快捷方式、从其他位置调用脚本,或者服务以特定方式启动时。请按以下步骤强制解决:1. 获取绝对路径:在文件管理器中,点击 456.wav 文件,按住 Shift 键并右键点击它,选择 “复制为路径”。你会得到一个类似 D:\GPT-SoVITS\456.wav 的完整路径。2. 在 pyVideoTrans 中使用绝对路径:打开 pyVideoTrans 的 GPT-SoVITS 设置。在 “参考音频” 输入框中,粘贴你刚刚复制的完整绝对路径(例如 D:\GPT-SoVITS\456.wav)。在 “参考音频文本” 中,确保内容与音频完全一致。保存并重试。如果上述方法仍然报错,请尝试:3. 重启 GPT-SoVITS 服务并确保目录正确:关闭当前的 GPT-SoVITS 服务命令行窗口。打开文件管理器,进入 456.wavapi.py 所在的目录。在此目录的地址栏中,直接输入 cmd 并按回车,这将在此目录打开命令提示符。在打开的命令提示符中,运行启动 GPT-SoVITS 的命令(例如 python api.py)。这样能确保服务的工作目录就是文件所在目录。然后在 pyVideoTrans 中,将“参考音频”改回只填 456.wav(不使用绝对路径)再试。请先尝试第1、2步,这通常能直接解决问题。如果不行,再进行第3步。请查看更多参考文档:GPT-SoVITS

image
旧问题解决了但是有新问题

很好,旧问题(音频文件找不到)已经解决。新问题是 GPT-SoVITS 服务端在处理请求时,提示 “参考音频与提示音频内容不匹配”。这是语音克隆中最关键的一步。问题根源:你提供的“参考音频文本”(prompt_text)与参考音频文件(456.wav)中人物实际说的内容不一致。GPT-SoVITS 需要这两者完全匹配才能进行有效的音色克隆。解决方案:精确匹配音频内容:用音频播放软件(如系统自带的播放器)仔细收听 456.wav 文件。一字不差地记录下音频中人物所说的完整句子。注意:包括所有的语气词、停顿、以及标点符号所对应的语调。修改 pyVideoTrans 中的文本:打开 pyVideoTrans 的 GPT-SoVITS 设置。将“参考音频文本”框中的内容,修改为你刚刚记录下的、与音频完全一致的文本。保存设置并重新试听。一个常见的错误是:音频里说的可能是“你好啊我的朋友。”,但文本写的是“你好啊我的朋友”。缺少句号或多了空格都可能导致不匹配。请严格按照音频的实际发音来填写文本。如果问题依旧,可以尝试:使用更简短的参考音频和文本:选择一段更短(例如5-10秒)、发音非常清晰的音频。对应的文本也尽量简短明确。确保音频质量:参考音频应尽量清晰,无背景噪音,且由单一说话人发音。完成以上步骤后,应该能成功克隆音色并进行合成了。请查看更多参考文档:GPT-SoVITS

image
我该怎么做?

根据截图,GPT-SoVITS 服务端这次报错是 AttributeError: 'NoneType' object has no attribute 'group'。这是一个程序内部错误,通常与 音频处理或模型加载 有关,而不是简单的文本不匹配。这可能是由于音频文件格式问题、模型文件损坏或缺失,或者服务本身存在临时故障。请按以下步骤系统性地排查和解决:1. 检查并确保使用正确的音频格式:这是最常见的原因。GPT-SoVITS 对参考音频的格式有严格要求。请确保你的 456.wav 文件是 单声道 (Mono)采样率 16000 Hz位深 16 bit 的 PCM WAV 文件。 * 如何检查与转换:你可以使用免费软件 Audacity 或在线转换工具。用 Audacity 打开 456.wav,在左下角查看轨道信息。如果不是 16000 Hz 单声道,请将其导出为 WAV 格式,并选择 “WAV (Microsoft) 16-bit PCM”,采样率设为 16000 Hz,通道设为 “1 (Mono)”。2. 重启 GPT-SoVITS 服务:关闭当前的 GPT-SoVITS 服务命令行窗口。然后重新启动它。有时服务在长时间运行或遇到异常后状态会不正常。3. 检查 GPT-SoVITS 模型文件:确保你的 GPT-SoVITS 项目目录下包含了所有必要的模型文件(如 sovits_weights.pth, gpt_weights.pth 等)。如果缺失,需要根据其官方文档重新下载并放置到正确位置。4. 尝试一个更短、更简单的参考音频:用手机录制一段你自己清晰说出的、约5秒钟的短句(例如:“今天天气真好。”),保存为符合第1步要求的 WAV 文件。用这个新文件替换 456.wav,并在 pyVideoTrans 中将参考文本改为对应的短句,重新测试。这可以排除原音频文件复杂性的影响。5. 查看完整错误堆栈:如果以上步骤均无效,错误信息中 Traceback (most recent call last): 后面的几行代码路径(截图未显示全)至关重要。请提供 GPT-SoVITS 服务端命令行窗口 中从你点击“试听”开始出现的 完整错误日志截图。这将直接指向出错的代码行和原因。建议你优先执行第1步(格式转换)和第4步(使用简单新音频),这解决大部分类似问题。请查看更多参考文档:GPT-SoVITS

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.

Related resource

Similar issues already exist