FFmpeg开发笔记(八十)使用百变魔音AiSound实现变声特效
《FFmpeg开发实战:从零基础到短视频上线》一书的“第5章 FFmpeg处理音频”介绍了如何使用FFmpeg处理和转换音频,“第 12 章 FFmpeg的移动开发”介绍了如何使用FFmpeg在手机上剪辑视频,二者结合起来即可开发音频剪辑App。那么在Android系统上还有一款国产的开源音频特效框架AiSound,通过该框架可以更快地开发变声App,下面就来介绍如何在App工程中使用AiSound。
AiSound名叫AI魔法声音,也叫百变魔音,它是一个运行于Android系统的结合AI技术的变声器SDK。AiSound基于开源框架fmod实现,通过fmod处理音频的变声播放效果,还支持试听和保存变声后的音效文件。其中fmod是一款游戏音频引擎,它的最新版本为1.10.15,下载页面为https://fmod.com/download。
AiSound的源码托管地址为https://github.com/microshow/AiSound,最新版本是2020年8月发布的AiSound 1.0(星星数0.4k),可见该框架的源码更新十分及时。并且AiSound的源码采用Java+XML编写,对于初学者而言非常友好,使用Android Studio Dolphin(小海豚版本)无需任何改动即可直接导入AiSound的demo工程。
在自己的App工程中集成AiSound也很简单,只要执行下列几个步骤就行。
一、导入AiSound库
如果已经事先导入AiSound的库工程,则只需在build.gradle中添加下面一行即可引入AiSound:
implementation project(':aisound')
如果不用库工程,也只要在build.gradle中添加下面一行即可引入AiSound(未验证):
implementation 'com.github.microshow:AiSound:1.0.0-beta'
二、执行变声操作
在App工程中可通过以下代码初始化变声器AiSound:
AiSound.init(this); //初始化AiSound
初始化之后,再通过以下代码对指定路径的音频文件执行指定类型的变声播放操作:
AiSound.playSoundAsync(path, type);
开始变声播放之后,可通过以下代码暂停AiSound的变声播放操作:
AiSound.pauseSound(); // 暂停播放
暂停变声播放之后,可通过以下代码恢复AiSound的变声播放操作:
AiSound.resumeSound(); // 恢复播放
退出变声播放页面或者提前结束变声播放,都要通过以下代码关闭AiSound的变声播放操作:
AiSound.close(); // 释放播放资源
由此可见,AiSound用起来很简单,只要寥寥几行代码就能在自己的App工程中快速添加变声播放功能。
按照上述几个步骤给App工程集成AiSound后,编译运行AiSound的demo工程,打开测试App如下图所示。

