如何解析微信的语音文件[转]

如何解析微信的语音文件

前几天想把微信里的语音文件导出来,就研究了一下,是个麻烦事儿:aud格式不是常见的音频格式(它现在隶属于Skype),拿到电脑上无法直接播放,还是转成wmv、mp3更通用的格式比较方便。

如何处理微信语音的 aud文件呢?

1、现在的aud文件本质上是silk格式,只需要去掉第1个字节,后面紧跟着的就是#!SILK_V3
2、此时使用某种工具,可以将silk文件转换成pcm 音频文件
3、再将pcm转成wav、mp3等

经过一番查找,发现了能将 silk文件转为 pcm格式的格式的工具silk-v3-decoder—— https://github.com/kn007/silk-v3-decoder

如何使用 silk-v3-decoder

先 clone silk-v3-decoder, 然后进入silk文件夹,你会发现Makefile文件,直接织编译即可,或者使用项目提供的脚本。

sh converter.sh 33921.aud.silk mp3
其中33921.aud.silk是要转换的文件,而mp3是最终转换后输出的格式。

如果你需要批量转换,比如转换某个目录,那么使用:sh converter.sh input-folder ouput-folder mp3

其中input-folder是要转换的目录,而ouput-folder是最终转换后音频输出的目录,最后的mp3是最终转换后输出的格式。

如果想要输出 wmv,自然是sh converter.sh input-folder ouput-folder wmv

如何合并多个音频文件

对于音频来说,有左声道、右声道,用 ffmpeg合并很麻烦,一些合并参数始终没弄明白,于是又找到了一个好工具 SoX

SoX(即 Sound eXchange)是一个跨平台(Windows,Linux,MacOS 等)的命令行实用程序,可以将各种格式的音频文件转换为需要的其他格式。SoX 还可以对输入的音频文件应用各种 效果,也支持在大多数平台上 播放录制音频文件。

格式转换

sox file.wav file.mp3
将文件的格式由wav转为mp3

拼接文件

sox 1.wav 2.wav Full.wav

将1.wav和2.wav合并至 Full.wav 文件,注意合并前的音频文件需保持一致的类型和采样率等。

sox 的操作比ffmpeg方便了太多,更多的sox技巧请大家参考它的使用文档。


参考:

https://zhuanlan.zhihu.com/p/21783890

http://iosre.com/t/topic/3199

Extracting Audio Messages from WeChat

https://github.com/kn007/silk-v3-decoder

SoX — 音频处理工具里的瑞士军刀

https://www.jianshu.com/p/cdb9d2e2bc14

转自:https://www.jianshu.com/p/5ba04a75b642

如何解析微信的语音文件