十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

xiaomusic 小爱音箱 M01 型号兼容性排查:型号兼容模式与特殊型号获取对话记录配置详解

xiaomusic 小爱音箱 M01 型号兼容性排查:型号兼容模式与特殊型号获取对话记录配置详解 xiaomusic 小爱音箱 M01 型号兼容性排查型号兼容模式与特殊型号获取对话记录配置详解【免费下载链接】xiaomusic使用小爱音箱播放音乐音乐使用 yt-dlp 下载。项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic本指南围绕 xiaomusic 项目中 M01 型号音箱的已知兼容性问题展开系统梳理「型号兼容模式use_music_api」与「特殊型号获取对话记录get_ask_by_mina」两个关键配置项的底层实现与配置方法并结合源码说明 M01 与 S12A、LX04、S12 等型号在语音播放、自定义指令联动上的差异帮助遇到界面显示播放中但音箱无声自定义指令无效等问题的用户快速定位原因并制定可行的替代方案。背景Issue 294 记录了哪些 M01 问题在 docs/issues/294.md 中用户反馈了 M01 型号音箱在 xiaomusic 0.3.55 版本中的三类典型现象语音播放不稳定当「型号兼容模式」与「特殊型号获取对话记录」都设为false或都设为true时M01 都可以正常语音但当「型号兼容模式」为true时Web 界面默认显示播放中音箱实际却没有声音。自定义指令失效S12A、LX04、S12 等型号可以在米家 APP 中自定义指令联动如播放歌曲关机而 M01 无论两个开关如何组合都无法执行自定义指令。暂停后自动续播用户实测 M01 使用pause指令可以暂停但约 2 分钟后会自动恢复播放。项目作者 hanxi 在评论中确认M01 保持默认设置应可正常语音与播放自定义指令功能属于 M01 型号本身不支持的硬件能力该型号可能已属于放弃维护的产品线。两个核心配置项的实现原理型号兼容模式use_music_api该配置项对应 Web 设置界面中的「型号兼容模式」环境变量为XIAOMUSIC_USE_MUSIC_API默认值为false定义于 config.pyuse_music_api: bool ( os.getenv(XIAOMUSIC_USE_MUSIC_API, false).lower() true )它的作用是在播放音乐时强制切换小米云端推送接口。从 device_player.py 的播放逻辑可以看到接口选择顺序elif self.config.use_music_api or ( self.hardware in NEED_USE_PLAY_MUSIC_API ): ret await self.auth_manager.mina_service.play_by_music_url( device_id, url, audio_idaudio_id ) else: ret await self.auth_manager.mina_service.play_by_url(device_id, url)也就是说当use_music_api为true或设备硬件型号命中 const.py 中NEED_USE_PLAY_MUSIC_API列表如 X08C、X08E、X4B、LX05、OH2 等时走play_by_music_url接口否则走play_by_url接口。Issue 294 中界面显示播放中但音箱无声的现象可以推断与 M01 在强制走play_by_music_url推送接口时云端无法正确下发到该型号硬件有关。此外play_by_music_url还需要通过_get_audio_id查询歌曲在小米侧的音乐 IDdevice_player.py该查询依赖小米接口返回结果M01 上查询异常也会导致播放链路中断。特殊型号获取对话记录get_ask_by_mina该配置项对应 Web 设置界面中的「特殊型号获取对话记录」环境变量为XIAOMUSIC_GET_ASK_BY_MINA默认值为false定义于 config.pyget_ask_by_mina: bool ( os.getenv(XIAOMUSIC_GET_ASK_BY_MINA, false).lower() true )它决定程序通过哪条 API 拉取音箱的对话记录即用户说了什么话。在 conversation.py 的轮询逻辑中hardware self.device_manager.get_hardward(device_id) if (hardware in GET_ASK_BY_MINA) or self.config.get_ask_by_mina: tasks.append(self.get_latest_ask_by_mina(device_id)) else: tasks.append( self.get_latest_ask_from_xiaoai(session, device_id) )GET_ASK_BY_MINA列表定义于 const.py当前恰好只包含M01# 需要采用 mina 获取对话记录的设备型号 GET_ASK_BY_MINA [ M01, ]这意味着 M01默认就走get_latest_ask_by_mina途径获取对话记录此时get_ask_by_mina配置为false也生效因为命中了内置列表而get_latest_ask_from_xiaoai走的是小米 userprofile 的对话记录接口见 const.py 中LATEST_ASK_API。结合 Issue 294 的实测结论可以理解为对 M01 而言手动把「特殊型号获取对话记录」设为true的效果与默认相同都走 mina 途径不会带来额外改善而「型号兼容模式」需要谨慎开启否则可能出现无声但 UI 显示播放中的现象。M01 与其他型号的能力差异Issue 294 明确对比了不同型号在米家 APP 自定义指令上的差异型号语音播放米家 APP 自定义指令联动备注M01默认设置下可正常语音仅pause等个别口令可用无法执行播放/关机等自定义指令作者判断该型号不支持此能力S12A / LX04 / S12正常支持如播放歌曲关机可结合米家自动化实现有人/无人场景联动同时评论中还记录了以下实用信息M01 自定义指令play、stop、power off可停止播放或关机play music可播放音乐作者推测 M01 的自定义指令可能不需要下划线与默认keywords_stop关机,暂停,停止,停止播放…的书写习惯不同需按小米技能平台的指令格式重新设计。暂停会自行恢复M01 使用pause后约 2 分钟左右会自动继续播放属硬件行为。LX04 找不到设备评论 7/8 中LX04 不能识别未找到小爱音箱的报错作者答复为登录问题账号 cookie/会话失效与型号兼容性无关。针对 M01 的配置与排查建议结合上述源码与实测反馈可给出以下可落地的操作建议保持默认配置优先M01 用户建议将「型号兼容模式use_music_api」保持为false默认「特殊型号获取对话记录get_ask_by_mina」可保持false因为 M01 已内置在GET_ASK_BY_MINA列表中默认即走正确的对话记录获取途径。两个开关同时置为true或false都可语音但「型号兼容模式」置为true时可能出现无声应避免。自定义指令按 M01 的格式重写keywords_play、keywords_stop等关键词均可在 config-example.json 中自定义相关配置项在 config.py 中均有环境变量覆盖如XIAOMUSIC_KEYWORDS_PLAY、XIAOMUSIC_KEYWORDS_STOP。M01 用户可尝试play music、power off这类不带下划线的指令。配合「下一首歌延迟」缓解暂停恢复pause约 2 分钟后自动续播是硬件行为如需控制可结合 config.py 中的XIAOMUSIC_DELAY_SEC下一首歌延迟秒数与停止类关键词组合使用但不要期望完全关闭该行为。网页端可控所有型号都支持在 Web 页面点击关机按钮或直接语音关机M01 也不例外这是不受自定义指令能力影响的兜底操作。其他型号遇到找不到设备先查登录如 LX04 等型号出现未找到小爱音箱优先检查小米账号登录状态与 cookie 有效性auth_manager.cookie_jar会动态更新见 conversation.py而非怀疑型号兼容问题。小结M01 在 xiaomusic 中属于能用默认能力、但缺失自定义指令能力的特殊型号。理解「型号兼容模式」与「特殊型号获取对话记录」的底层实现分别对应 device_player.py 的播放接口切换与 conversation.py 的对话记录获取途径切换后即可对 Issue 294 中的现象做出合理解释不要在 M01 上开启「型号兼容模式」自定义指令按硬件实际支持的指令格式如不带下划线的play music、power off编写必要时通过网页端操作兜底。对于 S12A、LX04、S12 等支持米家联动的型号则可充分利用自定义指令实现有人/无人场景的自动化播放与关机。【免费下载链接】xiaomusic使用小爱音箱播放音乐音乐使用 yt-dlp 下载。项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表