可见AiSound支持的变声特效包括萝莉、大叔、惊悚、搞怪、空灵等等,是个不错的国产音效处理SDK。
更多详细的FFmpeg开发知识参见《FFmpeg开发实战:从零基础到短视频上线》一书。
FFmpeg开发笔记(八十)使用百变魔音AiSound实现变声特效的更多相关文章
- FFmpeg开发笔记(十):ffmpeg在ubuntu上的交叉编译移植到海思HI35xx平台
FFmpeg和SDL开发专栏(点击传送门) 上一篇:<FFmpeg开发笔记(九):ffmpeg解码rtsp流并使用SDL同步播放>下一篇:敬请期待 前言 将ffmpeg移植到海思H ...
- Hi3516开发笔记(十):Qt从VPSS中获取通道图像数据存储为jpg文件
前言 上一篇已经将himpp套入qt的基础上进行开发.那么qt中拿到frame则是很关键的交互,这是qt与海思可能编解码交叉开发的关键步骤. 受限制 因为直接配置sample的vi比较麻烦 ...
- FFmpeg开发笔记(四):ffmpeg解码的基本流程详解
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...
- FFmpeg开发笔记(五):ffmpeg解码的基本流程详解(ffmpeg3新解码api)
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...
- FFmpeg开发笔记(九):ffmpeg解码rtsp流并使用SDL同步播放
前言 ffmpeg播放rtsp网络流和摄像头流. Demo 使用ffmpeg播放局域网rtsp1080p海康摄像头:延迟0.2s,存在马赛克 使用ffmpeg播放网络rtsp文件流 ...
- FFmpeg开发笔记(三):ffmpeg介绍、windows编译以及开发环境搭建
前言 本篇章是对之前windows环境的补充,之前windows的是无需进行编译的,此篇使用源码进行编译,版本就使用3.4.8. FFmpeg简介 FFmpeg是领先的多媒体框架,能够解码 ...
- 树莓派开发笔记(十二):入手研华ADVANTECH工控树莓派UNO-220套件(一):介绍和运行系统
前言 树莓派也可以做商业应用,工业控制,其稳定性和可靠性已经得到了验证,故而工业控制,一些停车场等场景也有采用树莓派作为主控的,本片介绍了研华ADVANTECH的树莓派套件组UNO-220-P4N ...
- 树莓派开发笔记(十四):入手研华ADVANTECH工控树莓派UNO-220套件(三):使用研发自带系统测试rtc、gpio、232和485套件接口
前言 上一篇说明了必须要使用研华自带的8G卡的系统,通过沟通拿到了相关的系统,购买的时候会带8GB的卡,请自行备份一份镜像.本篇对uno-220套件的相关研华配套的额外接口做测试,篇幅较长,重点讲 ...
- FFmpeg开发笔记(一)搭建Linux系统的开发环境
对于初学者来说,如何搭建FFmpeg的开发环境是个不小的拦路虎,因为FFmpeg用到了许多第三方开发包,所以要先编译这些第三方源码,之后才能给FFmpeg集成编译好的第三方库.不过考虑到刚开始仅仅调用 ...
- 安卓开发笔记(十八):实现button按钮事件的三种方法
Android开发中有三种主要的方式用于设置View的点击事件,1.创建内部类:2.主类中实现OnClickListener接口:3.使用匿名内部类.这三种方式都用到了OnClickListener接 ...
随机推荐
- [2025五一lyyz集训] 数论+练习赛
一如既往地在 \(lyyz\) 集训. 5.1 今天是练习赛,但感觉今天不适合打比赛,交几道挂几道,被教练一顿凶. 练习赛结果:\(100+26+62+22\) 其中有道 \(DP\) 不错: C密码 ...
- netcore微服务Polly 实现熔断与降级机制
Polly的基本使用 Polly是一种.NET弹性和瞬态故障处理库,允许我们以非常顺畅和线程安全的方式来执诸如行重试,断路,超时,故障恢复等策略. Polly针对对.NET 4.0,.NET 4.5和 ...
- 乌班图20.04上安装java配置tomcat9
原文参考:https://blog.csdn.net/u010763324/article/details/122678528 Apache Tomcat是一个开源的 Web 服务器和 Java se ...
- Mac Adobe Photoshop 2025 安装与激活保姆级教程
为什么选择Photoshop? 作为全球顶尖的图像处理软件,Adobe Photoshop凭借其强大的功能和生态兼容性,成为设计师.摄影师.创意工作者的必备工具.本文以最新版Photoshop 202 ...
- 【鸿蒙生态学堂04】ArkUI开发基础(上)
课程介绍 本课程将介绍HarmonyOS的ArkUI框架,包括其基础语法和如何使用常用组件构建页面.ArkUI是HarmonyOS应用的UI开发框架,提供简洁的UI语法.丰富的组件和实时界面预览工具. ...
- 获取Harbor镜像仓库指定Project的容量使用并进行企业微信告警
简单说明 在镜像仓库的维护中,有时我们需要根据镜像仓库的使用情况进行及时的告警和扩容,避免镜像仓库容量满载时再进行扩容,这样会造成业务的阻塞. 这里我们使用Python简单写一个实现获取镜像仓库指定项 ...
- 阿里微服务解决方案-Alibaba Cloud之集成Nacos(服务注册与发现)(三)
一.集成 Nacos(服务注册与发现) 1.1 下载 Nacos Nacos下载地址 1.2 下载后解压到本地 1.3 启动 Nacos 启动成功界面 输入 http://127.0.0.1:8848 ...
- 重磅消息 | 2025年最新AI+全栈测试开发技能实战指南(第6期)
深度好文,篇幅较长,请耐心看完! 大家好,期盼已久的<全栈测试开发实战训练营>第6期,震撼回归! 1.行业分析 今年是全栈测试开发训练营第6期,本期训练营,首次推出了AI+的模式,所谓的A ...
- Elastic学习之旅 (11) .NET 6应用集成ES - 上
大家好,我是Edison. 上一篇:Logstash数据采集 写在开头 有了前面10篇的基础,我们大概清楚了ES的基本概念和使用(主要是查询),这也是我们作为Developer应该了解的范畴,而至于更 ...
- 字节开源的AI Coding Agent —— Trae Agent深入浅出
1. 项目概述 从Cursor到Trae,从claude code到gemini cli,AI Coding都是火热的战场,现在字节开源了新的trae-agent(https://github.com ...