Skip to content
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

小爱音箱并未转达chatgpt的回答 #5

Closed
lyddias opened this issue May 21, 2024 · 18 comments
Closed

小爱音箱并未转达chatgpt的回答 #5

lyddias opened this issue May 21, 2024 · 18 comments

Comments

@lyddias
Copy link

lyddias commented May 21, 2024

在docker交互日志上,程序已经成功调用chatgpt并且gpt已经给出回答,但小爱音箱并未读出回复内容,请问下可能是什么原因呢?

@lyddias
Copy link
Author

lyddias commented May 21, 2024

是否在配置文件中加入tts: "xiaoai"就可以了?

@idootop
Copy link
Owner

idootop commented May 21, 2024

你说的这个问题有以下几种可能:

  1. 小米 TTS 有敏感词检测,一些敏感回答会被拦截
  2. 小米 IoT 后端收到 tts 指令后,没有透传给本地设备
  3. 本地设备收到 tts 指令后没有正常播放(指令错乱)
  4. 你的设备不支持默认的 TTS 指令

其中,因为敏感词被拦截的可能性很大。

其次是因为指令错乱小爱音箱没有正确执行,此时可以重启设备试试看。

如果是每个回答都没有正确播放,则可能是你的设备不支持默认的 TTS 指令。

考虑 fork 本项目修改 TTS 指令,或自己实现 TTS 接口,接入百度,微软等 TTS 服务(本项目暂不提供第三方 TTS 的支持)

是否在配置文件中加入tts: "xiaoai"就可以了?

默认就是使用小米自带的 TTS

@idootop
Copy link
Owner

idootop commented May 21, 2024

可以参考以下 issue:

目前已知 LX04、X10A 和 L05B L05C 可能需要使用 --use_command,否则可能会出现终端能输出GPT的回复但小爱同学不回答GPT的情况。这几个型号也只支持小爱原本的 tts.

@lyddias
Copy link
Author

lyddias commented May 21, 2024

我的型号确实是L05C

@idootop
Copy link
Owner

idootop commented May 21, 2024

等等吧,这两天有空我会加上一个使用 command 发送 TTS 指令的选项。

或者你动手能力强的话,也可以自己直接修改源码,欢迎 PR。

@idootop
Copy link
Owner

idootop commented May 21, 2024

@lyddias 1.2.0 版本添加了 TTS 命令配置选项,你可以在这个网站上查询具体指令参数:https://home.miot-spec.com

// .mi-gpt.js
export default {
  speaker: {
    // ...
    ttsCommand: [5, 3], // L05C
    wakeUpCommand: [5, 1], // L05C
  },
  // ...
};

@lyddias
Copy link
Author

lyddias commented May 22, 2024

好的,谢谢!

@Ruiyuan-Zhang
Copy link

@lyddias 1.2.0 版本添加了 TTS 命令配置选项,你可以在这个网站上查询具体指令参数:https://home.miot-spec.com

// .mi-gpt.js
export default {
  speaker: {
    // ...
    ttsCommand: [5, 3], // L05C
    wakeUpCommand: [5, 1], // L05C
  },
  // ...
};

这个具体怎么查呢?比如说下面这个型号。
https://home.miot-spec.com/s/xiaomi.wifispeaker.l17a

@Ruiyuan-Zhang
Copy link

@idootop
Copy link
Owner

idootop commented Jun 2, 2024

@Ruiyuan-Zhang 你的这个设备分别对应是 [7, 3] 和 [7, 1],文档 FAQ里有图片教程。

@Ruiyuan-Zhang
Copy link

Ruiyuan-Zhang commented Jun 2, 2024

@Ruiyuan-Zhang 你的这个设备分别对应是 [7, 3] 和 [7, 1],文档 FAQ里有图片教程。

好的,谢谢。

另外,目前是还没有可以终止 “比较长的语音” 这个Action的是吧。 因为我问了gpt一个问题,我不想继续听了,似乎没有中指的操作

@idootop
Copy link
Owner

idootop commented Jun 2, 2024

重新唤醒小爱同学,随便说句话即可打断正在回复的内容。

@Ruiyuan-Zhang
Copy link

Ruiyuan-Zhang commented Jun 2, 2024

重新唤醒小爱同学,随便说句话即可打断正在回复的内容。

不行诶,我重新唤醒之后。他回答完还会继续讲上一个没回答完的问题。

