#1283 <p>The requested URL was not found on the server. If you entered the URL manually please check your spelling and try aga

2407:cdc0* Posted at: 16 hours ago 👁28

请求的资源不存在,请检查模型名称或API地址

404 Not Found
Not Found
The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.:
Traceback (most recent call last):
File "videotrans\util\ListenVoice.py", line 18, in run
File "videotrans\tts\__init__.py", line 282, in run
File "videotrans\tts\_base.py", line 177, in run
File "videotrans\tts\_chatterbox.py", line 62, in _item_task
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 439, in result
File "concurrent\futures\_base.py", line 391, in __get_result
File "tenacity\__init__.py", line 480, in call
File "videotrans\tts\_chatterbox.py", line 49, in _run
File "openai\resources\audio\speech.py", line 103, in create
File "openai\_base_client.py", line 1259, in post
File "openai\_base_client.py", line 1047, in request
openai.NotFoundError:

404 Not Found
Not Found
The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.


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

10 Replies

这个问题是由于 OpenAI TTS 的 API 地址配置错误导致的。从错误信息可以看出,软件请求的 URL 不存在(404 Not Found)。

请按以下步骤检查和修正:

  1. 在菜单栏选择 工具/选项 -> TTS设置
  2. 找到 OpenAI TTS 相关的配置项。
  3. 检查 API地址 字段:

    • 如果您使用的是官方 OpenAI API,请确保地址为 https://api.openai.com/v1
    • 如果您使用的是第三方代理或本地部署,请确认地址完整且正确
  4. 同时检查您的 API密钥 是否正确有效。

修正 API 地址后,问题应该能够解决。如果仍然遇到问题,请确认您的网络连接和代理设置。

我用的是ChatTTS,我看官方写的:请求方法: POST,请求地址: http://127.0.0.1:9966/tts,就填的这个,并且测试通过了,可是点试听配音,就出现上述错误

问题在于您将 ChatTTS 的配置错误地填写在了 OpenAI TTS 的设置中。ChatTTS 和 OpenAI TTS 是两个不同的配音渠道,需要分别配置。

请按以下步骤操作:

  1. 在软件主界面的 配音渠道 下拉菜单中,选择 ChatTTS,而不是 OpenAI TTS。
  2. 选择 ChatTTS 后,软件会自动加载其对应的设置界面。
  3. 在该设置界面中,将 API 地址填写为 http://127.0.0.1:9966/tts

完成以上步骤后,再进行试听或翻译,应该就能正常使用 ChatTTS 了。

我选择就是选择 ChatTTS,并且将 API 地址填写为 http://127.0.0.1:9966/tts,或者将 API 地址填写为 http://127.0.0.1:9966,都可以测试通过了,但是保存后在UI界面点击试听配音,就出错

这个问题很可能是由于 ChatTTS 服务端未正确处理 pyVideoTrans 发送的请求格式导致的。虽然测试连接能通过,但实际配音时的请求参数可能不被服务端识别。请检查以下方面:

  1. 确认 ChatTTS 服务状态:确保您的 ChatTTS 服务在 http://127.0.0.1:9966 持续运行且没有崩溃。
  2. 检查请求格式:pyVideoTrans 发送给 ChatTTS 的请求体应包含 text(要合成的文本)和 seed(随机种子)等字段。请确认您的 ChatTTS 服务端能够正确解析这些参数。
  3. 查看服务端日志:检查 ChatTTS 服务端的控制台输出或日志,看是否有更详细的错误信息,这能帮助确定是哪个环节出了问题。
  4. 尝试简单测试:您可以直接使用 curl 或 Postman 等工具向 http://127.0.0.1:9966/tts 发送一个 POST 请求,正文为 {"text": "你好世界", "seed": 123},看服务端是否能正常返回音频数据。

如果上述检查仍无法解决问题,请提供 ChatTTS 服务端的完整错误日志,以便进一步分析。

