MoneyPrinterTurbo icon indicating copy to clipboard operation
MoneyPrinterTurbo copied to clipboard

语音合成不了

Open skybabila opened this issue 7 months ago • 6 comments

是否已存在类似问题?

  • [x] 我已搜索现有问题

当前行为

2025-05-08 22:46:07.820 | INFO | app.services.voice:azure_tts_v1:1057 - start, voice name: en-US-AvaNeural, try: 2

2025-05-08 22:46:08.632 | ERROR | app.services.voice:azure_tts_v1:1080 - failed, error: 403, message='Invalid response status', url=URL('wss://speech.platform.bing.com/consumer/speech/synthesize/readaloud/edge/v1?TrustedClientToken=6A5AA1D4EAFF4E9FB37E23D68491D6F4&ConnectionId=9e172b77bd564590b1fff36817e99bde')

2025-05-08 22:46:08.634 | INFO | app.services.voice:azure_tts_v1:1057 - start, voice name: en-US-AvaNeural, try: 3

2025-05-08 22:46:09.480 | ERROR | app.services.voice:azure_tts_v1:1080 - failed, error: 403, message='Invalid response status',

预期行为

彻底弃用旧版 Bing TTS API 微软已关闭旧版边缘语音合成服务,你看到的错误:

url='wss://speech.platform.bing.com/...' # 已停用的旧版API error: 403, message='Invalid response status'

重现步骤

run

堆栈追踪/日志

2025-05-08 22:46:07.820 | INFO | app.services.voice:azure_tts_v1:1057 - start, voice name: en-US-AvaNeural, try: 2

2025-05-08 22:46:08.632 | ERROR | app.services.voice:azure_tts_v1:1080 - failed, error: 403, message='Invalid response status', url=URL('wss://speech.platform.bing.com/consumer/speech/synthesize/readaloud/edge/v1?TrustedClientToken=6A5AA1D4EAFF4E9FB37E23D68491D6F4&ConnectionId=9e172b77bd564590b1fff36817e99bde')

2025-05-08 22:46:08.634 | INFO | app.services.voice:azure_tts_v1:1057 - start, voice name: en-US-AvaNeural, try: 3

2025-05-08 22:46:09.480 | ERROR | app.services.voice:azure_tts_v1:1080 - failed, error: 403, message='Invalid response status',

Python 版本

3.13

操作系统

win11

MoneyPrinterTurbo 版本

1.2.21

其他信息

彻底弃用旧版 Bing TTS API 微软已关闭旧版边缘语音合成服务,你看到的错误:

url='wss://speech.platform.bing.com/...' # 已停用的旧版API error: 403, message='Invalid response status'

skybabila avatar May 08 '25 15:05 skybabila

同样的问题,希望可以接入自定义的通用语音接口,例如百度、阿里的

linchuanXu avatar May 09 '25 02:05 linchuanXu

@linchuanXu @skybabila @highkay @elf-mouse @garylab Here's the updated code. Let us know if it helps. https://github.com/harry0703/MoneyPrinterTurbo/pull/645

galoisgroupcn avatar May 09 '25 07:05 galoisgroupcn

1.2.6 版本已支持硅基流动的语音合成服务

harry0703 avatar May 10 '25 06:05 harry0703

语音合成失败,报错:

generating audio

2025-05-10 15:58:45.869 | INFO | app.services.voice:azure_tts_v1:1057 - start, voice name: zh-CN-XiaoxiaoNeural, try: 1

2025-05-10 15:58:46.766 | ERROR | app.services.voice:azure_tts_v1:1080 - failed, error: 403, message='Invalid response status', url=URL('wss://speech.platform.bing.com/consumer/speech/synthesize/readaloud/edge/v1?TrustedClientToken=6A5AA1D4EAFF4E9FB37E23D68491D6F4&ConnectionId=996d7f35521a4532a82fb6c0ccf3b325')

2025-05-10 15:58:46.768 | INFO | app.services.voice:azure_tts_v1:1057 - start, voice name: zh-CN-XiaoxiaoNeural, try: 2

2025-05-10 15:58:47.636 | ERROR | app.services.voice:azure_tts_v1:1080 - failed, error: 403, message='Invalid response status', url=URL('wss://speech.platform.bing.com/consumer/speech/synthesize/readaloud/edge/v1?TrustedClientToken=6A5AA1D4EAFF4E9FB37E23D68491D6F4&ConnectionId=9b374259905946368db29ca23ce73afe')

2025-05-10 15:58:47.637 | INFO | app.services.voice:azure_tts_v1:1057 - start, voice name: zh-CN-XiaoxiaoNeural, try: 3

2025-05-10 15:58:48.528 | ERROR | app.services.voice:azure_tts_v1:1080 - failed, error: 403, message='Invalid response status', url=URL('wss://speech.platform.bing.com/consumer/speech/synthesize/readaloud/edge/v1?TrustedClientToken=6A5AA1D4EAFF4E9FB37E23D68491D6F4&ConnectionId=f648cdd2754a454899a44928f8dafaa9')

2025-05-10 15:58:48.529 | ERROR | app.services.task:generate_audio:85 - failed to generate audio:

  1. check if the language of the voice matches the language of the video script.
  2. check if the network is available. If you are in China, it is recommended to use a VPN and enable the global traffic mode.

2025-05-10 15:58:48.530 | ERROR | main::790 - 视频生成失败

ShawWang0512 avatar May 10 '25 08:05 ShawWang0512

