在扫地机器人固件 Valetudo 上使用米家原厂语音包

dairiki 2026-09-01 06:50 1

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 发生改变,直接修改该脚本即可。脚本将自动将所有可下载的语音包下载到工作目录。

最新回复 (0)
    没有回复
* 帖子来源V2EX
返回