微信发送自定义语音

本文介绍了如何通过Xposed框架解决微信发送自定义语音的难题,包括收集语音素材、音频变声、格式转换、调用微信代码及插件热修复逻辑等步骤。作者分享了在音频格式转换中对音频参数的理解,以及利用ffmpeg进行格式转换的经验。
摘要由CSDN通过智能技术生成

git地址

应用下载地址

应用展示

在这里插入图片描述

前景

曾经一直想做一款关于微信的软件,目标就是网上收集很多调皮捣蛋的语音或者录音变声,然后发送给某个微信好友,感觉很有意思

开发遇到的难题

  1. 收集很多好玩的语音素材
  2. 录制的音频如何变声
  3. 音频格式转换,微信只支持发送amr格式的音频文件
  4. 如何才能调用微信的发送音频代码
  5. 微信版本升级,如何做到我的软件热更新

这些是我前前后后遇到的所有问题,有很多问题都困扰了我很长时间,在我我不断努力坚持下克服种种困难,终于大功告成了!

收集语音素材问题解决

一开始这个问题我很头疼,去哪里找骚里骚气的语音呢?这个问题一度困扰我,一个软件数据才是重要支撑啊,突然有一天刷抖音发现了一个好玩的应用很皮语音包,这款APP提供了很多好玩的素材,大家可以下载看一看玩一玩在这里插入图片描述
下载应用瞧了瞧,抓包了下妈了个B,抓不到,应该是app启用了SSL Pinning(又叫“ssl证书绑定“)
使用Xposed+JustTrustMe来突破这个问题使用方式可以抓到包了哦在这里插入图片描述但是发现数据是加密的,那就需要知道加密算法了,通过ApkTool反编译很皮语音在这里插入图片描述
我的天加固了…,好吧,看来还得脱壳,脱壳方案脱壳方案,脱壳完了终于可以分析了,分析过程就是耐心的过程,为了保护很皮语音加密算法就不公开了,嘿嘿,有素材了,编写个爬虫把数据,保存在数据库中,到这里素材问题解决了
在这里插入图片描述
哈哈,好开心,10几W条语音素材了!!!

录制音频如何变声

接下来就是变声功能的开发,QQ很早就出现了变声的功能,但是微信却迟迟不出此功能,我也不知道为啥!!!他不出那我们自己加,首先如何录音呢?作为一个资深andorid开发工程师,这个问题我不解释,录完音如何变声呢?这是个难点,首先我找打了库SoundTouch的变声库,集成了下和查询了资料,发现这个可以变声的很少不好,接下来有找到了另外一个库fmod尝试的集成了下不错,但是我对音律一窍不通的我,也不知道变声对应调整的参数,没办法只要去抄袭变音魔术师,好开心,得到了很多变音的语音素材,并且成功输出了wav的音频文件在这里插入图片描述

音频格式转换amr问题(ffmpeg&amr)

音频方面的知识点

这里当时一直不了解如何转换的格式,最后去学习了解了下关于音频的知识,相关知识大家可以自行百度,我这里就总结下我所了解到的

音频文件的组成

我的理解就是,每个音频文件会有一个类似存放音频信息的区域,里面会存放对应音频的编码格式,时间长短,采样率丶声道数丶作者信息等,后面存放的就是经过编码的音频数据数据,有了这个原理,这也就我们能理解到播放器是如何正确的播放不同格式的音频了吧!年轻时候的我还一直天真的以为是通过后缀名呢…现在想想就可笑

PCM&WAV的关系

什么是PCM数据呢?我的理解就是没有经过编码的数据,单单就是录制出来的数据,没有通过压缩的数据,这就是传说中的高质量音频,哪pcm和wav又有什么关系呢?其实PCM+WAV的文件头=WAV格式的音频文件,wav格式音频文件是高品质的哦,相对的体积也很大哦

音频格式转换原理

有了上面的音频文件组成的原理,哪我们能不能做一下操作呢?

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值