Open yihong0618 opened 1 year ago
为什么不直接搞一个脚本接入安卓语音助手?这样一个更简单吧,小爱只是一个回复,手机貌似可以接入更多,目前只有iPhone有捷径,安卓貌似现在只有tasker太鸡了
主要是他的8个麦克风阵列,远距离侦听功能很强,用手机的话距离远一点根本听不到
小爱的语音识别功能尚可,如果可以直接只用他的侦听功能而使用识别更好的程序那就更好了,比如siri中英文都可以
我看了你的教学视频,非常感兴趣,手里还没有小米音箱,准备买一个,请问现在购买的小米音箱Pro 型号是LX6,也可以按照你提供的方法,使用小爱同学和ChatGPT交互吗?小米音箱有没有版本要求?必须是哪个版本以下的才能按照你的方法做,我担心新购买的音箱,系统版本不对,无法实现教程的内容,谢谢!
我就是新买的 可以 还是蛮简单的。。。 其实我有做一个类似的视频,但是国内的限制太多了
可以发到youtuber
可以用openwrt获取小爱设备突发特定流量后轮询
这是什么意思呢?我有openwrt
可以用openwrt获取小爱设备突发特定流量后轮询
这是什么意思呢?我有openwrt
那个是失败的。
可以用openwrt获取小爱设备突发特定流量后轮询
这是什么意思呢?我有openwrt
那个是失败的。
我想接入ChatGPT,可以实现吗大神?
可以用openwrt获取小爱设备突发特定流量后轮询
这是什么意思呢?我有openwrt
那个是失败的。
我想接入ChatGPT,可以实现吗大神?
你照着 README 就行啊。https://github.com/yihong0618/xiaogpt
@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
以下是GPT的回答: GPT回答出错 Error communicating with OpenAI
解决了吗?
Duplicate of #263
在本地 terminal 跑 micli list 拿到你音响的 DID ------拿到的是空的 换成 micli mina 可以
@l568288g 是的
生命在于折腾!👍,天猫精灵有试过吗
生命在于折腾!👍,天猫精灵有试过吗
天猫精灵不可行。
一次就搞成功了,玩的不亦乐乎。谢谢这么好的开源项目。
以下是GPT的回答: GPT回答出错 Error communicating with OpenAI
解决了吗?
这是GPT相关的问题,
一次就搞成功了,玩的不亦乐乎。谢谢这么好的开源项目。
My pleasure
帮我/请回答
开头来提问
或用开始持续对话
开始持续对话问题:写一首关于幸福的诗?
Traceback (most recent call last):
File "/home/kindom2008/THUDM/xiaogpt/xiaogpt.py", line 5, in
哈哈,直接做个APP,TTS做交互更简单,技术也成熟
但是app需要自行点击启动,做不到开机就启动,但是docker可以
大侠,我在这里卡住了“参考 MiService 项目 README 并在本地 terminal 跑 micli list 拿到你音响的 DID 成功”。能否指导下?
2.执行这个时,xiaogpt.py --hardware L05B --use_chatgpt_api --mute_xiaoai --use_command 直接跳到这个Py文件,我只好在VS上点下run,就弹出这个对话框,接下来要做什么呢?
哈哈,直接做个APP,TTS做交互更简单,技术也成熟
部署在树莓派4B上流畅度如何呢?支持小爱触屏音箱吗?
呢?支持小爱触屏音箱吗?
小爱触屏音不支持 mute_xiaoai 树莓派4B 没问题。
谢谢,家里还有一个“Yeelight语音助手”(集成了小爱同学和小冰,就是没有普通版的小爱音响-_-!)我试试哪个好用
昨天试了下,通过MiService可以给Yeelight语音助手发送文字进行播报,但是用底部的型号运行程序提示找不到这个型号,运行micli mina只返回了小爱触屏音箱的,没有Yeelight语音助手,这个还有办法适应Yeelight语音助手吗?
现在遇到个问题,使用小爱触屏音箱Pro 8,现在控制台可以显示GPT的回复,但是小爱音响并没有播放回复内容,这个如何解决呢?
现在遇到个问题,使用小爱触屏音箱Pro 8,现在控制台可以显示GPT的回复,但是小爱音响并没有播放回复内容,这个如何解决呢?
加上 —use_command 另外请在项目里提 issue 那样其他人遇到了也容易看到
谢谢,搞定了。如果可以不用先调用小爱同学再调用chatgpt就更好了
帮我/请回答
开头来提问
或用开始持续对话
开始持续对话问题:请问中国足球什么时候能拿到大力神杯?
这些都正常吗,然后出现错误提示如下
Traceback (most recent call last):
File "D:\project\xiaomi\xiaogpt\xiaogpt.py", line 5, in
非常感谢大神的指导,我从头至尾详细学习了一下,然后实际操作中出现了一点小问题,请大神指导。
输入python xiaogpt.py --hardware L15A --use_chatgpt_api --mute_xiaoai,开始运行 Running xiaogpt now, 用
帮我/请回答
开头来提问 或用开始持续对话
开始持续对话 问题:请问中国足球什么时候能拿到大力神杯? 这些都正常吗,然后出现错误提示如下 Traceback (most recent call last): File "D:\project\xiaomi\xiaogpt\xiaogpt.py", line 5, in main() File "D:\project\xiaomi\xiaogpt\xiaogpt\cli.py", line 153, in main loop.run_until_complete(miboy.run_forever()) File "C:\Python311\Lib\asyncio\base_events.py", line 653, in run_until_complete return future.result() ^^^^^^^^^^^^^^^ File "D:\project\xiaomi\xiaogpt\xiaogpt\xiaogpt.py", line 469, in run_forever await self.stop_if_xiaoai_is_playing() File "D:\project\xiaomi\xiaogpt\xiaogpt\xiaogpt.py", line 411, in stop_if_xiaoai_is_playing is_playing = await self.get_if_xiaoai_is_playing() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\project\xiaomi\xiaogpt\xiaogpt\xiaogpt.py", line 402, in get_if_xiaoai_is_playing playing_info = await self.mina_service.player_get_status(self.device_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: 'MiNAService' object has no attribute 'player_get_status' 请您指正,诚待回复,不胜感激。
pip3 uninstall miservice pip3 install -U miservice_fork
非常感谢大神的指导,我从头到尾详细学习了一番,然后实际操作中出现了一点小问题,请大神的指导。
输入python xiaogpt.py --hardware L15A --use_chatgpt_api --mute_xiaoai,开始运行 Running xiaogpt now,用
帮我/请回答
开头来提问 或用开始持续对话
开始持续对话 问题:请问中国足球什么时候能伸大力神杯? 这些都正常吗,然后出现错误提示如下 Traceback (most最近一次调用最后): File "D:\project\xiaomi\xiaogpt\xiaogpt.py", line 5 ,在main()文件“D:\project\xiaomi\xiaogpt\xiaogpt\cli.py”中,第153行,在主loop.run_until_complete(miboy.run_forever())文件“C:\Python311\Lib\asyncio\base_events”中.py”,第 653 行,在 run_until_complete return future.result() ^^^^^^^^^^^^^^^^^ 文件“D:\project\xiaomi\xiaogpt\xiaogpt\xiaogpt.py”,第 469 行,在run_forever中await self.stop_if_xiaoai_is_playing()文件“D:\project\xiaomi\xiaogpt\xiaogpt\xiaogpt.py”,第411行,在stop_if_xiaoai_is_playing中is_playing=await self.get_if_xiaoai_is_playing()^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 文件“D:\project\xiaomi\xiaogpt\xiaogpt\xiaogpt.py”,第 402 行,在 get_if_xiaoai_is_playing 中play_info = 等待 self.mina_service。player_get_status(self.device_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: 'MiNAService' 对象没有属性 'player_get_status' 请指正,诚待回复您,不胜感激。pip3 uninstall miservice pip3 install -U miservice_fork 非常感谢,我试试看哈,原理能简单分析一下吗?
pip3 uninstall miservice
pip3 install -U miservice_fork
执行完这两条命令后,情况如下,
python xiaogpt.py --hardware L15A --use_chatgpt_api --mute_xiaoai
Traceback (most recent call last):
File "D:\project\xiaomi\xiaogpt\xiaogpt.py", line 2, in
pip3 uninstall miservice pip3 install -U miservice_fork 执行完这两条命令后,情况如下, python xiaogpt.py --hardware L15A --use_chatgpt_api --mute_xiaoai Traceback (most recent call last): File "D:\project\xiaomi\xiaogpt\xiaogpt.py", line 2, in from xiaogpt.cli import main File "D:\project\xiaomi\xiaogpt\xiaogpt\cli.py", line 5, in from xiaogpt.xiaogpt import MiGPT File "D:\project\xiaomi\xiaogpt\xiaogpt\xiaogpt.py", line 22, in from miservice import MiAccount, MiIOService, MiNAService, miio_command ImportError: cannot import name 'MiAccount' from 'miservice' (unknown location) 请指导
python3 -m pip install -U miservice_fork
另外,请最好不要在这里留 issue, 在 xiaogpt 项目里留
好的好的,一定注意,十分感谢
有办法监听到米家传感器设备么? 如果这条路打通了,再配合ChatGPT,智能家居就能迎来每个程序员的高光时刻。
有办法监听到米家传感器设备么? 如果这条路打通了,再配合ChatGPT,智能家居就能迎来每个程序员的高光时刻。
理论上可以
大佬,关于音箱操作的哪些api文档你是在哪里找到啊?我扒了你的mute api,但是感觉并没有mute掉, 只响应了个 “Msg has been successfully proxy to the device, this service is a simple proxy, if you encounter any problems pls contact ROM's developers directly!!!”
大佬,关于音箱操作的哪些api文档你是在哪里找到啊?我扒了你的mute api,但是感觉并没有mute掉, 只响应了个 “Msg has been successfully proxy to the device, this service is a simple proxy, if you encounter any problems pls contact ROM's developers directly!!!”
没有 api 文档。。。 参考 README 有些型号不能 mute, 另外 issue 在 xiaogpt 项目下留言比较好,那样大家也都能看见
micli mina返回为空 我的设备是小爱音响 型号为MDZ-25-DA
我型号是MDZ-25-DA是不是不支持呀
micli mina返回为空 我的设备是小爱音响 型号为MDZ-25-DA
好像不支持这个型号
我型号是MDZ-25-DA是不是不支持呀
是。。。
现在很多设计都改变了,有点惊讶我 2 月份就实现了;
怪不得 MDZ-25-DA不行
下文中 revChatGPT 方案废弃了,全部改用 API, 请参考 repo. 这句话是什么意思啊...repo在哪里
下文中 revChatGPT 方案废弃了,全部改用 API, 请参考 repo. 这句话是什么意思啊...repo在哪里
就是 xiaogpt 意思是不用原来逆向的方案了,用的是 api with key 的方案
下文中 revChatGPT 方案废弃了,全部改用 API, 请参考 repo. 这句话是什么意思啊...repo在哪里
就是 xiaogpt 意思是不用原来逆向的方案了,用的是 api with key 的方案
我搞了好久 MDZ-25-DA 这个型号确实不行把 我测试了可以播放声音..获取文本不行
下文中 revChatGPT 方案废弃了,全部改用 API, 请参考 repo. 这句话是什么意思啊...repo在哪里
就是 xiaogpt 意思是不用原来逆向的方案了,用的是 api with key 的方案
我搞了好久 MDZ-25-DA 这个型号确实不行把 我测试了可以播放声音..获取文本不行
印象中这型号是不行的。。。。
我想问一下现在这个项目的方案还是网络获取嘛就是读一个小米账号音箱的记录 这个方式我测试的延迟比较大 还是你这个项目的话是读的本地的一个数据库啊会比较快一点
我想问一下现在这个项目的方案还是网络获取嘛就是读一个小米账号音箱的记录 这个方式我测试的延迟比较大 还是你这个项目的话是读的本地的一个数据库啊会比较快一点
是的。其实延迟可以改 sleep 时间的,但会频繁请求不建议
我想问一下现在这个项目的方案还是网络获取嘛就是读一个小米账号音箱的记录 这个方式我测试的延迟比较大 还是你这个项目的话是读的本地的一个数据库啊会比较快一点
是的。其实延迟可以改 sleep 时间的,但会频繁请求不建议
大佬有群吗 加一个讨论
写在前面
项目链接 -> https://github.com/yihong0618/xiaogpt 大多数事儿很简单的一个结论是:这么做有什么用? 但是,没用就不做了么?好玩也是有用之一呀。
注
下文中 revChatGPT 方案废弃了,全部改用 API, 请参考 repo.
想法
开始折腾
最早的 idea 是把小爱同学破解了,破解之后拦截我的对话,如果对话包含
GPT
就用破解的小爱发送请求到 ChatGPT, 再把 ChatGPT 的回复截包,读出来。第一个方式不太行,尝试去用路由 openwrt 截包再发送,依然失败,我折腾了一下发现 https 获取 payload 还是有些困难的
转向了 Siri 那么我能不能用 Siri 实现呢?是能的,可以用 Siri -> 捷径 -> 获取你说的话 -> 发送 ChatGPT -> 小爱 or 直接 Siri 自己来
网友象牙山刘能有一天发他儿子小爱同学的聊天记录,突然灵感来了,我可以用最蠢的轮询,来不断获取最新的聊天记录,如果有新的符合要求我就发送给 ChatGPT --> 再用 tts 让小爱同学朗读,但因为朗读需要时间,所以轮询也没那么笨了。
实现
准备
使用
micli list
拿到你音响的 DID 成功 别忘了设置 export MI_DID=xxx 这个 MI_DID 用python xiaogpt.py --hardware ${your_hardware}
hardware 你看小爱屁股上有型号,输入进来总结
彩蛋