如何解析微信的语音文件

news/2025/1/16 2:02:37/

前几天想把微信里的语音文件导出来,就研究了一下,是个麻烦事儿: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.wav2.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
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


http://www.ppmy.cn/news/468034.html

相关文章

如何导出你的微信语音

苏生不惑第145 篇原创文章,将本公众号设为星标,第一时间看最新文章。 关于微信之前写过以下文章,有兴趣可以点击查看: 那些你可能不知道的微信奇技淫巧 那些你可能不知道的网络冷知识奇技淫巧 一个骚操作,公众号粉丝破…

微信发送语音功能测试用例

功能测试 不说话的时候发送语音, 是否会有相关的信息提示说话分贝很轻很轻, 是否可以录入语言普通的语音信息是否可以正常发送语音录制的时候是否有时间限制(最短限制 / 最长限制)录制时间不足最短时长限制会发送失败超出了最长时间限制时, 语音自动保存并发送语音识别 是否可…

CAN Frame详解

CAN Frame是CAN总线通信的基本单位,它有多种类型,其中最常见的是数据帧(Data Frame),用于传输数据。数据帧有标准格式(Standard Format)和扩展格式(Extended Format)&…

shell内置命令

目录 内置命令介绍内置命令列表alisa内置命令alias别名定义语法unalias 别名删除语法alias演示 echo内置命令echo命令介绍echo输出语法echo输出转义字符 read内置命令介绍语法options支持的参数示例1:多个变量赋值 exit内置命令介绍语法示例:Shell脚本文…

利用zOffice SDK实现合同续签系统

经过用户调研和实际考察发现。商务、政务和个人的真实使用场景中,很多用户会有通过“用户数据”“固定模板”生成“批量合同(文件)”的需求,并且存在着使用痛点。在在线办公不断发展的今天,我们需要一个在线编辑的工具…

generator和promise和async的异同

一、generator(生成器)是ES6标准引入的新数据类型,他和promise一样都是异步事件的解决方案 //generator函数生成斐波那契// generator(生成器)是ES6标准引入的新数据类型,async就是 Generator 函数的语法糖//本质:用来处理异步事件的对象/包含异步操作的容器functio…

这些常见的测试误解你都知道吗?看看测试专家如何解释

软件测试在保证软件系统的质量和可靠性方面起着至关重要的作用。然而,围绕软件开发过程的这一重要方面存在许多误解。这些误解会导致错误的期望,并最终阻碍测试工作的有效性。解释这些误解并获得对软件测试的现实理解以最大限度地发挥其优势并取得成功是…

Docker部署(4)——运行时日志时间不对(时区设置)

当使用docker run 命令时,发现容器虽然成功运行,但是输出的时间却不对 。使用timedatectl命令后发现Linux系统的时间是正常的时间。 于是将问题缩小到是不是docker 在运行时没有使用宿主机的时区的原因,那么解决办法可以将宿主机的时区映射到…