最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

将小米SoundMove 无缝接入 ChatGPT

运维笔记admin0浏览0评论

将小米SoundMove 无缝接入 ChatGPT

  • 本教程内容
  • 参考 Github 地址
  • (可选)部署查看小米 SoundMove 信息的环境
  • (可选)查看小米 SoundMove 的信息
  • 以容器方式部署程序到小米万兆路由器
  • 实际效果
  • 有待改善点

本教程内容

1 是记录了将小米 SoundMove 接入 ChatGPT 的操作步骤。
2 是将小米 SoundMove 接入 ChatGPT 构建成了容器镜像,部署在小米万兆路由器上,实现了无缝接入。每次打开小米 SoundMove 的同时自动接入 ChatGPT。

参考 Github 地址

整个操作过程参考了 https://github/yihong0618/xiaogpt 的说明和代码,非常感谢原作者!!!

(可选)部署查看小米 SoundMove 信息的环境

git clone https://github/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, 对英语和其他语音支持不完善。

完结!

发布评论

评论列表(0)

  1. 暂无评论