• 微信语音短消息amr文件转WAV


     微信语音短消息amr文件转WAV


    在《SILK编码语音转WAV格式》中提到过,“腾讯系产品,包括QQ、微信、小程序,在语音相关的实现中,也大量使用到SILK编码”,并对SILK编码、WAV格式及SILK转WAV进行了介绍。


    本文将针对微信语音短消息amr后缀文件转换成WAV文件的方法进行说明。


    而QQ语音流、微信语音流的SILK解码方式与此类似,但又有其特殊性,可参考本文及之前相关文章。


    01

    amr说明

    640?wx_fmt=jpeg

    微信语音短消息文件虽然不能直接转发,但在手机中以文件形式存在微信相关目录下,对Android手机而言,在/sdcard/tencent/MicroMsg/xxx/voice2目录中,根据特定哈希算法被哈希到不同子目录下,为amr后缀,xxx为账号对应的目录。iPhone则可使用各种工具导出。


    这些amr文件里面的二进制格式如下:

    640?wx_fmt=png

    通过分析可以发现,是在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格式

    640?wx_fmt=jpeg

    长按进行关注。





  • 相关阅读:
    壳的编写(1)-- 简介与搭建框架
    Writing Your Own Packer
    中断门
    记一次:Windows的Socket编程学习和分析过程
    封装调用包含界面的MFC dll
    编译vtk8.1.1 + 在vs2017中配置开发环境
    迁移通知
    基于CAN总线的汽车诊断协议UDS(上位机开发驱动篇)
    基于CAN总线的汽车诊断协议UDS(ECU底层模块移植开发)
    浅谈jQuery,老司机带你jQuery入门到精通
  • 原文地址:https://www.cnblogs.com/protosec/p/11673357.html
Copyright © 2020-2023  润新知