将小米SoundMove 无缝接入 ChatGPT
- 本教程内容
- 参考 Github 地址
- (可选)部署查看小米 SoundMove 信息的环境
- (可选)查看小米 SoundMove 的信息
- 以容器方式部署程序到小米万兆路由器
- 实际效果
- 有待改善点
本教程内容
1 是记录了将小米 SoundMove 接入 ChatGPT 的操作步骤。
2 是将小米 SoundMove 接入 ChatGPT 构建成了容器镜像,部署在小米万兆路由器上,实现了无缝接入。每次打开小米 SoundMove 的同时自动接入 ChatGPT。
参考 Github 地址
整个操作过程参考了 https://github.com/yihong0618/xiaogpt 的说明和代码,非常感谢原作者!!!
(可选)部署查看小米 SoundMove 信息的环境
git clone https://github.com/engchina/MiService.git; cd MiService
conda create -n xiaoai python=3.10.6
conda activate xiaoai
pip install .
(可选)查看小米 SoundMove 的信息
设置账号,
export MI_USER=<your_mi_user>
export MI_PASS=<your_mi_password>
查询自己的设备,
micli.py list
输出结果示例,
[{"name": "xiaoaitongxue","model": "xiaomi.wifispeaker.m03a","did": "<your_mi_did>","token": "<your_token>"}
]
设置 MI_DID,
export MI_DID=<your_mi_did> # 上面输出结果
查询设备的接口文档,
micli.py spec xiaomi.wifispeaker.m03a # 上面输出结果
输出结果示例(实际只有 Intelligent_Speaker = 7 会用到),
Device_Information = 1Device_Manufacturer = 1Device_Model = 2Device_ID = 3Current_Firmware_Version = 4Serial_Number = 5 # rnSpeaker = 2Volume = 1 # uint8 # rwnMute = 2 # bool # rwnPlay_Control = 3Playing_State = 1 # uint8 # rn_Seek_Time = 2 # int16Play_Loop_Mode = 3 # uint8 # rwn_Seek = 1 # in=[2]_Play = 2_Pause = 3_Stop = 4_Previous = 5_Next = 6Microphone = 4Mute = 1 # bool # rwnClock = 6Switch_Status = 1 # bool # rwnStatus = 2 # uint8 # rnDevice_Fault = 3 # uint8 # rnRingtone = 4 # uint8 # rwn_Stop_Alarm = 1Intelligent_Speaker = 7_Text_Content = 1_Silent_Execution = 2 # boolSleep_Mode = 3 # bool # rwnAudio_Id = 4 # rn_Wake_Up = 1_Play_Radio = 2_Play_Text = 3 # in=[1]_Execute_Text_Directive = 4 # in=[1, 2]_Play_Music = 5tv-switch = 8_tv = 1 # -switchonSpeaker_VolumeMIN = 0MAX = 100Play_Control_Playing_StatePlaying = 1Stop = 0Pause = 2Play_Control_Seek_TimeMIN = -30000MAX = 30000STEP = 10Play_Control_Play_Loop_ModeSingle_Cycle = 1Clock_StatusIdle = 1Busy = 2Clock_Device_FaultNo_Faults = 0Clock_RingtoneMIN = 1MAX = 5
以容器方式部署程序到小米万兆路由器
打开小米万兆路由器 SimpleDocker 界面,拉取新的镜像 engchina/xiaogpt:v1
,
然后单击右侧的 “启动镜像”,
选择 ”专业模式“,输入基础信息,单击 “下一步”,
存储信息界面按默认就可以,单击 “下一步”,网络信息界面选择绑定网络为 “bridge”,单击 “下一步”,
环境信息界面参考截图配置一些环境变量,单击 “下一步”,
最后单击 “确定创建”,
实际效果
用查查/查一查/查一下/算一算/想一想/问一下/你认为/你觉得/你知道/介绍一下/解释一下/说明一下/总结一下
开头来提问,我们部署的程序会拦截小米 SoundWave 的语音文字信息,然后将这些文字信息发送给 ChatGPT,然后将 ChatGPT 的返回结果朗读出来。
博客这里只能展示一下日志了,有时间时录个视频展示一下效果。
有待改善点
现在已知的有点个人觉得还需要不断改善,
1, 虽然设置 Mute 了小爱自带的回答,但是还是没有做到完全消除,会在朗读 ChatGPT 的结果前,朗读一部分小爱自带的回答。
2, 调用 ChatGPT 的耗时比较长,需要等待 10几秒或者更长的时间。
3, 对英语和其他语音支持不完善。
完结!