下面的文字先用一段总览阐明关键结论,再分节细述:在 Android 文件系统里,微信语音消息实际保存在 Tencent/MicroMsg/<32 位哈希>/voice2 目录下,文件扩展名常见为 .silk 或 .aud。只要把这些文件复制到电脑端,再用 silk-v3-decoder 或者直接调用 ffmpeg 即可批量转成 wav/mp3。全程无需 root,但在 Android 11 及以上需要借助 adb pull 或微信 PC 端的“备份与恢复”功能。转换脚本可以用不到五十行的 Python 完成,并支持一次性扫描、重命名和格式转换,方便归档或后期声音分析。
文件到底藏在哪
微信会把所有多媒体内容集中放进 sdcard/Tencent/MicroMsg₁,然后再用用户 Uin 的 MD5 哈希当子目录名。语音对应的具体路径是 voice2₂。
早期版本路径固定;7.0.17 之后微信把同名目录移动到了应用专属沙盒,但通过 adb pull /sdcard/Android/data/com.tencent.mm/... 依然可访问₃。
如果不想走 ADB,官方桌面版微信也能“备份聊天记录到电脑”,备份完成后在 PC 的 Documents\WeChat Files\<微信号>\Backup\<日期>\voice2 找到同样的 .aud/.silk 文件₄。
每一段语音文件名形如 msg_18fd53c1b1a7c8f1.silk,时间戳包含在 SQLite 消息数据库里,所以需要后续脚本来把“文件→时间”对照补齐₅。
(Fireebok, My Assignment Help, XDA Forums, MobileTrans, GitHub)
为什么不能直接播放
.silk 和 .aud 都是基于 Skype Silk v3 的语音编码格式,体积小、延迟低,但系统播放器没有对应解码器₆。
少数 .aud 其实是裁掉 AMR 文件头 (#!AMR\n) 的宽带 AMR,只要在文件头补回 6 字节即可直接播放₇。
更通用的方法是用开源 silk-v3-decoder 将 Silk 转成 PCM,再交给 ffmpeg 或 sox 封装为 wav/mp3₈。
(Forensic Focus, GitHub, Stack Overflow)
把语音拷出来:三种途径
1. USB 大容量存储或文件管理器
把手机连到电脑,允许 MTP;在手机存储器“内部共享存储”里按上一节的路径直接复制。简单直观,但 Android 11 开始微信目录被 SAF 隐藏,需要借助电脑端“文件管理”应用才能看到。
2. ADB 命令行
开发者模式下执行
adb shell "ls /sdcard/Android/data/com.tencent.mm/MicroMsg"
adb pull /sdcard/Android/data/com.tencent.mm/MicroMsg/
这种方式不受系统版本限制;复制速度也最快₉。
3. PC 端备份聊天记录
微信 Windows/Mac 客户端 → 三条横线 → 备份与恢复 → 备份聊天记录到电脑,结束后在备份目录拿到语音文件₄。
(GitHub, MobileTrans, Reddit)
批量转换脚本(Python 版本)
下面脚本示例兼顾三件事:
遍历 voice2 目录找出所有 .silk/.aud。
通过 hashed 文件名关联 SQLite 消息数据库,把语音重命名为“聊天对象_时间戳.wav”。
调用 silk-v3-decoder+ffmpeg 输出 wav。
运行准备:
安装 Python 3.x、ffmpeg₁₀,并把 silk-v3-decoder 编译好的 decoder 放到 PATH。
复制 MM.sqlite(微信消息数据库)到同一目录;或者去掉与数据库有关的几行,让脚本只做格式转换。
#!/usr/bin/env python3
import subprocess, sqlite3, pathlib, re, shutil, datetime
SRC_DIR = pathlib.Path('wechat_voice') # voice2 源目录
OUT_DIR = pathlib.Path('exported_voice') # 导出目录
DB_PATH = pathlib.Path('MM.sqlite') # 消息数据库
OUT_DIR.mkdir(exist_ok=True)
conn = sqlite3.connect(DB_PATH) # 读取消息记录
cur = conn.cursor()
def silk_to_wav(src: pathlib.Path, dst: pathlib.Path):
tmp = src.with_suffix('.pcm')
subprocess.run(['decoder', src, tmp], check=True) # Silk→PCM
subprocess.run(['ffmpeg', '-y', '-f', 's16le', '-ar', '24000',
'-ac', '1', '-i', tmp, dst], check=True) # PCM→WAV
tmp.unlink()
for f in SRC_DIR.rglob('*.silk'):
# 通过文件名里的 md5 查找聊天对象 & 时间
md5 = f.stem.split('_')[1]
row = cur.execute("SELECT talker, createTime FROM message WHERE msgSvrId=?",
(md5,)).fetchone()
if row:
peer, ts = row
ts_str = datetime.datetime.fromtimestamp(ts/1000).strftime('%Y%m%d_%H%M%S')
target = OUT_DIR / f"{peer}_{ts_str}.wav"
else:
target = OUT_DIR / f"{f.stem}.wav"
silk_to_wav(f, target)
print('全部完成!')
需要跨平台?把 ffmpeg 的调用改成 pydub.AudioSegment.from_file 也行,只是速度会慢一些。
(GitHub, FFmpeg, Ask Ubuntu)
批量转换的命令行一键式方案
如果你更习惯 Bash:
find ./voice2 -type f -name '*.silk' -print0 | \
while IFS= read -r -d '' f; do
b=$(basename "$f" .silk)
decoder "$f" "$b.pcm"
ffmpeg -y -f s16le -ar 24000 -ac 1 -i "$b.pcm" "out/${b}.wav"
rm "$b.pcm"
done
上面假设 decoder 与 ffmpeg 已经加入 PATH。
如果遇到 .aud 文件,把 find 的匹配后缀改为 -name '*.aud',并在循环顶部 mv "$f" "$f.silk" 把后缀先统一₇。
(Stack Overflow, forensenellanebbia.blogspot.com)
转换质量与格式选择
Silk 原始采样率 24 kHz,位深 16 bit 单声道。ffmpeg 默认为 pcm_s16le,可以保留原品质直接封装成 wav,体积 ~200 KB/s₁₁。
若需更小体积,例如发送邮件,可追加 -codec:a libmp3lame -qscale:a 5 得到每分钟不到 100 KB 的 mp3。
长期归档推荐保留无损 flac:ffmpeg -i in.wav -c:a flac out.flac₁₂。
(FFmpeg, Super User)
隐私、合规与后续处理建议
导出聊天语音一定要征得所有对话参与者同意,尤其在个人信息保护法实施地区。
若打算做后期降噪或语音识别,转换为 16 kHz/16 bit PCM 可直接喂给常见 ASR 模型。
重要纪念语音可再用 iTunes、云盘双重备份,并定期校验 MD5。
参考文献与资源索引
Fireebok 教程展示路径 Tencent/MicroMsg/.../voice2 (Fireebok)
Forensic 论文对 WeChat 媒体文件夹的描述 (My Assignment Help)
XDA 讨论 Android 7.0.17 之后路径变化 (XDA Forums)
Wondershare MobileTrans 讲解微信桌面备份功能 (MobileTrans)
wechat-dump 项目说明如何从 SQLite 映射文件名 (GitHub)
StackOverflow: Silk → AMR 转码需求 (Stack Overflow)
ForensicFocus 通过补 AMR 头即可播放 (Forensic Focus)
silk-v3-decoder 仓库与用法示例 (GitHub)
Reddit 经历备份/复制语音经验分享 (Reddit)
ffmpeg 官方文档示例命令 (FFmpeg)
AskUbuntu 对 pcm_s16le 默认输出的说明 (Ask Ubuntu)
SuperUser 讨论如何无损提取音频 (Super User)
这篇指南覆盖了路径定位、文件复制、格式解码与批量脚本自动化等关键环节,并特别强调了隐私与合规注意事项。按文中步骤操作,即可把安卓微信里的所有语音消息安全、高效地导出为通用 wav/mp3 文件。祝顺利。