惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
Netflix TechBlog - Medium
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
有赞技术团队
有赞技术团队
阮一峰的网络日志
阮一峰的网络日志
WordPress大学
WordPress大学
V
Visual Studio Blog
博客园_首页
大猫的无限游戏
大猫的无限游戏
Y
Y Combinator Blog
博客园 - Franky
Vercel News
Vercel News
H
Hackread – Cybersecurity News, Data Breaches, AI and More
U
Unit 42
IT之家
IT之家
Last Week in AI
Last Week in AI
腾讯CDC
Martin Fowler
Martin Fowler
S
SegmentFault 最新的问题
量子位
I
InfoQ
T
The Blog of Author Tim Ferriss
The Cloudflare Blog
MyScale Blog
MyScale Blog
C
Check Point Blog

智能家电

全自动门锁困惑 - V2EX 兄弟们,有把 home assistant 或者米家接 agent 玩的吗 - V2EX 求推荐儿童定位手表 - V2EX 智能门锁选鹿客 S6Max 怎么样? - V2EX 中登新买了个电视,各位有什么好玩的电视 APP? - V2EX 买了套二手房,想改智能开关控三色灯求方案 有能接入米家的红外遥控器吗?要求… 精装房交付的是博联智能,如何接入米家呢 如何通过网络控制家里的柜机空调 感觉国内智能家居的开关控制都不太专业,特别是米家 米家灯带每当网关重新联网时就会诡异地自动打开? 帮忙推荐一款智能锁 全屋 wifi 锐捷方案如何? 1850 多多买的小米智能门锁,师傅上门说装不了直接走了。。 请教智能门锁相关 智能家居架构设备选择 我做了一个能连微信、家电、汽车和 AI 的超级管家 我这样设计全屋智能灯光可以吗? 全屋智能相关问题请教 智能开关的相关问题咨询 现在市面上有可以自定义接入大模型的可以控制智能家居和日常对话的音响产品吗? 哪家的智能开关稳定性比较好 中央空调待机功耗 20w? 想请教下智能灯光和智能开关这一块 求推荐智能猫眼门铃 小米多模网关 2 有没有开放 API 接口 ? 求推荐想买一个安卓平板,冬天来了趟被窝看电视 DIY 全屋智能基本完成,准备写一篇长文记录一下 求家庭智能安防设备推荐 TCL 电视多次换货经历,应该如何处理?
在扫地机器人固件 Valetudo 上使用米家原厂语音包 - V2EX
dairiki · 2026-09-01 · via 智能家电

https://dairiki.ren/posts/valetudo-voice-pack/ (作者为本人)

收藏一下原厂的语音包文件,石头 S5 老机器了,说不定云端功能什么时候突然下线。。。 不太确定可不可以直接在 V2 共享下载方式,详情可参见以上链接完整文章。以下为节选:


  1. 准备一台 root 过的安卓机和一个抓包工具。我没有深度探索其他方案,根据 HTTP Toolkit 的一篇自荐文章选择了这个工具。或许亦可以使用 mitmproxy 并手动安装系统证书。

  2. 给扫地机器人恢复原厂固件,重新在米家 App 中绑定并导航至语音包配置界面。全程观察抓包日志,锁定类似https://cnbj2.fds.api.xiaomi.com/rubys/app/voice-pkg/info.en?time=1788198895673的请求 URL。该请求会返回一个 JSON,里面包含了所有可用语音包文件(文件名扩展为 pkg)的下载链接。

  3. 为快速下载所有语音包的 pkg 文件,我编写了以下 Python 脚本:

import httpx

url = "https://cnbj2.fds.api.xiaomi.com/rubys/app/voice-pkg/info.en?time=1788198895673"

resp = httpx.get(url)

print(resp.text)

for voice in resp.json()["voice_list"]:
    try:
        voice_pkg_url: str = voice["voice_pkg_url"]
        voice_md5_hash = voice["voice_pkg_md5"]
        resp = httpx.get(voice_pkg_url, timeout=45)
        filename = voice_pkg_url.split("/")[-1]
        with open(filename, "wb") as voice_file:
            voice_file.write(resp.read())
        print(f"Downloaded {voice["voice_title"]} as {filename}")
    except KeyError:
        print(f"{voice["voice_title"]} is not downloadable, skipping")

如后续 API 有变更,URL 发生改变,直接修改该脚本即可。脚本将自动将所有可下载的语音包下载到工作目录。