wzpan / wukong-robot

🤖 wukong-robot 是一个简单、灵活、优雅的中文语音对话机器人/智能音箱项目,支持ChatGPT多轮对话能力,还可能是首个支持脑机交互的开源智能音箱项目。
https://wukong.hahack.com/
MIT License
6.26k stars 1.33k forks source link

行空板不能正常播报NLU处理后的语音。 #264

Closed DragonBoyYYDS closed 1 year ago

DragonBoyYYDS commented 1 year ago

确认已寻找过答案

我已确认在 Github issue 页、常见问题页、文档 中都查找过,没有找到类似问题和资料。我也没有 google / bing/ 百度 / duckduckgo 到相关解答。

安装方式

手动安装/

操作系统

Ubuntu 16.04(行空板)

离线唤醒相关

如果是离线唤醒相关的问题,是否已确保 arecord temp.wavaplay temp.wav (Linux) 或 rec temp.wavplay temp.wav (Mac)已正常工作?(注意要求不能带任何其他参数)如果不能,请先配置好麦克风和音响再尝试。

—— 我已确保录音、播放都正常工作才尝试 wukong-robot 。

问题描述

具体说明下问题 使用了潘老师写的GUI界面,界面显示有NLU的回调,但是不能正常播放,但又不是全部不能,目前试了几下,给我感觉是短的回答基本都能读出来,长的回答就不会播放(一点声音都没有)。日志后面补充。

DragonBoyYYDS commented 1 year ago

2023-05-16 16:48:23,107 - robot.Player - Player.py - playLoop - line 101 - INFO - 开始播放音频:/root/wukong-robot/static/beep_hi.wav 2023-05-16 16:48:23,113 - main - wukong.py - _start_record - line 67 - INFO - 开始录音 2023-05-16 16:48:24,441 - robot.Player - Player.py - doPlay - line 125 - INFO - 播放完成:/root/wukong-robot/static/beep_hi.wav 2023-05-16 16:48:30,419 - robot.Conversation - Conversation.py - converse - line 203 - INFO - 结束录音 2023-05-16 16:48:30,437 - robot.Player - Player.py - playLoop - line 101 - INFO - 开始播放音频:/root/wukong-robot/static/beep_lo.wav 2023-05-16 16:48:31,794 - robot.Player - Player.py - doPlay - line 125 - INFO - 播放完成:/root/wukong-robot/static/beep_lo.wav 2023-05-16 16:48:37,881 - robot.sdk.XunfeiSpeech - XunfeiSpeech.py - asr_on_message - line 161 - INFO - sid:iat000e4e4a@dx18823bf2d68a182802 call success!,data is:[{"bg": 0, "cw": [{"sc": 0, "w": "今天"}]}, {"bg": 0, "cw": [{"w": "北京", "sc": 0}]}, {"bg": 0, "cw": [{"sc": 0, "w": "会"}]}, {"bg": 0, "cw": [{"w": "下雨", "sc": 0}]}, {"bg": 0, "cw": [{"sc": 0, "w": "吗"}]}] 2023-05-16 16:48:38,217 - robot.sdk.XunfeiSpeech - XunfeiSpeech.py - asr_on_message - line 161 - INFO - sid:iat000e4e4a@dx18823bf2d68a182802 call success!,data is:[{"bg": 0, "cw": [{"sc": 0, "w": "?"}]}] 2023-05-16 16:48:43,332 - robot.AI - AI.py - chat - line 110 - INFO - unit 回答:北京今天小雨转多云,气温20到35度,外出建议带伞。 2023-05-16 16:48:43,338 - robot.Conversation - Conversation.py - say - line 398 - INFO - 即将朗读语音:北京今天小雨转多云,气温20到35度,外出建议带伞 2023-05-16 16:48:43,341 - robot.Conversation - Conversation.py - _tts - line 305 - INFO - _tts 2023-05-16 16:48:46,879 - robot.Conversation - Conversation.py - _ttsAction - line 85 - INFO - 第0段TTS合成成功。msg: 北京今天小雨转多云,气温20到35度,外出建议带伞 2023-05-16 16:48:46,882 - robot.Conversation - Conversation.py - _ttsAction - line 90 - INFO - 即将播放第0段TTS。msg: 北京今天小雨转多云,气温20到35度,外出建议带伞 2023-05-16 16:48:46,890 - robot.Player - Player.py - play - line 133 - CRITICAL - path not exists: /tmp/tmpnh2tqnxt Stack (most recent call last): File "/usr/lib/python3.7/threading.py", line 885, in _bootstrap self._bootstrap_inner() File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner self.run() File "/usr/lib/python3.7/threading.py", line 865, in run self._target(*self._args, *self._kwargs) File "/usr/lib/python3.7/concurrent/futures/thread.py", line 80, in _worker work_item.run() File "/usr/lib/python3.7/concurrent/futures/thread.py", line 57, in run result = self.fn(self.args, **self.kwargs) File "/root/wukong-robot/robot/Conversation.py", line 94, in _ttsAction onCompleted=lambda: self._lastCompleted(index, onCompleted), File "/root/wukong-robot/robot/Player.py", line 133, in play logger.critical(f"path not exists: {src}", stack_info=True)