D:\>curl -X POST -d "text=你好世界" -d "seed=123" http://127.0.0.1:9966/tts
{"audio_files":[{"audio_duration":-1,"filename":"D:/win-ChatTTS-ui-v1.0/static/wavs/035804_use3.38s-audio0s-seed2222-te0.3-tp0.7-tk20-textlen4-50675-merge.wav","inference_time":3.38,"url":"http://127.0.0.1:9966/static/wavs/035804_use3.38s-audio0s-seed2222-te0.3-tp0.7-tk20-textlen4-50675-merge.wav"}],"code":0,"filename":"D:/win-ChatTTS-ui-v1.0/static/wavs/035804_use3.38s-audio0s-seed2222-te0.3-tp0.7-tk20-textlen4-50675-merge.wav","msg":"ok","url":"http://127.0.0.1:9966/static/wavs/035804_use3.38s-audio0s-seed2222-te0.3-tp0.7-tk20-textlen4-50675-merge.wav"}

能生成音频的,为啥点试听配音,就出现上述错误?如何解决?

从您的测试结果来看,ChatTTS 服务端本身是正常的,问题在于 pyVideoTrans 发送的请求格式与您的 ChatTTS 服务端期望的格式不匹配。您的服务端返回的是一个包含音频文件 URL 的 JSON 响应,但 pyVideoTrans 期望的是直接的音频数据流。请检查您的 ChatTTS 服务端配置:您的 ChatTTS 服务端可能是一个 Web UI 版本,它返回的是文件 URL 而不是音频流。pyVideoTrans 需要的是直接的 WAV 音频数据流。您需要修改 ChatTTS 服务端代码,使其在收到 /tts 请求时直接返回 WAV 音频二进制数据,而不是返回包含 URL 的 JSON。或者寻找一个兼容的 ChatTTS API 服务版本,该版本应该直接返回音频流。作为临时解决方案,您可以尝试其他配音渠道,如 Edge-TTS(免费)或 OpenAI TTS(如果已有 API 密钥)。如果您无法修改 ChatTTS 服务端代码,建议在 pyVideoTrans 的 GitHub issues 中反馈此兼容性问题。

你能教我如何修改ChatTTS 服务端代码吗?

要修改 ChatTTS 服务端代码以直接返回音频流,您需要修改处理 /tts 端点的代码。以下是基于 Flask 框架的修改示例:

  1. 找到处理 /tts 请求的路由函数(通常在 app.py 或类似文件中)
  2. 修改该函数,使其直接返回音频二进制数据而不是 JSON:
from flask import Response
import io

@app.route('/tts', methods=['POST'])
def tts():
    # 获取请求参数
    data = request.get_json()
    text = data.get('text', '')
    seed = data.get('seed', 2222)
    
    # 调用 ChatTTS 生成音频(这里假设您的生成函数)
    # 注意:这里需要您根据实际代码调整
    audio_data = your_chattts_generate_function(text, seed)
    
    # 将音频数据转换为字节流
    audio_io = io.BytesIO()
    # 这里需要根据您的音频格式进行保存,假设是 WAV 格式
    # 您可能需要使用 soundfile 或 wave 库来处理
    # audio_data.save(audio_io, format='WAV')
    
    # 直接返回音频流
    return Response(
        audio_io.getvalue(),
        mimetype='audio/wav',
        headers={
            'Content-Disposition': 'attachment; filename=audio.wav'
        }
    )

关键修改点:

  • 移除返回 JSON 的逻辑
  • 直接返回音频二进制数据
  • 设置正确的 MIME 类型(audio/wav)
  • 确保音频数据是完整的 WAV 格式

请注意,这需要您对现有的 ChatTTS 代码有一定的了解,特别是音频生成和保存的部分。如果您不熟悉代码结构,建议先仔细阅读现有代码,了解音频是如何生成和处理的。

如果您使用的是其他 Web 框架(如 FastAPI),修改思路类似,但具体实现会有所不同。

测试通过就可以使用,界面里的试听按钮不用在意

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