大饼 AI 变声简介
大饼 AI 变声是市面上一款非常优秀的变声产品,是实时通话中的“柯南变声领结”,完美重现目标角色的音色与韵律,一键变声明星、游戏角色,同时保留用户的语速、情感、语调,随心所欲切换音色,超低延迟实时变声,让社交语聊、游戏开黑、直播、游戏语音更生动有趣。
2023年,我们 ZEGO 云市场也与大饼 AI 变声实现了合作,可在控制台直接接入了大饼 AI 变声 SDK,助力开发者快速实现变声的相关功能。
ZEGO 云市场,实时互动开发者一站式服务平台,携手优质伙伴,提供选型、比价、集成接入、售后、计费等一站式解决方案,帮助您快速、便捷构建应用。
实现 AI 变声
本文介绍如何通过 ZEGO Express SDK,实现 AI 变声功能,以 Android 为例(支持iOS、Windows和Flutter等平台)。
前提条件
在实现 AI 变声功能之前,请确保:
1. 已在 ZEGO 控制台 创建项目,并申请有效的 AppID 和 AppSign,详情请参考 控制台 – 项目信息。
2. 在开始集成 ZEGO Express SDK 前,请确保开发环境满足以下要求:
- Android Studio 2020.3.1 或以上版本。
- Android SDK 25、Android SDK Build-Tools 25.0.2、Android SDK Platform-Tools 25.x.x 或以上版本。
- Android 4.4 或以上版本,且支持音视频的 Android 真机设备。
- Android 设备已经连接到 Internet。
集成 SDK
注:联系 ZEGO 商务人员,获取最新的 大饼 AI 变声
SDK 包,集成 SDK 到您的项目。
1. (可选)新建项目
2. 导入 SDK
目前支持的平台架构包括:armeabi-v7a、arm64-v8a、x86、x86_64。
- 复制 SDK AAR 文件手动集成(推荐),将解压后的 AAR 文件中的 “release/Library/ZegoExpressEngine.aar” 文件拷贝至您的项目目录下,如 “app/libs”。
- 进入项目根目录,打开 “settings.gradle” 文件,在 “dependencyResolutionManagement” 中加入如下代码。
...
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
flatDir {
dir 'app/libs'
}
}
}
如果您在 “settings.gradle” 中找不到上述字段,可能是因为您的 Android Gradle Plugin 版本低于 v7.1.0,相关信息请参考 Android Gradle Plugin Release Note v7.1.0。此时请按照如下方式操作:
进入项目根目录,打开 “build.gradle” 文件,在 “allprojects” 中加入如下代码。
...
allprojects {
repositories {
google()
mavenCentral()
flatDir {
dir 'app/libs'
}
}
}
- 进入 “app” 目录,打开 “build.gradle” 文件,在 “dependencies” 中添加
implementation(name: 'ZegoExpressEngine', ext: 'aar')
。
...
dependencies {
...
implementation(name: 'ZegoExpressEngine', ext: 'aar')
}
并在 “defaultConfig” 节点添加 “ndk” 节点,指定支持的架构。
ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
}
3. 设置权限
根据实际应用需要,设置应用所需权限。
进入 “app/src/main” 目录,打开 “AndroidManifest.xml” 文件,添加权限。
<!-- SDK 必须使用的权限 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<!-- App 需要使用的部分权限 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
4. 防止混淆代码
在 “proguard-rules.pro” 文件中,为 SDK 添加 -keep
类的配置,防止混淆 SDK 公共类名称。
-keep class **.zego.**{*;}
使用步骤
开发者可以按照以下步骤完成 AI 变声的相关设置:
1 开启权限
请参考 控制台 – 云市场 – 大饼 AI 变声,按照页面指引,自助开通 大饼 AI 变声
相关权限;并在自己的项目中集成 大饼 AI 变声
的 SDK 包。
2 初始化和登录房间
初始化和登录房间的具体流程,请参考实现视频通话文档中的 “3.1 创建引擎” 及 “3.2 登录房间”。
3 初始化 AI 变声引擎实例
3.1 调用 createAIVoiceChanger 接口,创建 AI 变声引擎实例。
当前只支持同时创建一个实例,调用 destroyAIVoiceChanger 接口销毁实例之前,再次创建将返回 null。
// 创建 AI 变声引擎实例
aiVoiceChanger = ZegoExpressEngine.getEngine().createAIVoiceChanger();
3.2 调用 ZegoAIVoiceChanger.setEventHandler 接口,设置 AI 变声引擎事件回调。
// 设置 AI 变声引擎事件回调
aiVoiceChanger.setEventHandler(new IZegoAIVoiceChangerEventHandler() {
@Override
public void onInit(ZegoAIVoiceChanger aiVoiceChanger, int errorCode) {
super.onInit(aiVoiceChanger, errorCode);
}
@Override
public void onUpdate(ZegoAIVoiceChanger aiVoiceChanger, int errorCode) {
super.onUpdate(aiVoiceChanger, errorCode);
}
@Override
public void onGetSpeakerList(ZegoAIVoiceChanger aiVoiceChanger, int errorCode, ArrayList<ZegoAIVoiceChangerSpeakerInfo> speakerList) {
super.onGetSpeakerList(aiVoiceChanger, errorCode, speakerList);
}
});
3.3 调用 ZegoAIVoiceChanger.initEngine 接口,初始化 AI 变声引擎实例。
// 初始化 AI 变声引擎
aiVoiceChanger.initEngine();
4 更新 AI 变声引擎模型
调用 ZegoAIVoiceChanger.update 接口,更新 AI 变声引擎模型。AI 变声引擎模型文件较大,首次更新时耗时会比较长,请您耐心等待。
// 更新 AI 变声引擎模型
aiVoiceChanger.update();
5 获取音色列表
调用 ZegoAIVoiceChanger.getSpeakerList
接口,获取可用音色列表。
可用音色列表将通过 IZegoAIVoiceChangerEventHandler.onGetSpeakerList 回调接口返回。
// 获取可用音色列表
aiVoiceChanger.getSpeakerList();
6 设置目标音色
调用 ZegoAIVoiceChanger.setSpeaker
接口,设置音色,音色的选择可以通过 “5 获取音色列表” 获取。
设置音色 ID 为 0 时,表示使用原声。
// 设置音色
int speakerID = 0; // 音色 ID
aiVoiceChanger.setSpeaker(speakerID);
7 销毁 AI 变声引擎实例
功能使用结束后,调用 destroyAIVoiceChanger
接口,销毁 AI 变声引擎实例,释放麦克风等资源。
// 销毁 AI 变声引擎实例
ZegoExpressEngine.getEngine().destroyAIVoiceChanger(aiVoiceChanger);
通过以上步骤即可实现 AI 变声功能,欢迎大家试用,了解更多信息可访问大饼 AI 变声产品简介。
本文为原创稿件,版权归作者所有,如需转载,请注明出处:https://www.nxrte.com/jishu/yinshipin/41604.html