DragonBoyYYDS commented 1 year ago

这是不能播报的。

DragonBoyYYDS commented 1 year ago

2023-05-16 16:37:54,163 - robot.Player - Player.py - playLoop - line 101 - INFO - 开始播放音频:/root/wukong-robot/static/beep_lo.wav 2023-05-16 16:37:55,483 - robot.Player - Player.py - doPlay - line 125 - INFO - 播放完成:/root/wukong-robot/static/beep_lo.wav 2023-05-16 16:37:59,618 - robot.sdk.XunfeiSpeech - XunfeiSpeech.py - asr_on_message - line 161 - INFO - sid:iat000de590@dx18823b5781da427802 call success!,data is:[{"cw": [{"sc": 0, "w": "个"}], "bg": 231}, {"bg": 247, "cw": [{"sc": 0, "w": "笑话"}]}] 2023-05-16 16:38:00,952 - robot.sdk.XunfeiSpeech - XunfeiSpeech.py - asr_on_message - line 161 - INFO - sid:iat000de590@dx18823b5781da427802 call success!,data is:[{"bg": 306, "cw": [{"sc": 0, "w": "。"}]}] 2023-05-16 16:38:06,725 - robot.AI - AI.py - chat - line 110 - INFO - unit 回答:的确像笑话。 2023-05-16 16:38:06,732 - robot.Conversation - Conversation.py - say - line 398 - INFO - 即将朗读语音:的确像笑话 2023-05-16 16:38:06,735 - robot.Conversation - Conversation.py - _tts - line 305 - INFO - _tts 2023-05-16 16:38:09,353 - robot.Conversation - Conversation.py - _ttsAction - line 85 - INFO - 第0段TTS合成成功。msg: 的确像笑话 2023-05-16 16:38:09,356 - robot.Conversation - Conversation.py - _ttsAction - line 90 - INFO - 即将播放第0段TTS。msg: 的确像笑话 2023-05-16 16:38:09,361 - robot.Player - Player.py - playLoop - line 101 - INFO - 开始播放音频:/tmp/tmptilqwfl9 2023-05-16 16:38:10,947 - robot.Player - Player.py - doPlay - line 125 - INFO - 播放完成:/tmp/tmptilqwfl9

DragonBoyYYDS commented 1 year ago

这是有声音的

DragonBoyYYDS commented 1 year ago

@wzpan 希望潘老师可以看看,麻烦了

DragonBoyYYDS commented 1 year ago

补充一个,它有时候不仅不读答案,还会说“抱歉没有听请,能再说一遍吗?”。但是GUI上已经显示有答案。查看日志还没有他说过“抱歉没有听请,能再说一遍吗?”的记录。

wzpan commented 1 year ago

问题有点 weird 。日志上看是已经合成成功了,但是却播放失败了。我比较怀疑是行空板系统对 /tmp/ 里的文件清理比较积极,导致还没来得及播放就被删了。

你是用的 XunfeiTTS 吗?是否可以尝试更换为 edgeTTS 或者其他 TTS 看看?

DragonBoyYYDS commented 1 year ago

问题有点 weird 。日志上看是已经合成成功了,但是却播放失败了。我比较怀疑是行空板系统对 /tmp/ 里的文件清理比较积极,导致还没来得及播放就被删了。

你是用的 XunfeiTTS 吗?是否可以尝试更换为 edgeTTS 或者其他 TTS 看看?

yes,是用的讯飞,讯飞有这么多bug吗?我看其他问题也有提及,此外,如果对/tmp/文件清理的积极,如何修改可以缓慢它?

wzpan commented 1 year ago

@DragonBoyYYDS 不是,只是因为正好讯飞才没有打日志,其他的TTS都会有相关的日志。先更换其他TTS看看是否能解决。

DragonBoyYYDS commented 1 year ago

@DragonBoyYYDS 不是,只是因为正好讯飞才没有打日志,其他的TTS都会有相关的日志。先更换其他TTS看看是否能解决。

已解决。用了edge的合成的很完美