@ShawWang0512 根据日志,“语音合成失败”报错为 403,message='Invalid response status',并且发生在尝试通过 Azure/Bing TTS WebSocket 接口合成语音时。提示建议检查语音与脚本语言是否匹配,以及网络问题,尤其是在中国大陆环境。

分析如下:

  1. 403 Forbidden,通常意味着鉴权/Token 问题,而不是网络断开或语言不匹配(不匹配语言一般会返回 400 或 200 但内容为空)。
  2. URL 包含 TrustedClientToken,疑似使用了 Bing 的 Edge ReadAloud 非官方接口,token 很可能是临时或已过期。
  3. 你多次尝试都失败,说明不是偶发性网络抖动,而是 token 或接口策略导致的系统性拒绝。
  4. 如果你在中国大陆,部分公网服务会被 GFW 阻断,但 403 更可能是 token 失效或被微软风控。
  5. 你用的是“zh-CN-XiaoxiaoNeural”,这个 voiceName 是有效的(微软 Azure 支持),但你走的是 Bing ReadAloud 通道而非 Azure 官方 API。

解决建议:

  1. token刷新:检查 token(TrustedClientToken)获取方式,确认是否过期,需要重新获取。很多项目用的 token 是模拟 Edge 浏览器从 bing.com/edge 获取的,往往有效期很短(几小时),过期就 403。

  2. 接口切换:建议切换到 Azure 官方 TTS API(https://eastasia.api.speech.microsoft.com/cognitiveservices/v1),用你的 Azure Key,不要用 Bing 的“Edge ReadAloud”接口,后者风控很严且不稳定。

  3. 网络问题:如果你只能用 Bing 的接口,务必全局科学上网,确保 wss://speech.platform.bing.com 能无阻访问。但注意,403 不是网络不通,是被服务端拒绝。

  4. voiceName/language:你用的 voiceName 与脚本语言(zh-CN)没问题,排除这个因素。

下一步:

  1. 如果你有 token 的生成/注入代码,建议贴出来,我可以帮你检查 token 刷新逻辑是否健全。
  2. 如果你能用 Azure 官方 API,建议切换过去,API 规范和文档明确,出错也好排查。
  3. 若一定要用 Bing 接口,建议定期自动获取新的 token 或用浏览器抓包方式重新获取。

可以进一步帮你定位代码和修复,但需要先找到负责 TTS 生成的相关代码文件。通常路径如 app/services/voice/azure_tts_v1.py。

galoisgroupcn avatar May 10 '25 08:05 galoisgroupcn

是否已存在类似问题?

  • [x] 我已搜索现有问题

当前行为

2025-05-08 22:46:07.820 | INFO | app.services.voice:azure_tts_v1:1057 - start, voice name: en-US-AvaNeural, try: 2

2025-05-08 22:46:08.632 | ERROR | app.services.voice:azure_tts_v1:1080 - failed, error: 403, message='Invalid response status', url=URL('wss://speech.platform.bing.com/consumer/speech/synthesize/readaloud/edge/v1?TrustedClientToken=6A5AA1D4EAFF4E9FB37E23D68491D6F4&ConnectionId=9e172b77bd564590b1fff36817e99bde')

2025-05-08 22:46:08.634 | INFO | app.services.voice:azure_tts_v1:1057 - start, voice name: en-US-AvaNeural, try: 3

2025-05-08 22:46:09.480 | ERROR | app.services.voice:azure_tts_v1:1080 - failed, error: 403, message='Invalid response status',

预期行为

彻底弃用旧版 Bing TTS API 微软已关闭旧版边缘语音合成服务,你看到的错误:

url='wss://speech.platform.bing.com/...' # 已停用的旧版API error: 403, message='Invalid response status'

重现步骤

run

堆栈追踪/日志

2025-05-08 22:46:07.820 | INFO | app.services.voice:azure_tts_v1:1057 - start, voice name: en-US-AvaNeural, try: 2

2025-05-08 22:46:08.632 | ERROR | app.services.voice:azure_tts_v1:1080 - failed, error: 403, message='Invalid response status', url=URL('wss://speech.platform.bing.com/consumer/speech/synthesize/readaloud/edge/v1?TrustedClientToken=6A5AA1D4EAFF4E9FB37E23D68491D6F4&ConnectionId=9e172b77bd564590b1fff36817e99bde')

2025-05-08 22:46:08.634 | INFO | app.services.voice:azure_tts_v1:1057 - start, voice name: en-US-AvaNeural, try: 3

2025-05-08 22:46:09.480 | ERROR | app.services.voice:azure_tts_v1:1080 - failed, error: 403, message='Invalid response status',

Python 版本

3.13

操作系统

win11

MoneyPrinterTurbo 版本

1.2.21

其他信息

彻底弃用旧版 Bing TTS API 微软已关闭旧版边缘语音合成服务,你看到的错误:

url='wss://speech.platform.bing.com/...' # 已停用的旧版API error: 403, message='Invalid response status'

有个人提出了解决方案,亲测有用,加个proxy

解决了,在app/services/voice.py 里面修改第1060行,communicate = edge_tts.Communicate(text, voice_name, rate=rate_str, proxy="http://127.0.0.1:10808") 其中"proxy“字段是新加的,后面的端口对应你vpn软件的端口,我的是10808,你自己查一下。改掉后重新启动软件就好了

diabloaltman avatar May 13 '25 02:05 diabloaltman