微信的语音聊天记录可以从手机提取出来保存到PC上么?

可以的话,Android和iOS的手机分别怎么导出呢?
关注者
326
被浏览
155,117

22 个回答

iOS 不越狱、不借助安卓设备,借助 Chrome for Windows 本身的调试功能,同样可以获得。

  1. 在 Chrome 上登录微信网页版,然后接受语音。
  2. 如果语音超过 16 秒(大概经验值),在微信网页版里播放一次这段语音,并打开 Chrome 的 Cache 文件夹。其地址可能是 C:\Users\<你的用户名>\AppData\Local\Google\Chrome\User Data\Default\Cache (不同 Windows 系统具体位置可能不一样,请领会精神)
  3. 按修改日期对 Cache 文件夹排序,找到最新的文件。如果有条件验证:查看该文件内容,头部有明显的 ID3 标签字样。反正最后要将其改名为 .mp3 文件,能播放就对了。
  4. 如果这段语音不足 16 秒,那就只能用 F12-Network 大法了:在微信网页版界面,切到语音所在的对话人那里,按 F12 键或 Ctrl-shift-i 组合键打开开发者工具,切到 Network 面板,按照 type 找到一个 audio/mp3 项目。对左侧的链接状按钮戳下鼠标右键,复制链接地址或者在新标签内打开然后 Ctr-s 键保存,这就是一个 MP3 文件。

下图是开发者工具里 Network 的位置。

下图是找到的 audio/mp3 项目。

下图是在新标签页打开这个 MP3 文件看到的网页播放界面。Ctrl-s 键保存成文件就好。


——本文谢绝转载——

2016.03.11

之前有 bug,只能转换一半时间长度。

已修复。

2016.12.20

本答案以及下面的软件只针对 Android 6.*

其他平台可以查看

@AnLuoRidge

的这篇文章:

[综述]微信语音文件的格式转换

————————

@刘子东

想要一个软件。

只支持 Android 版本 导出的 .amr

enjoy:

下载这里的 wechat_silk.zip 即可

GitHub - alexyangfox/wechat_silk: Wechat SILK to wav

演示看图:

https://github.com/alexyangfox/wechat_silk/raw/master/tutorial.gif

第一步,选择想要解码的文件:

第二步,拖拽到 wechat_silk.exe 上:



===============

原来答案:

一直想要做这件事情.

最近比较忙,今晚终于有时间研究了一下.

Android 版本 6.3.8 测试

音频文件都在微信的文件夹里。

后缀名是 .amr


1.

编码是 skype 的 SILK .

下一版本不知道是否会换成 OPUS

原本这个音频文件的头应该是 "#!SILK_V3"

但是,我发现我的手机里面的音频,header的前面还加了一个 byte 02

所以,第一步是要去掉文件的第一个 byte:

去掉之后,那么就可以去找官方的解码器了。

2.

下载 SILK 源代码:

SILKCodec/SILK_SDK_SRC_v1.0.9.zip at master · gaozehua/SILKCodec · GitHub

下载了解压

解压了有好几个文件夹,不知道为什么会不同构架分离

我随便选了一个 SILK_SDK_SRC_FIX_v1.0.9 文件夹,进入里面

如果是 VS 工程 就 build all

如果是 Linux 就更方便了,make all

然后,会注意到生成了一个 有用的小工具叫做 deocder:

3.

使用这个工具,我们就可以解码上面的音频了:

这个是用法:

usage: ./decoder in.bit out.pcm [settings]

in.bit : Bitstream input to decoder

out.pcm : Speech output from decoder

settings:

-Fs_API <Hz> : Sampling rate of output signal in Hz; default: 24000

-loss <perc> : Simulated packet loss percentage (0-100); default: 0

-quiet : Print out just some basic values

其实,不用管那么多,直接用吧。

这里需要注意的是,采样率要记住,因为生成的是 PCM ,是没有采样率信息的。

这里,如果不设置采样率的话,默认的是 24000 也就是 2.4 k

直接用:

./decoder 输入文件.amr 输出文件.pcm


4.

最后把解码成功的 .pcm 转换成 .wav

实际上就是添加一个 header

这里使用 ffmpeg :

ffmpeg -f s16le -ar 24k -ac 1 -i msg.pcm msg.wav

其中这里的 24k 就是我们上面使用的默认采样率。


哈哈哈。

解码结束之后,听一下这个 .wav 吧。

是那个你熟悉的声音

那个女孩的声音


回顾一下哈:

(1) 删掉文件的第一个 byte

(2)下载 SILK SDK ,build 之后,使用 decoder 小工具解码成 pcm

(3)找个工具(这里用的 ffmpeg),将pcm转换成 wav

Linux 下和windows 下通用哈。