https://dairiki.ren/posts/valetudo-voice-pack/ (作者为本人)
收藏一下原厂的语音包文件,石头 S5 老机器了,说不定云端功能什么时候突然下线。。。
不太确定可不可以直接在 V2 共享下载方式,详情可参见以上链接完整文章。以下为节选:
准备一台 root 过的安卓机和一个抓包工具。我没有深度探索其他方案,根据 HTTP Toolkit 的一篇自荐文章选择了这个工具。或许亦可以使用 mitmproxy 并手动安装系统证书。
给扫地机器人恢复原厂固件,重新在米家 App 中绑定并导航至语音包配置界面。全程观察抓包日志,锁定类似https://cnbj2.fds.api.xiaomi.com/rubys/app/voice-pkg/info.en?time=1788198895673的请求 URL。该请求会返回一个 JSON,里面包含了所有可用语音包文件(文件名扩展为 pkg)的下载链接。
为快速下载所有语音包的 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 发生改变,直接修改该脚本即可。脚本将自动将所有可下载的语音包下载到工作目录。