比如:我问他什么是扩散模型?他会说一大堆,然后我在他说话的时候打断他问他1+1等于多少。他首先回答我2,然后再继续说上一个问题的回答

日志可以看看:

2024/06/03 02:48:13 Speaker ✅ 服务已启动...
2024/06/03 02:48:19 Speaker 🔥 请扩散模型是什么
2024/06/03 02:48:28 Speaker 🔥 请问扩散模型是什么
2024/06/03 02:48:29 Speaker 🔊 请稍等
2024/06/03 02:48:32 Speaker 🐛 {"playState":0}
2024/06/03 02:48:35 Speaker 🔊 扩散模型(Diffusion Model)是一类生成模型,它们通过模拟扩散过程来生成数据。
2024/06/03 02:48:38 Open AI ✅ Answer: 扩散模型(Diffusion Model)是一类生成模型,它们通过模拟扩散过程来生成数据。基本过程包括两步:

1. **正向扩散(Forward Diffusion):** 从真实数据逐渐添加噪声,直到数据变成纯随机噪声。这一步反向模拟自然界中的扩散过程。
   
2. **反向扩散/生成(Reverse Diffusion/Generation):** 从纯随机噪声开始,逐步去除噪声,恢复到类似真实数据的状态。这一步则模拟了从噪声到结构化数据的生成过程。

这种方法在图像生成等任务中表现突出,比如“Denoising Diffusion Probabilistic Models(DDPM)”就是一个典型例子,它通过从噪声到图像的反向扩散过程生成高质量图像。

如果你对某个具体的扩散模型、应用场景或者相关的论文感兴趣,我可以给你更多详细信息哦!
2024/06/03 02:48:39 Speaker 🐛 {"playState":1}
2024/06/03 02:48:40 Speaker 🐛 {"playState":1}
2024/06/03 02:48:41 Speaker 🐛 {"playState":1}
2024/06/03 02:48:42 Speaker 🐛 {"playState":1}
2024/06/03 02:48:44 Speaker 🐛 {"playState":0}
2024/06/03 02:48:45 Speaker 🔊 基本过程包括两步:
1. **正向扩散(Forward Diffusion):** 从真实数据逐渐添加噪声,直到数据变成纯随机噪声。这一步反向模拟自然界中的扩散过程。
2024/06/03 02:48:48 Speaker 🔥 请问1+1等于几
2024/06/03 02:48:48 Speaker 🐛 {"playState":0}
2024/06/03 02:48:49 Speaker 🔊 让我先想想
2024/06/03 02:48:50 Speaker 🔊 2. **反向扩散/生成(Reverse Diffusion/Generation):** 从纯随机噪声开始,逐步去除噪声,恢复到类似真实数据的状态。
2024/06/03 02:48:52 Speaker 🐛 {"playState":1}
2024/06/03 02:48:53 Speaker 🐛 {"playState":1}
2024/06/03 02:48:53 Speaker 🐛 {"playState":1}
2024/06/03 02:48:54 Speaker 🐛 {"playState":1}
2024/06/03 02:48:54 Speaker 🐛 {"playState":1}
2024/06/03 02:48:55 Speaker 🐛 {"playState":1}
2024/06/03 02:48:56 Speaker 🐛 {"playState":1}
2024/06/03 02:48:57 Speaker 🐛 {"playState":1}
2024/06/03 02:48:57 Speaker 🐛 {"playState":1}
2024/06/03 02:48:58 Speaker 🐛 {"playState":1}
2024/06/03 02:48:58 Speaker 🐛 {"playState":1}
2024/06/03 02:48:59 Speaker 🐛 {"playState":1}
2024/06/03 02:48:59 Speaker 🐛 {"playState":1}
2024/06/03 02:49:00 Speaker 🐛 {"playState":0}
2024/06/03 02:49:01 Speaker 🐛 {"playState":0}
2024/06/03 02:49:02 Speaker 🔊 这一步则模拟了从噪声到结构化数据的生成过程。
2024/06/03 02:49:05 Speaker 🐛 {"playState":1}
2024/06/03 02:49:06 Speaker 🐛 {"playState":1}
2024/06/03 02:49:06 Open AI ✅ Answer: 1+1等于2。这是基本的数学知识哦。如果你有其他问题或需要讨论更多的内容,尽管告诉我,我很乐意帮忙!
2024/06/03 02:49:07 Speaker 🔊 1+1等于2。这是基本的数学知识哦。如果你有其他问题或需要讨论更多的内容,尽管告诉我,我很乐意帮忙!
2024/06/03 02:49:07 Speaker 🐛 {"playState":1}
2024/06/03 02:49:09 Speaker 🐛 {"playState":1}
2024/06/03 02:49:10 Speaker 🐛 {"playState":1}
2024/06/03 02:49:10 Speaker 🐛 {"playState":1}
2024/06/03 02:49:11 Speaker 🐛 {"playState":1}
2024/06/03 02:49:11 Speaker 🐛 {"playState":1}
2024/06/03 02:49:13 Speaker 🐛 {"playState":1}
2024/06/03 02:49:13 Speaker 🐛 {"playState":1}
2024/06/03 02:49:14 Speaker 🐛 {"playState":1}
2024/06/03 02:49:14 Speaker 🐛 {"playState":1}
2024/06/03 02:49:15 Speaker 🐛 {"playState":1}
2024/06/03 02:49:15 Speaker 🐛 {"playState":1}
2024/06/03 02:49:16 Speaker 🐛 {"playState":1}
2024/06/03 02:49:16 Speaker 🐛 {"playState":1}
2024/06/03 02:49:18 Speaker 🐛 {"playState":0}
2024/06/03 02:49:18 Speaker 🐛 {"playState":0}
2024/06/03 02:49:18 Speaker 🔊 我说完了
2024/06/03 02:49:19 Speaker 🔊 这种方法在图像生成等任务中表现突出,比如“Denoising Diffusion Probabilistic Models(DDPM)”就是一个典型例子,它通过从噪声到图像的反向扩散过程生成高质量
2024/06/03 02:49:21 Speaker 🐛 {"playState":1}
2024/06/03 02:49:22 Speaker 🐛 {"playState":1}
2024/06/03 02:49:22 Speaker 🐛 {"playState":1}
2024/06/03 02:49:23 Speaker 🐛 {"playState":1}
2024/06/03 02:49:24 Speaker 🐛 {"playState":1}
2024/06/03 02:49:25 Speaker 🐛 {"playState":1}
2024/06/03 02:49:25 Speaker 🐛 {"playState":1}
2024/06/03 02:49:26 Speaker 🐛 {"playState":1}
2024/06/03 02:49:26 Speaker 🐛 {"playState":1}
2024/06/03 02:49:27 Speaker 🐛 {"playState":1}
2024/06/03 02:49:27 Speaker 🐛 {"playState":1}
2024/06/03 02:49:28 Speaker 🐛 {"playState":1}

