大饼 AI 变声怎么样?如何集成大饼 SDK 实现 AI 变声

大饼 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”。
大饼 AI 变声怎么样?如何集成大饼 SDK 实现 AI 变声
  • 进入项目根目录,打开 “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” 节点,指定支持的架构。

大饼 AI 变声怎么样?如何集成大饼 SDK 实现 AI 变声
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

(1)

相关推荐

发表回复

登录后才能评论