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

不用 root 使用小爱同学和 ChatGPT 交互折腾记 #258

Open
yihong0618 opened this issue Feb 16, 2023 · 136 comments
Open

不用 root 使用小爱同学和 ChatGPT 交互折腾记 #258

yihong0618 opened this issue Feb 16, 2023 · 136 comments
Labels
Top Top label of gitblog 一些记录 一些记录

Comments

@yihong0618
Copy link
Owner

yihong0618 commented Feb 16, 2023

写在前面

项目链接 -> https://github.com/yihong0618/xiaogpt
大多数事儿很简单的一个结论是:这么做有什么用?
但是,没用就不做了么?好玩也是有用之一呀。

下文中 revChatGPT 方案废弃了,全部改用 API, 请参考 repo.

想法

  • 从 ChatGPT 刚上第二周开始,我弄了个账号,后来发现一个很好玩的项目 ChineseAiDungeonChatGPT --> 用 ChatGPT 玩 DND, 我突然想我能语音就更有带入感了。
  • 因为之前折腾 blue 时候了解了一些小米 IOT 设备的交互 tts, 我觉得我用一些方式是可以实现的
  • 不过从想法到可用确实经历了不少

开始折腾

  1. 最早的 idea 是把小爱同学破解了,破解之后拦截我的对话,如果对话包含 GPT 就用破解的小爱发送请求到 ChatGPT, 再把 ChatGPT 的回复截包,读出来。
  • 遇到最大的困难是小爱怎么破解,搜了一圈发现,小爱是有办法通过串口来 hook 再刷固件的。
  • 但串口是啥?我学习了串口通信,用自己树莓派做实验,去淘宝买 usb2ttl 学会了。但是需要焊接,我又去 B 站刷视频学习,问同事硬件大神如何焊接,学会了焊接。但,他妈的,新的小爱同学把串口通信给封了。
  • 翻到了一个国外破解小爱同学的,能用拆机后的 USB 来烧固件,但我没有 windows,-> 学习老的 macbookpro 2015 刷双系统,尝试给小爱刷机 -> 小米把这个也封了
  • 有趣的是每天用发现确实还挺好用的,让他放歌,给我儿子放小猪佩奇。于是又给丈母娘买了一个,给她配置好,可以放歌。
  1. 第一个方式不太行,尝试去用路由 openwrt 截包再发送,依然失败,我折腾了一下发现 https 获取 payload 还是有些困难的
  2. 转向了 Siri 那么我能不能用 Siri 实现呢?是能的,可以用 Siri -> 捷径 -> 获取你说的话 -> 发送 ChatGPT -> 小爱 or 直接 Siri 自己来
  3. 网友象牙山刘能有一天发他儿子小爱同学的聊天记录,突然灵感来了,我可以用最蠢的轮询,来不断获取最新的聊天记录,如果有新的符合要求我就发送给 ChatGPT --> 再用 tts 让小爱同学朗读,但因为朗读需要时间,所以轮询也没那么笨了。

实现

  • 先实现不断拿对话历史
  • 测试 revChatGPT 可行
  • 利用 MiService call tts 可行
  • 剩下就是写代码了

准备

  1. ChatGPT id
  2. 小爱音响
  3. 能正常联网的环境或 proxy
  4. python3.8+

使用

  1. pip install -r requirements.txt
  2. 参考 MiService 项目 README 并在本地 terminal 跑 micli list 拿到你音响的 DID 成功 别忘了设置 export MI_DID=xxx 这个 MI_DID 用
  3. 参考 revChatGPT 项目 README 配置 chatGPT 的 config
  4. run python xiaogpt.py --hardware ${your_hardware} hardware 你看小爱屁股上有型号,输入进来
  5. 跑起来之后就可以问小爱同学问题了,“帮我回答开头的问题” 会发送一份给 ChatGPT 然后小爱同学用 tts 回答

总结

  • 完成那一刻确实挺开心,但过程中发现了几个好玩的博客,惊讶了做 revChatGPT 的学生真牛逼,学会了焊接,开始发现硬件也挺有意思的,不断折腾的过程沮丧有一些,但更多的是学习新东西带来的兴奋感。
  • 拆机发现,小爱同学内部做工确实不错
  • 折腾过程中的感受,将来肯定有一天这些智能音箱厂商也会训练大模型,将彻底改变智能家居,仿佛看到了未来

