“ 微信语音短消息amr文件转WAV。”
在《SILK编码语音转WAV格式》中提到过,“腾讯系产品,包括QQ、微信、小程序,在语音相关的实现中,也大量使用到SILK编码”,并对SILK编码、WAV格式及SILK转WAV进行了介绍。
本文将针对微信语音短消息amr后缀文件转换成WAV文件的方法进行说明。
而QQ语音流、微信语音流的SILK解码方式与此类似,但又有其特殊性,可参考本文及之前相关文章。
01
—
amr说明
微信语音短消息文件虽然不能直接转发,但在手机中以文件形式存在微信相关目录下,对Android手机而言,在/sdcard/tencent/MicroMsg/xxx/voice2目录中,根据特定哈希算法被哈希到不同子目录下,为amr后缀,xxx为账号对应的目录。iPhone则可使用各种工具导出。
这些amr文件里面的二进制格式如下:
通过分析可以发现,是在SILK文件格式前多了一个字节,如果将该字节删除即可使用SILK编码库内的示例程序解码。
对微信语音短消息文件,转换为WAV时,使用SampleRate为24000,
BitsPerSample为16即可。
02
—
转WAV程序
我对SILK编码库稍作修改,编译了一个Windows下可直接将SILK V3编码转换为WAV格式,并支持原生的微信语音短消息amr文件的版本,提供给大家使用,压缩包(包括修改的SILK编码库、编译好的程序、运行脚本、示例微信短消息amr文件及转换出的WAV文件)的下载地址可关注后发送关键词“amr”获取。
对程序简单说明如下:
SILK_SDK_SRC_ARM_v1.0.9内test目录下的Decoder.c为被修改的支持微信语音短消息文件转换为WAV的源文件。
SILK_SDK_SRC_ARM_v1.0.9内的程序为编译可直接使用的程序。
decoder.amr.bat为将微信语音短消息amr文件转换为wav文件的运行脚本,内容可修改。
decoder.slk.bat为将原始SILK格式文件转换为wav文件的运行脚本,内容可修改。
msg_222102012818a9a397acc9c106.amr为微信语音短消息amr文件示例。
msg_222102012818a9a397acc9c106.slk为原始SILK格式文件示例。
msg_222102012818a9a397acc9c106.amr.wav为转换出的wav文件。
如果对这个修改的可转为WAV版本的SILK库的使用有问题,可以咨询我。
如果需再次熟悉SILK到WAV的转换请点击链接:SILK编码语音转WAV格式。
长按进行关注。