Android 端音频变声方案
音频变声实质上是通过调整 PCM 数据的音调、节拍等属性,实现听感上的变化。如果是 mp3、aac 等压缩音频,则需提前解码成 PCM 数据,Android 端可以通过 MediaExtractor 及 MediaCodec 解码得到 PCM,但调整音调、节拍仅靠 Android api 就无能为力了,只能集成第三方库来实现,常见的音频处理库有 Fmod 、 SoundTouch 。
Fmod
Fmod 是一个跨平台的音频处理引擎,官网提供了各个平台的 接入文档,可以实现变调、变速变声效果以及混响、颤音等高级效果。开发调用简单,sdk 对外提供了播放器接口,传入音频文件即可直接变声播放。但不支持保存处理后的音频到文件,商业用途需要购买许可证。
如果你不需要保存处理后的音频到文件,那就使用 Fmod 吧,你会发现音频变声是如此简单,而且还支持混响、颤音等高级变声效果!
如果需要保存处理后的音频到文件,那么…我就请你再认真的思考一下,你的需求真的必须要保存处理后的音频吗?假设一个聊天 app 要实现语音消息变声,那这段语音只会在你的应用中播放,那就都可以通过 Fmod 播放器变声播放啊,要知道 Fmod 可是一个跨平台的音频引擎,不论是 Android、IOS 还是 Web 端,只要知道变声参数就可以变声播放了,不需要保存处理后的音频到文件。
能否跃过不支持保存处理后的音频到文件这一缺点,关键是要确定用户能否直接接触到处理后的音频文件,若能接触到,就无法使用 Fmod 了。
关于集成使用 Fmod 库十分简单,网上也有很多,就不再展开了。
SoundTouch
SoundTouch 是一个开源免费的音频处理库,可以改变音调、节拍和播放速率。开发调用时需自行将音频文件解码成 PCM 数据,传入 SoundTouch 处理后,SoundTouch 会输出处理后的 PCM 数据。基于这种使用方式,我们可以对其自由定制以适用于自己的应用。
比如你要实现一个 mp3 的变声播放,可以先用 MediaCodec 将 mp3 解码成 PCM,通过 SoundTouch 处理得到变声后的 PCM,再结合 AudioTrack 实现播放;如果你要将一个 mp3 变声后保存下来,那就在得到变声后的 PCM 后,结合 MediaCodec 将其编码保存下来。
相比 Fmod,SoundTouch 的集成会复杂点,不是随便参考一篇教程就可以跑通的了,这里提供一份亲测可行的 SoundTouch 源码。
关注公众号,Get 更多知识点
Android 端音频变声方案相关推荐
- 如何在3分钟内实现音频变声和趣味音效?
在泛娱乐社交和互动游戏场景中,用户已不再满足于高清的音质体验和实时的互动效果,他们还想要增加趣味性和沉浸感,让声音变得好玩有趣.拍乐云Pano上线了音频变声接口,开发者可以通过 Pano SDK 设置 ...
- Android端直播SDK实现方案
概述 直播系统的架构总体上分为采集模块.预览模块.处理模块.编码模块.推流模块. 把这五个模块串联起来就构成了整个直播系统的数据流.如下图所示: 音频采集:采集原始的PCM数据. 音频处理:对音频进行 ...
- 怎样将音频变声?1分钟教你音频变声怎么弄!
大家平常爱不爱刷短视频呢?不知道你们看短视频的时候有没有注意到,一些视频的配音很是搞怪,常常让人捧腹大笑!那么这些声音是怎么制作出来的呢?其实大部分的搞怪配音,都是借助软件对音频进行变音来实现的~今天 ...
- 如何将音频变声?试试这几个方法吧
昨天,我在构思视频素材的时候想到可以在其中添加一个鬼畜片段,以此来提升视频的丰富度和乐趣.那么如果要添加鬼畜片段的话,首先就需要我们将音频进行变声操作,不过由于不知道怎么进行音频变声,于是我就上网搜索 ...
- 这三个音频变声编辑软件教你怎么给音频变声
现如今随着我们生活的节奏越来越快,大家都爱上了短视频,每天也都有大量的短视频被创作出来.在这样的背景下,不知道有没有小伙伴也充满创意的想去尝试,但是却因为不知道怎么调整音频变声而阻挡了创作的步伐呢?其 ...
- 怎样将音频变声?三分钟教会你
音频变声是一种常见的音频处理方式,可以对人声或音乐进行特殊处理,使其声音产生不同的效果.它的应用广泛,像是音乐制作人可能需要使用音频变声来改变歌手的声音,使其更加独特或与歌曲的风格相匹配.例如,将男歌 ...
- 音频变声的软件叫什么?这些软件值得收藏
在今天这个数字时代,随着人们对于娱乐消费需求的不断增长,很多人开始涉足各种新领域,比如语音包.游戏配音.BGM制作等等.这些领域的共同点是需要一定的音频素材,同时也需要创意性地处理这些素材.这时,音频 ...
- ffmpeg 音频 变声
记录一次ffmpeg编码变声的根本原因: 音频源采样率和ffmpeg编码时的采样率不同,音频源在采集是采样率为48000,而编码时用44100,所以播放出来的声音显得宽厚.是真.
- android录音函数,Android - 实现录音变声播放
变声功能大家都接触过,比如qq中发送一段变声消息,网络视频中演员经过处理的声音.其实这个功能实现起来并不复杂,因为声音处理的算法有大神已经帮我们写好,拿来用就行. 代码是用c写的,我们来稍微处理一下 ...
- FFmpeg进阶: 音频变声滤镜
声音最重要的两个元素就是语速和语调,改变声音的辨识度主要也是从这两方面入手.我们可以通过对音频数据进行插值或者抽值修改,以达到降低语速和增加语速的目的.同时我们也可以通过对数据进行线性拉伸来调节音调. ...
最新文章
- mongodb的监控与性能优化
- Beyond Compare进行内容替换的方法有哪些
- 怎么写CORTEX在windows用arm-none-eabi-gcc编译时的makefile
- c 如何加函数锁linux,Linux下C语言中fcntl函数用法说明
- 每天一个linux命令(55)--at命令
- linux怎么编译python_linux 编译安装python3
- java学生管理系统项目实训报告
- Tomcat8下载及安装配置教程(官网)
- 华中科技大计算机第八次基础作业,华中科技大计算机基础第三次作业.doc
- 使程序在后台运行,后台进程实现原理
- 多维度对抗 Windows AppLocker
- 【论文阅读】 BPR: Bayesian Personalized Ranking from Implicit Feedback
- 2019年计算机专业录取分数线排名,2019中国高校录取分数线排名 全国大学录取分数线表...
- float单精度浮点和double双精度浮点
- 台湾大学神经网络架构设计
- c语言大小箱子,基于C语言箱子游戏.doc
- 美团登录获取cookie
- 人教版四年级上次计算机教案,新人教版四年级上册数学教案
- cad导出pdf_如何将CAD图纸由DWG格式转换成PDF格式?_moinly
- 短信验证码获取步骤详情!
热门文章
- python判断英文字母_python判断字符串中是否含有英文 | 张先生博客
- 两台计算机上用网线共享打印机共享,怎么将打印机共享两台计算机用一根网线,其中一台有打...
- 2020寒假牛客第一场——G 	eli和字符串
- ie上直接打开服务器word文档,win7 ie11直接打开word
- 安科瑞无线测温方案part1
- python添加模块搜索路径和包的导入_python添加模块搜索路径和包的导入方法
- 前端 关于汇率的计算
- 金蝶软件各版本安装包下载地址(即时更新)
- html 插入虾米音乐,虾米音乐导入导出方法
- 如何修改PDF,怎么给PDF加页码