-
Notifications
You must be signed in to change notification settings - Fork 939
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
接入 Mi-GPT-TTS 后,没有调用 TTS 的接口也没有声音回复 #107
Comments
@DavinciEvans 感谢提供的详细日志,从日志中我已经大概知道问题出在哪里了,下个版本会尝试修复。 |
你的小爱音箱型号是多少?感觉是跟机型有关,我无法在小爱音箱 Pro 上复现这个问题, 需要等我身边有相关机型配合测试,才能尝试进行相关的测试和问题定位。 |
我的是小爱音箱 Pro,也是同样的问题,mi-gpt的log文件一切正常,但是没有声音回复,tts的log也是显示没有调用,但是切换音色的指令在tts的log中显示有调用,但是不能确认是否正确切换。 |
@econwang 那就奇怪了,我能想到的原因只有一个,那就是你们配置的TTS _BASE_URL 在小爱音箱上访问异常。 造成无法访问可能的原因有:
|
TTS 是在同样的局域网下,手动调用 /api/tts.mp3 能正常工作 |
很神奇,咱俩一样的型号,而且我也是局域网,我这边一切正常,复现不出来。 你贴一下 tts 项目的输出日志看下,还有migpt 打开 debug 看下切换音色时的日志。 |
看日志是 TTS server 端压根没收到来自小爱音箱相关的 tts 请求, 检查你的小爱音箱配网的wifi是否跟你的 tts server 端在同一局域网环境下。 |
@DavinciEvans 麻烦贴一下你的 TTS Server 端的日志看下原因,或者在我微信公众号后台私发一下你的 TTS 公网地址,我本地测试一下。 |
意思是说不但需要mi-gpt服务端需要能够访问到tts服务,还需要小爱音箱也能访问到tts服务? |
TTS 服务主要是提供给小爱音箱去访问的,即 MiGPT 通过下发播放音频 URL 的方式,让小爱音箱去加载 TTS Server 上的资源(即 /tts.mp3 接口)来实时合成音频数据。另外一个接口 /speakers 则是提供给 MiGPT,让其在收到切换音色指令时,可以索引到对应的音色标识。 |
明白了,多谢,这样还是暴露到公网比较方便,音箱可以自由移动,换网。 |
我的也是小爱音箱 pro,TTS 我部署在家里的开发服务器上穿透出去,在国内也是可以访问的。tts 服务的日志除了启动和我自己手动调用的之外似乎没有其他日志了 TTS 地址已在微信公号后台私发了 顺便还有个问题,就是如果 tts 服务如果请求失败或者格式出错,服务会自动关闭 |
@DavinciEvans 好的收到,下个版本我处理下异常捕获。 |
@DavinciEvans 感觉是你的内网穿透服务对原始请求的返回 headers 做了手脚,缺少下面红框部分的原始 header: |
了解了,那之后我放到公网服务器上再试试看 |
局域网 调用,tts运行在群晖,默认音色为BV002 调用日志: 2024/06/21 22:25:07 | stdout | 🔥 /api//tts.mp3?speaker=undefined+text=我说完了,请接着说! 音色为未设置,这个对吗 |
正常的,TTS 内部会自动 fallback 到你设置的默认音色。 |
这种情况有两种可能:
如果你的 TTS 服务控制台能收到 MiGPT 的 TTS 请求,说明 2 的可能性比较大;如果没有收到任何请求,说明是第一种可能。 |
小艾联网有什么特殊要求吗?的确他没连上局域网的 |
在tts的日志中,看到了小爱调用tts,但是没有感觉是tts没有把信息返回给小爱 |
没理解你的意思。小爱音箱配网的时候,连接到你当前正在使用的 Wi-Fi 就好了,跟你跑 TTS 服务的设备在同一个局域网即可。 |
那有可能是响应头被丢掉了,或者你的设备使用那两个响应头不足以播放音频(存在这种可能性)。 你的设备型号和固件版本发一下看看。 |
小爱音响pro,版本是1.88.51稳定吧: 我部署的是docker的tts,发现:如果用电脑调用TTS,成功会会提示Done,如果是小爱,就是显示2变调用,没有done,小爱没声音 2024/06/21 23:35:02,stdout,🔥 /api//tts.mp3?speaker=undefined+text=你好,我是雨果 下面是电脑调用的 2024/06/21 23:33:48,stdout,🔥 /api/tts.mp3?speaker=BV201_streaming&text=很高兴认识你 |
应该是小爱音箱的重试机制,音频链接没有反应会继续重试几次。
有点奇怪,因为我和你的音箱型号和固件是一样的,我这边局域网能正常播放的。 |
首先肯定的是,小爱访问到了tts服务器,然后没有得到回应?对不? |
可以确认小爱访问到了tts服务器。
贴上你的完整日志。理论上这种 case 不会出现,除非客户端在开始/完成响应前自己主动断开连接。 |
stdout: 2024/06/21 16:05:12 Speaker ✅ 服务已启动... 我的是在openwrt上部署的,能看到的日志,就这些 |
@binghan2000 多谢补充的日志,不过这些日志还不足以定位问题原因,有空可以联系下我联调一下。 |
什么时候方便? |
@binghan2000 你在电脑上下个腾讯会议,然后创建个会议把链接私发到我的微信公众号后台 |
我后面遇到同样问题,估计是音响型号有关系,我的是L05B,我自己内网测试tts都没问题,但是就是调用会报unWakeUp,mi-gpt-tts那边没有请求 |
@muzixing666 你的 |
@muzixing666 我本地用 打开 debug 检查你的 mi-gpt 内的 有且只有可能是你实际的环境变量不正确。 |
谢谢我再检查检查 |
成了成了感谢大佬 |
调用tts接口了,但是没声音,一会就退出了 |
同时使用 docker 部署了 mi-gpt 和 mi-gpt-tts,两个服务都正常启动了,使用 xiaoai 音色时能够正确地回复, mi-gpt-tts 的端口已经放到了公网上并且可以访问(手动调用 /api/tts.mp3 能正常工作)。也已经根据教程,修改了
TTS_BASE_URL
。可是在运行过程中,如果把 .migpt.js 中的 tts 改成了
custom
后,控制台当中能看到回复文本。可小爱音箱没有把回复的声音播放出来,在 mi-gpt-tts 当中也没有看到 api 接口的调用日志。下面是部分配置:
.env:
.migpt.js:
执行截图:
The text was updated successfully, but these errors were encountered: