将小米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 = 1
Device_Manufacturer = 1
Device_Model = 2
Device_ID = 3
Current_Firmware_Version = 4
Serial_Number = 5 # rn
Speaker = 2
Volume = 1 # uint8 # rwn
Mute = 2 # bool # rwn
Play_Control = 3
Playing_State = 1 # uint8 # rn
_Seek_Time = 2 # int16
Play_Loop_Mode = 3 # uint8 # rwn
_Seek = 1 # in=[2]
_Play = 2
_Pause = 3
_Stop = 4
_Previous = 5
_Next = 6
Microphone = 4
Mute = 1 # bool # rwn
Clock = 6
Switch_Status = 1 # bool # rwn
Status = 2 # uint8 # rn
Device_Fault = 3 # uint8 # rn
Ringtone = 4 # uint8 # rwn
_Stop_Alarm = 1
Intelligent_Speaker = 7
_Text_Content = 1
_Silent_Execution = 2 # bool
Sleep_Mode = 3 # bool # rwn
Audio_Id = 4 # rn
_Wake_Up = 1
_Play_Radio = 2
_Play_Text = 3 # in=[1]
_Execute_Text_Directive = 4 # in=[1, 2]
_Play_Music = 5
tv-switch = 8
_tv = 1 # -switchon
Speaker_Volume
MIN = 0
MAX = 100
Play_Control_Playing_State
Playing = 1
Stop = 0
Pause = 2
Play_Control_Seek_Time
MIN = -30000
MAX = 30000
STEP = 10
Play_Control_Play_Loop_Mode
Single_Cycle = 1
Clock_Status
Idle = 1
Busy = 2
Clock_Device_Fault
No_Faults = 0
Clock_Ringtone
MIN = 1
MAX = 5
以容器方式部署程序到小米万兆路由器
打开小米万兆路由器 SimpleDocker 界面,拉取新的镜像 engchina/xiaogpt:v1
,
然后单击右侧的 “启动镜像”,
选择 ”专业模式“,输入基础信息,单击 “下一步”,
存储信息界面按默认就可以,单击 “下一步”,网络信息界面选择绑定网络为 “bridge”,单击 “下一步”,
环境信息界面参考截图配置一些环境变量,单击 “下一步”,
最后单击 “确定创建”,
实际效果
用查查/查一查/查一下/算一算/想一想/问一下/你认为/你觉得/你知道/介绍一下/解释一下/说明一下/总结一下
开头来提问,我们部署的程序会拦截小米 SoundWave 的语音文字信息,然后将这些文字信息发送给 ChatGPT,然后将 ChatGPT 的返回结果朗读出来。
博客这里只能展示一下日志了,有时间时录个视频展示一下效果。
有待改善点
现在已知的有点个人觉得还需要不断改善,
1, 虽然设置 Mute 了小爱自带的回答,但是还是没有做到完全消除,会在朗读 ChatGPT 的结果前,朗读一部分小爱自带的回答。
2, 调用 ChatGPT 的耗时比较长,需要等待 10几秒或者更长的时间。
3, 对英语和其他语音支持不完善。
完结!