音频变声实质上是通过调整 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 端音频变声方案相关推荐

  1. 如何在3分钟内实现音频变声和趣味音效?

    在泛娱乐社交和互动游戏场景中,用户已不再满足于高清的音质体验和实时的互动效果,他们还想要增加趣味性和沉浸感,让声音变得好玩有趣.拍乐云Pano上线了音频变声接口,开发者可以通过 Pano SDK 设置 ...

  2. Android端直播SDK实现方案

    概述 直播系统的架构总体上分为采集模块.预览模块.处理模块.编码模块.推流模块. 把这五个模块串联起来就构成了整个直播系统的数据流.如下图所示: 音频采集:采集原始的PCM数据. 音频处理:对音频进行 ...

  3. 怎样将音频变声?1分钟教你音频变声怎么弄!

    大家平常爱不爱刷短视频呢?不知道你们看短视频的时候有没有注意到,一些视频的配音很是搞怪,常常让人捧腹大笑!那么这些声音是怎么制作出来的呢?其实大部分的搞怪配音,都是借助软件对音频进行变音来实现的~今天 ...

  4. 如何将音频变声?试试这几个方法吧

    昨天,我在构思视频素材的时候想到可以在其中添加一个鬼畜片段,以此来提升视频的丰富度和乐趣.那么如果要添加鬼畜片段的话,首先就需要我们将音频进行变声操作,不过由于不知道怎么进行音频变声,于是我就上网搜索 ...

  5. 这三个音频变声编辑软件教你怎么给音频变声

    现如今随着我们生活的节奏越来越快,大家都爱上了短视频,每天也都有大量的短视频被创作出来.在这样的背景下,不知道有没有小伙伴也充满创意的想去尝试,但是却因为不知道怎么调整音频变声而阻挡了创作的步伐呢?其 ...

  6. 怎样将音频变声?三分钟教会你

    音频变声是一种常见的音频处理方式,可以对人声或音乐进行特殊处理,使其声音产生不同的效果.它的应用广泛,像是音乐制作人可能需要使用音频变声来改变歌手的声音,使其更加独特或与歌曲的风格相匹配.例如,将男歌 ...

  7. 音频变声的软件叫什么?这些软件值得收藏

    在今天这个数字时代,随着人们对于娱乐消费需求的不断增长,很多人开始涉足各种新领域,比如语音包.游戏配音.BGM制作等等.这些领域的共同点是需要一定的音频素材,同时也需要创意性地处理这些素材.这时,音频 ...

  8. ffmpeg 音频 变声

    记录一次ffmpeg编码变声的根本原因: 音频源采样率和ffmpeg编码时的采样率不同,音频源在采集是采样率为48000,而编码时用44100,所以播放出来的声音显得宽厚.是真.

  9. android录音函数,Android - 实现录音变声播放

    变声功能大家都接触过,比如qq中发送一段变声消息,网络视频中演员经过处理的声音.其实这个功能实现起来并不复杂,因为声音处理的算法有大神已经帮我们写好,拿来用就行. 代码是用c写的,我们来稍微处理一下 ...

  10. FFmpeg进阶: 音频变声滤镜

    声音最重要的两个元素就是语速和语调,改变声音的辨识度主要也是从这两方面入手.我们可以通过对音频数据进行插值或者抽值修改,以达到降低语速和增加语速的目的.同时我们也可以通过对数据进行线性拉伸来调节音调. ...

最新文章

  1. mongodb的监控与性能优化
  2. Beyond Compare进行内容替换的方法有哪些
  3. 怎么写CORTEX在windows用arm-none-eabi-gcc编译时的makefile
  4. c 如何加函数锁linux,Linux下C语言中fcntl函数用法说明
  5. 每天一个linux命令(55)--at命令
  6. linux怎么编译python_linux 编译安装python3
  7. java学生管理系统项目实训报告
  8. Tomcat8下载及安装配置教程(官网)
  9. 华中科技大计算机第八次基础作业,华中科技大计算机基础第三次作业.doc
  10. 使程序在后台运行,后台进程实现原理
  11. 多维度对抗 Windows AppLocker
  12. 【论文阅读】 BPR: Bayesian Personalized Ranking from Implicit Feedback
  13. 2019年计算机专业录取分数线排名,2019中国高校录取分数线排名 全国大学录取分数线表...
  14. float单精度浮点和double双精度浮点
  15. 台湾大学神经网络架构设计
  16. c语言大小箱子,基于C语言箱子游戏.doc
  17. 美团登录获取cookie
  18. 人教版四年级上次计算机教案,新人教版四年级上册数学教案
  19. cad导出pdf_如何将CAD图纸由DWG格式转换成PDF格式?_moinly
  20. 短信验证码获取步骤详情!

热门文章

  1. python判断英文字母_python判断字符串中是否含有英文 | 张先生博客
  2. 两台计算机上用网线共享打印机共享,怎么将打印机共享两台计算机用一根网线,其中一台有打...
  3. 2020寒假牛客第一场——G eli和字符串
  4. ie上直接打开服务器word文档,win7 ie11直接打开word
  5. 安科瑞无线测温方案part1
  6. python添加模块搜索路径和包的导入_python添加模块搜索路径和包的导入方法
  7. 前端 关于汇率的计算
  8. 金蝶软件各版本安装包下载地址(即时更新)
  9. html 插入虾米音乐,虾米音乐导入导出方法
  10. 如何修改PDF,怎么给PDF加页码