@idootop
Copy link
Owner

idootop commented Jun 3, 2024

@Ruiyuan-Zhang 多谢反馈,长回答无法被终止的问题已修复。此修复随下一个版本更新,大概今晚我会再发一个版本。

@idootop
Copy link
Owner

idootop commented Jun 5, 2024

@Ruiyuan-Zhang v3.0.0 版本已发布,修复了长回答无法被终止的问题。

@JefferWong
Copy link

找不到设备:小爱音箱
找不到设备:小爱音箱
2024/06/05 16:29:14 Speaker ❌ 初始化 Mi Services 失败
2024/06/05 16:29:14 database ❌ Error: ❌ Assertion failed
at _LoggerManager.assert (C:\Users\yaoyi\mi-gpt\dist\index.cjs:237:13)
at __Logger.assert (C:\Users\yaoyi\mi-gpt\dist\index.cjs:274:19)
at AISpeaker.initMiServices (C:\Users\yaoyi\mi-gpt\dist\index.cjs:449:17)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async AISpeaker.run (C:\Users\yaoyi\mi-gpt\dist\index.cjs:693:5)
at async main (file:https:///C:/Users/yaoyi/mi-gpt/app.js:6:3)

@Ruiyuan-Zhang
Copy link

@Ruiyuan-Zhang v3.0.0 版本已发布,修复了长回答无法被终止的问题。

收到,辛苦!!!

@idootop
Copy link
Owner

idootop commented Jun 5, 2024

@JefferWong 打开米家看看你的小爱音箱叫什么,需要填写完整名称注意空格(比如:小爱音箱Pro)。另外,在海外服务器等非中国大陆网络环境下,也有可能会导致设备列表获取失败。
telegram-cloud-photo-size-5-6269166936961171135-y

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants