如何解析微信的语音文件
前几天想把微信里的语音文件导出来,就研究了一下,是个麻烦事儿: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
Extracting Audio Messages from WeChat