彩蛋

image

@yihong0618 yihong0618 added 一些记录 一些记录 Top Top label of gitblog labels Feb 16, 2023
@yihong0618 yihong0618 changed the title 不用 root 使用小爱同学和 ChatGPT 折腾记 不用 root 使用小爱同学和 ChatGPT 交互折腾记 Feb 16, 2023
@LukeWJ
Copy link

LukeWJ commented Feb 16, 2023

我有一个二傻子斐讯R1音箱,看看能不能搞出来

@yihong0618
Copy link
Owner Author

现在不用抓包了,修改了文章

@peterjx19
Copy link

哈哈,直接做个APP,TTS做交互更简单,技术也成熟

@auzeonfung
Copy link

我有一个二傻子斐讯R1音箱,看看能不能搞出来

期待好消息😃

@NeoSmithX
Copy link

有熬夜做一个傻儿子出来玩的冲动,哈哈哈😂

@tonyqus
Copy link

tonyqus commented Mar 2, 2023

翻到了一个国外破解小爱同学的,[能用拆机后的 USB 来烧固件](https://github.com/duhow/xiaoai-patch/blob/master/research/lx06/install.md),但我没有 windows,-> 学习老的 macbookpro 2015 刷双系统,尝试给小爱刷机 -> 小米把这个也封了

这方式小米是怎么封的?新固件不让用了?

@yihong0618
Copy link
Owner Author

对,新的版本这个暂时不行

@wsjq5477
Copy link

wsjq5477 commented Mar 4, 2023

确实是个很有意思的项目!生命不息,折腾不止。
如果用NAS替代PC做中转,上面跑MiService截音响,这个想法是可行的嘛

@yihong0618
Copy link
Owner Author

@wsjq5477 可行,但是不要 mute-xiaomi

@wsjq5477
Copy link

wsjq5477 commented Mar 5, 2023

请教下为啥不加mute-xiaomi呢,我试了下加不加mute-xiaomi,小爱都只会回答自己的答案,但是终端会显示出gpt的答案

@yihong0618
Copy link
Owner Author

会频繁请求 api, 容易被 ban 要是一直跑

@imkingcn
Copy link

imkingcn commented Mar 5, 2023

大佬们,能实现和小度交互么?
https://juejin.cn/post/7203685609654550588

@jihan-socool
Copy link

我有一个二傻子斐讯R1音箱,看看不能搞出来
斐讯可以刷,但是体验效果不好,更别说交互chatgpt了

@BussanQ
Copy link

BussanQ commented Mar 6, 2023

@yihong0618 请问下放小猪佩奇是什么流程😊

@yihong0618
Copy link
Owner Author

@yihong0618 请问下放小猪佩奇是什么流程😊

小爱同学,帮我播放小猪佩奇

@BussanQ
Copy link

BussanQ commented Mar 6, 2023

@yihong0618 是小爱同学语音读的节目吗?我以为是和小米盒子联动播放视频,希望能通过关键词播放某一集的剧情。。

@yihong0618
Copy link
Owner Author

是的。

@jjp9624022
Copy link

可以用openwrt获取小爱设备突发特定流量后轮询

@YuanZhencai
Copy link

YuanZhencai commented Mar 6, 2023

之前搞天猫精灵,发现提问题前一定需要某些语料然后才会回调接口,相信小爱也是一样的吧?怎么保持小爱可以一直说话,不需要语料?所以关键点是不断轮询吗?

@yihong0618
Copy link
Owner Author

@tonyqus
Copy link

tonyqus commented Mar 7, 2023

你们谁在墙内试过亚马逊Echo智能音箱?我基本放弃破解国内的智能音箱了。

@yihong0618
Copy link
Owner Author

echo 有人做出来了

@ryan4yin
Copy link

ryan4yin commented Mar 8, 2023

哈哈,yihong 佬也入了硬件的坑,我去年底开始折腾硬件,发现硬件真的好玩

@deadjoker
Copy link

关注这个有段时间,一直没能上手做。有个疑问,这个脚本我要跑在跟小爱同一个网络环境下么?

@yihong0618
Copy link
Owner Author

@deadjoker 不需要。

@deadjoker
Copy link

@yihong0618 如果我希望多个小爱音箱都能够使用chatgpt的话,有没有方法只跑一个脚本呢?还是必须得多个环境跑多个脚本

@yihong0618
Copy link
Owner Author

S12A

S12A 不能用我这个方式唤醒,另外能在 xiaogpt 项目下留 issue 么?那样如果其他人遇到问题也能看到,谢谢

@zhuzhuyule
Copy link

有趣的是每天用发现确实还挺好用的,让他放歌,给我儿子放小猪佩奇。于是又给丈母娘买了一个,给她配置好,可以放歌。

@yihong0618 请问这句是啥意思了? 小猪佩奇收费,所以我也在尝试如何让小爱走自己的服务,去自动播放自己的资源列表。

@yihong0618
Copy link
Owner Author

有趣的是每天用发现确实还挺好用的,让他放歌,给我儿子放小猪佩奇。于是又给丈母娘买了一个,给她配置好,可以放歌。

@yihong0618 请问这句是啥意思了? 小猪佩奇收费,所以我也在尝试如何让小爱走自己的服务,去自动播放自己的资源列表。

这个不难,是可以的。我有时间写个教程回复你

@zhuzhuyule
Copy link

zhuzhuyule commented Dec 21, 2023

有趣的是每天用发现确实还挺好用的,让他放歌,给我儿子放小猪佩奇。于是又给丈母娘买了一个,给她配置好,可以放歌。

@yihong0618 请问这句是啥意思了? 小猪佩奇收费,所以我也在尝试如何让小爱走自己的服务,去自动播放自己的资源列表。

这个不难,是可以的。我有时间写个教程回复你

666, 看了你的简历,哈哈哈,真是大佬呀

@yihong0618
Copy link
Owner Author

有趣的是每天用发现确实还挺好用的,让他放歌,给我儿子放小猪佩奇。于是又给丈母娘买了一个,给她配置好,可以放歌。

@yihong0618 请问这句是啥意思了? 小猪佩奇收费,所以我也在尝试如何让小爱走自己的服务,去自动播放自己的资源列表。

这个不难,是可以的。我有时间写个教程回复你

666, 看了你的简历,哈哈哈,真是大佬呀

现在你可以参考这个 https://origin.v2ex.com/t/982027 但不太成熟,有精力我写个稍微好点的方案。。。

@hirolee88
Copy link

@yihong0618 大佬,按照你写的MiService这个项目走,碰到错误好几天也没有解决,求解答

root@ecs-xxxxx:/etc/mi/MiService# micli.py list Exception on login xxxxxxxxxxx: 'userId' Traceback (most recent call last): File "/usr/local/lib/python3.10/dist-packages/miservice/miaccount.py", line 71, in login self.token['userId'] = resp['userId'] KeyError: 'userId' Error https://api.io.mi.com/app/home/device_list: Login failed

yihong0618/xiaogpt#6 (comment)

@yihong0618
Copy link
Owner Author

@yihong0618 大佬,按照你写的MiService这个项目走,碰到错误好几天也没有解决,求解答

root@ecs-xxxxx:/etc/mi/MiService# micli.py list Exception on login xxxxxxxxxxx: 'userId' Traceback (most recent call last): File "/usr/local/lib/python3.10/dist-packages/miservice/miaccount.py", line 71, in login self.token['userId'] = resp['userId'] KeyError: 'userId' Error https://api.io.mi.com/app/home/device_list: Login failed

yihong0618/xiaogpt#6 (comment)

应该是触发风控了,你得本地浏览器登录下小米云

@zhuzhuyule
Copy link

所以一直循环检查是否正在播放,是暂时无解的对吗?
还有就是查看对话记录也是循环检查的,也是无解的对吗?

@yihong0618
Copy link
Owner Author

所以一直循环检查是否正在播放,是暂时无解的对吗? 还有就是查看对话记录也是循环检查的,也是无解的对吗?

不是

@fencanyan
Copy link

@yihong0618 请问, 是不是不和小爱音箱在一个局域网也可以用?只要在有网络的地方部署成功就可以用了?

@yihong0618
Copy link
Owner Author

@yihong0618 请问, 是不是不和小爱音箱在一个局域网也可以用?只要在有网络的地方部署成功就可以用了?

不是,海外 IP 或者 vps 会风控也用不了,其余能用,你可以去 xiaogpt repo 里搜索

@jingyibo123
Copy link

能用拆机后的 USB 来烧固件,但我没有 windows,-> 学习老的 macbookpro 2015 刷双系统,尝试给小爱刷机 -> 小米把这个也封了

大神能说一下怎么个被封法么?

@yihong0618
Copy link
Owner Author

能用拆机后的 USB 来烧固件,但我没有 windows,-> 学习老的 macbookpro 2015 刷双系统,尝试给小爱刷机 -> 小米把这个也封了

大神能说一下怎么个被封法么?

读不到了

@starFelix
Copy link

写在前面

项目链接 -> https://github.com/yihong0618/xiaogpt 大多数事儿很简单的一个结论是:这么做有什么用? 但是,没用就不做了么?好玩也是有用之一呀。

下文中 revChatGPT 方案废弃了,全部改用 API, 请参考 repo.

想法

  • 从 ChatGPT 刚上第二周开始,我弄了个账号,后来发现一个很好玩的项目 ChineseAiDungeonChatGPT --> 用 ChatGPT 玩 DND, 我突然想我能语音就更有带入感了。
  • 因为之前折腾 blue 时候了解了一些小米 IOT 设备的交互 tts, 我觉得我用一些方式是可以实现的
  • 不过从想法到可用确实经历了不少

开始折腾

  1. 最早的 idea 是把小爱同学破解了,破解之后拦截我的对话,如果对话包含 GPT 就用破解的小爱发送请求到 ChatGPT, 再把 ChatGPT 的回复截包,读出来。
  • 遇到最大的困难是小爱怎么破解,搜了一圈发现,小爱是有办法通过串口来 hook 再刷固件的。
  • 但串口是啥?我学习了串口通信,用自己树莓派做实验,去淘宝买 usb2ttl 学会了。但是需要焊接,我又去 B 站刷视频学习,问同事硬件大神如何焊接,学会了焊接。但,他妈的,新的小爱同学把串口通信给封了。
  • 翻到了一个国外破解小爱同学的,能用拆机后的 USB 来烧固件,但我没有 windows,-> 学习老的 macbookpro 2015 刷双系统,尝试给小爱刷机 -> 小米把这个也封了
  • 有趣的是每天用发现确实还挺好用的,让他放歌,给我儿子放小猪佩奇。于是又给丈母娘买了一个,给她配置好,可以放歌。
  1. 第一个方式不太行,尝试去用路由 openwrt 截包再发送,依然失败,我折腾了一下发现 https 获取 payload 还是有些困难的
  2. 转向了 Siri 那么我能不能用 Siri 实现呢?是能的,可以用 Siri -> 捷径 -> 获取你说的话 -> 发送 ChatGPT -> 小爱 or 直接 Siri 自己来
  3. 网友象牙山刘能有一天发他儿子小爱同学的聊天记录,突然灵感来了,我可以用最蠢的轮询,来不断获取最新的聊天记录,如果有新的符合要求我就发送给 ChatGPT --> 再用 tts 让小爱同学朗读,但因为朗读需要时间,所以轮询也没那么笨了。

实现

  • 先实现不断拿对话历史
  • 测试 revChatGPT 可行
  • 利用 MiService call tts 可行
  • 剩下就是写代码了

准备

  1. ChatGPT id
  2. 小爱音响
  3. 能正常联网的环境或 proxy
  4. python3.8+

使用

  1. pip install -r requirements.txt
  2. 参考 MiService 项目 README 并在本地 terminal 跑 micli list 拿到你音响的 DID 成功 别忘了设置 export MI_DID=xxx 这个 MI_DID 用
  3. 参考 revChatGPT 项目 README 配置 chatGPT 的 config
  4. run python xiaogpt.py --hardware ${your_hardware} hardware 你看小爱屁股上有型号,输入进来
  5. 跑起来之后就可以问小爱同学问题了,“帮我回答开头的问题” 会发送一份给 ChatGPT 然后小爱同学用 tts 回答

总结

  • 完成那一刻确实挺开心,但过程中发现了几个好玩的博客,惊讶了做 revChatGPT 的学生真牛逼,学会了焊接,开始发现硬件也挺有意思的,不断折腾的过程沮丧有一些,但更多的是学习新东西带来的兴奋感。
  • 拆机发现,小爱同学内部做工确实不错
  • 折腾过程中的感受,将来肯定有一天这些智能音箱厂商也会训练大模型,将彻底改变智能家居,仿佛看到了未来

彩蛋

image

看项目介绍,没能完全了解这个仓库能够提供的能力。可以通过复杂的命令控制家电吗?还是只能通过gpt对话。
另外这个脚本需要持续运行吗?还是说设置成功后就完事不需要运行了。

@yihong0618
Copy link
Owner Author

写在前面

项目链接 -> https://github.com/yihong0618/xiaogpt 大多数事儿很简单的一个结论是:这么做有什么用? 但是,没用就不做了么?好玩也是有用之一呀。

下文中 revChatGPT 方案废弃了,全部改用 API, 请参考 repo.

想法

  • 从 ChatGPT 刚上第二周开始,我弄了个账号,后来发现一个很好玩的项目 ChineseAiDungeonChatGPT --> 用 ChatGPT 玩 DND, 我突然想我能语音就更有带入感了。
  • 因为之前折腾 blue 时候了解了一些小米 IOT 设备的交互 tts, 我觉得我用一些方式是可以实现的
  • 不过从想法到可用确实经历了不少

开始折腾

  1. 最早的 idea 是把小爱同学破解了,破解之后拦截我的对话,如果对话包含 GPT 就用破解的小爱发送请求到 ChatGPT, 再把 ChatGPT 的回复截包,读出来。
  • 遇到最大的困难是小爱怎么破解,搜了一圈发现,小爱是有办法通过串口来 hook 再刷固件的。
  • 但串口是啥?我学习了串口通信,用自己树莓派做实验,去淘宝买 usb2ttl 学会了。但是需要焊接,我又去 B 站刷视频学习,问同事硬件大神如何焊接,学会了焊接。但,他妈的,新的小爱同学把串口通信给封了。
  • 翻到了一个国外破解小爱同学的,能用拆机后的 USB 来烧固件,但我没有 windows,-> 学习老的 macbookpro 2015 刷双系统,尝试给小爱刷机 -> 小米把这个也封了
  • 有趣的是每天用发现确实还挺好用的,让他放歌,给我儿子放小猪佩奇。于是又给丈母娘买了一个,给她配置好,可以放歌。
  1. 第一个方式不太行,尝试去用路由 openwrt 截包再发送,依然失败,我折腾了一下发现 https 获取 payload 还是有些困难的
  2. 转向了 Siri 那么我能不能用 Siri 实现呢?是能的,可以用 Siri -> 捷径 -> 获取你说的话 -> 发送 ChatGPT -> 小爱 or 直接 Siri 自己来
  3. 网友象牙山刘能有一天发他儿子小爱同学的聊天记录,突然灵感来了,我可以用最蠢的轮询,来不断获取最新的聊天记录,如果有新的符合要求我就发送给 ChatGPT --> 再用 tts 让小爱同学朗读,但因为朗读需要时间,所以轮询也没那么笨了。

实现

  • 先实现不断拿对话历史
  • 测试 revChatGPT 可行
  • 利用 MiService call tts 可行
  • 剩下就是写代码了

准备

  1. ChatGPT id
  2. 小爱音响
  3. 能正常联网的环境或 proxy
  4. python3.8+

使用

  1. pip install -r requirements.txt
  2. 参考 MiService 项目 README 并在本地 terminal 跑 micli list 拿到你音响的 DID 成功 别忘了设置 export MI_DID=xxx 这个 MI_DID 用
  3. 参考 revChatGPT 项目 README 配置 chatGPT 的 config
  4. run python xiaogpt.py --hardware ${your_hardware} hardware 你看小爱屁股上有型号,输入进来
  5. 跑起来之后就可以问小爱同学问题了,“帮我回答开头的问题” 会发送一份给 ChatGPT 然后小爱同学用 tts 回答

总结

  • 完成那一刻确实挺开心,但过程中发现了几个好玩的博客,惊讶了做 revChatGPT 的学生真牛逼,学会了焊接,开始发现硬件也挺有意思的,不断折腾的过程沮丧有一些,但更多的是学习新东西带来的兴奋感。
  • 拆机发现,小爱同学内部做工确实不错
  • 折腾过程中的感受,将来肯定有一天这些智能音箱厂商也会训练大模型,将彻底改变智能家居,仿佛看到了未来

彩蛋

image

看项目介绍,没能完全了解这个仓库能够提供的能力。可以通过复杂的命令控制家电吗?还是只能通过gpt对话。 另外这个脚本需要持续运行吗?还是说设置成功后就完事不需要运行了。

@MrTreasure
Copy link

我希望通过GPT接入后再控制智能家居,但是目前看见只能简单对话。请问控制家居这个怎么实现呢?小米那边文档没有找到

@yihong0618
Copy link
Owner Author

我希望通过GPT接入后再控制智能家居,但是目前看见只能简单对话。请问控制家居这个怎么实现呢?小米那边文档没有找到

这个算是逆向,没有文档,但实现智能控制不难,你可以利用 miservice 做,但是需要你自己 DIY
我的例子: https://github.com/yihong0618/gitblog/issues

@lonelam
Copy link

lonelam commented Mar 25, 2024

大佬有没有openwrt做流量劫持的踩坑?盲猜这种IoT设备应该不会强校验https证书。

@yihong0618
Copy link
Owner Author

大佬有没有openwrt做流量劫持的踩坑?盲猜这种IoT设备应该不会强校验https证书。

xiaoai 好像做了。

@Saintoliver
Copy link

感谢yihong大佬的回答,我放弃了全局梯子。直接选择连接国内的通亿千问,在家里的NAS docker上用上了。感谢。

以后家里小朋友的十万个为什么,不需要我都百度后回答他了。。。。

@daimenspace
Copy link

感谢yihong大佬的回答,我放弃了全局梯子。直接选择连接国内的通亿千问,在家里的NAS docker上用上了。感谢。

以后家里小朋友的十万个为什么,不需要我都百度后回答他了。。。。

小爱同学现在不能注册开发者账号了,是不是就没法接入其他家的AI助手了?

@sparkssssssss
Copy link

感谢带佬提供的教程,不过使用下来感觉不好用,
1-gpt好像无法完全接管,每次都要用前缀,我尝试改了下代码逻辑,任何提问都由gpt,但是好像有问题2
2-不管参数配置mute_xiaomi,还是启动加参数mute-xiaomi,似乎小米都会抢答,或者说几个字,然后说正在问gpt......

所以,想咨询下,如何能彻底ban掉小爱的回答?我是lx05 红外线那款,

@yihong0618
Copy link
Owner Author

感谢yihong大佬的回答,我放弃了全局梯子。直接选择连接国内的通亿千问,在家里的NAS docker上用上了。感谢。
以后家里小朋友的十万个为什么,不需要我都百度后回答他了。。。。

小爱同学现在不能注册开发者账号了,是不是就没法接入其他家的AI助手了?

@yihong0618
Copy link
Owner Author

感谢带佬提供的教程,不过使用下来感觉不好用, 1-gpt好像无法完全接管,每次都要用前缀,我尝试改了下代码逻辑,任何提问都由gpt,但是好像有问题2 2-不管参数配置mute_xiaomi,还是启动加参数mute-xiaomi,似乎小米都会抢答,或者说几个字,然后说正在问gpt......

所以,想咨询下,如何能彻底ban掉小爱的回答?我是lx05 红外线那款,

是可行的
但不建议彻底 ban 掉小米回答,那样会频繁请求。
yihong0618/xiaogpt#417

@yihong0618
Copy link
Owner Author

感谢带佬提供的教程,不过使用下来感觉不好用, 1-gpt好像无法完全接管,每次都要用前缀,我尝试改了下代码逻辑,任何提问都由gpt,但是好像有问题2 2-不管参数配置mute_xiaomi,还是启动加参数mute-xiaomi,似乎小米都会抢答,或者说几个字,然后说正在问gpt......

所以,想咨询下,如何能彻底ban掉小爱的回答?我是lx05 红外线那款,

关于用前缀是为了不影响正常小爱的提问,你可以自行 diy 去掉前缀

@sparkssssssss
Copy link

sparkssssssss commented Apr 12, 2024

感谢带佬提供的教程,不过使用下来感觉不好用, 1-gpt好像无法完全接管,每次都要用前缀,我尝试改了下代码逻辑,任何提问都由gpt,但是好像有问题2 2-不管参数配置mute_xiaomi,还是启动加参数mute-xiaomi,似乎小米都会抢答,或者说几个字,然后说正在问gpt......
所以,想咨询下,如何能彻底ban掉小爱的回答?我是lx05 红外线那款,

关于用前缀是为了不影响正常小爱的提问,你可以自行 diy 去掉前缀

看代码逻辑,我修改全部都问gpt了,小爱还是会抢答,我主要想问下,怎么能彻底拦截小爱啊,我吧所有mute_xiaoai的都设置为True了,也把所有问题都让gpt了.

                    if True:
                    #if query.startswith(tuple(self.key_word)):
                        # only mute when your clause start's with the keyword
                        self.this_mute_xiaoai = True
                        #self.this_mute_xiaoai = False
                        # drop 帮我回答
                        query = re.sub(rf"^({'|'.join(self.key_word)})", "", query)

                        print("-" * 20)
                        print("问题:" + query + "?")

                        query = f"{query},{PROMPT}"
                        # waiting for xiaoai speaker done
                        #if self.mute_xiaoai:
                        #   await asyncio.sleep(1)
                        await self.do_tts("正在问GPT")
                        ........

@yihong0618
Copy link
Owner Author

感谢带佬提供的教程,不过使用下来感觉不好用, 1-gpt好像无法完全接管,每次都要用前缀,我尝试改了下代码逻辑,任何提问都由gpt,但是好像有问题2 2-不管参数配置mute_xiaomi,还是启动加参数mute-xiaomi,似乎小米都会抢答,或者说几个字,然后说正在问gpt......
所以,想咨询下,如何能彻底ban掉小爱的回答?我是lx05 红外线那款,

关于用前缀是为了不影响正常小爱的提问,你可以自行 diy 去掉前缀

看代码逻辑,我修改全部都问gpt了,小爱还是会抢答,我主要想问下,怎么能彻底拦截小爱啊,我吧所有mute_xiaoai的都设置为True了,也把所有问题都让gpt了.

                    if True:
                    #if query.startswith(tuple(self.key_word)):
                        # only mute when your clause start's with the keyword
                        self.this_mute_xiaoai = True
                        #self.this_mute_xiaoai = False
                        # drop 帮我回答
                        query = re.sub(rf"^({'|'.join(self.key_word)})", "", query)

                        print("-" * 20)
                        print("问题:" + query + "?")

                        query = f"{query},{PROMPT}"
                        # waiting for xiaoai speaker done
                        #if self.mute_xiaoai:
                        #   await asyncio.sleep(1)
                        await self.do_tts("正在问GPT")
                        ........

目前不能。lx05 可能会 mute 的更慢一些

@nihao949
Copy link

能接入小爱通话吗 让GPT跟骚扰电话斗智斗勇

@windfgg
Copy link

windfgg commented May 12, 2024

感谢带佬提供的教程,不过使用下来感觉不好用, 1-gpt好像无法完全接管,每次都要用前缀,我尝试改了下代码逻辑,任何提问都由gpt,但是好像有问题2 2-不管参数配置mute_xiaomi,还是启动加参数mute-xiaomi,似乎小米都会抢答,或者说几个字,然后说正在问gpt......
所以,想咨询下,如何能彻底ban掉小爱的回答?我是lx05 红外线那款,

关于用前缀是为了不影响正常小爱的提问,你可以自行 diy 去掉前缀

看代码逻辑,我修改全部都问gpt了,小爱还是会抢答,我主要想问下,怎么能彻底拦截小爱啊,我吧所有mute_xiaoai的都设置为True了,也把所有问题都让gpt了.

                    if True:
                    #if query.startswith(tuple(self.key_word)):
                        # only mute when your clause start's with the keyword
                        self.this_mute_xiaoai = True
                        #self.this_mute_xiaoai = False
                        # drop 帮我回答
                        query = re.sub(rf"^({'|'.join(self.key_word)})", "", query)

                        print("-" * 20)
                        print("问题:" + query + "?")

                        query = f"{query},{PROMPT}"
                        # waiting for xiaoai speaker done
                        #if self.mute_xiaoai:
                        #   await asyncio.sleep(1)
                        await self.do_tts("正在问GPT")
                        ........

目前不能。lx05 可能会 mute 的更慢一些

https://bbs.hassbian.com/thread-23752-1-1.html

我看到一篇 小爱音箱接入ChatGPT:上下文理解和去除小爱回应 可以实现去除小爱回应吗?

@leo07046219
Copy link

QA2
你做这玩意也没用啊?

各种软硬件折腾的快乐,他们体会不到,哈哈哈 -- 一名本科就开始玩单片机,现在在嵌入式行业的人这么说

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Top Top label of gitblog 一些记录 一些记录
Projects
None yet
Development

No branches or pull requests