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

摘要:
本文介绍了将微信语音短信amr后缀文件转换为WAV文件的方法。如果删除此字节,可以使用SILK编码库中的示例程序对其进行解码。编译Windows版本后,您可以直接将SILKV3编码转换为WAV格式,并支持原始版本的微信语音短信amr文件。

 微信语音短消息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

长按进行关注。





免责声明:文章转载自《微信语音短消息amr文件转WAV》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Liferay7 BPM门户开发之1:Liferay7开发环境准备Django—中间件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Android: NDK编程入门笔记

原文地址:http://www.cnblogs.com/hibraincol/archive/2011/05/30/2063847.html 为何要用到NDK? 概括来说主要分为以下几种情况: 1. 代码的保护,由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大。 2. 在NDK中调用第三方C/C++库,因为大部分的开源库都是用C/C+...

svn常见问题汇总

[整理]svn常见问题汇总   1、’.’ is not a working copy.Can’t open file‘.svn/entries’: 系统找不到指定的路径。 解答:原因是输入的访问路径不正确,如svn://192.168.6.200/如果最后少写了“/”,就会出现这种错误提示。2、将文件checkout之后,没有出现SVN的图标,是怎么...

linux/mac系统的软链接文件与硬链接文件

1、硬连接只能使用在文件上,不可以使用在文件夹上。至于文件前面的硬链接数字的含义如下: 如图标注区,为硬连接的数量,文件前的数字1表示没有硬链接。文件夹前面的数字至少是2,含义是这个文件夹是空文件夹,当数字大于2时,比如为n>2,则表示这个文件夹下面有个n-2个子文件和文件夹的和;因此从文件夹前面的这个数字可以知道文件夹下面到底有多少文件和文件夹(一...

KVM基本功能管理

 一、KVM基础功能管理 1、查看命令帮助 virsh -h 2、查看 KVM 的配置文件存放目录(CENTOS7.0.xml是虚拟系统实例的配置文件) ls /etc/libvirt/qemu                 //属性配置文件路径 ls /virtual/KVM/                     //虚拟机磁盘镜像文件路径 3、查...

ArcGIS之去除要素的Z值和M值

近期用python连接ArcGIS时,需要通过readshapefile函数读取shp文件,读取过程中经常出现 报错为 “ readshapefile can only handle 2D shape types ” 原因时shp文件在创建时包含了Z坐标及M坐标,如下图所示 于此,需要先将图层中的shape类型更改为平面; 方法为 打开toolbox的数...

oracle学习第一天【简单操作】

1,连接数据库 C:\Documents and Settings\Administrator>sqlplus /nolog SQL*Plus: Release 10.1.0.2.0 - Production on 星期六 5月 14 11:14 Copyright (c) 1982, 2004, Oracle.  All rights reserve...