实时音视频
  • iOS
  • Android : Java
  • macOS
  • Windows
  • HarmonyOS
  • Linux
  • Web
  • 小程序
  • Flutter
  • Electron
  • Unreal Engine
  • Unity3D
  • uni-app
  • React Native
  • Cocos Creator
  • 产品简介
  • 下载
  • 体验 App
  • 快速开始
    • 跑通示例源码
    • 集成 SDK
    • 实现视频通话
    • 场景化音视频配置
  • 通信能力
  • 房间能力
  • 音频能力
  • 视频能力
  • 直播能力
  • 其他能力
  • 最佳实践
  • 客户端 API
  • 服务端 API
  • 常见错误码
  • 常见问题
  • 文档中心
  • 实时音视频
  • 音频能力
  • AI 变声

AI 变声

更新时间:2024-01-02 18:48

功能简介

实时通话中的“柯南变声领结”,完美重现目标角色的音色与韵律,同时保留用户的语速、情感、语调,随心所欲切换音色,超低延迟让用户自在畅享社交语聊、直播、游戏语音等场景。

  • “AI 变声”功能为付费功能,如需申请体验或咨询正式收费标准,请联系 ZEGO 商务人员。
  • 该功能从 3.10.0 版本开始支持,当前官网 SDK 不包含此功能,如有需要,请联系 ZEGO 技术支持特殊编包。
  • 目前,该功能暂不支持和 “自定义音频处理” 同时使用。

功能优势

  • 超高音质,超低延迟。
  • 灵动真实,完美重现目标角色的音色与韵律,同时保留用户的语速、情感、语调。
  • 海量音色灵活选择,支持音色定制。

效果演示

原始声音 目标音色 AI 变声后
青年男性
成年男性
青年女性
成年女性

适用场景

该功能可用于以下实时场景中,实现用户的音色变换。

  • 社交语聊
  • 游戏语音
  • 音视频直播
  • 虚拟人

前提条件

在实现 AI 变声功能之前,请确保:

使用步骤

开发者可以按照以下步骤完成 AI 变声的相关设置:

1 开启权限

请确认您已联系 ZEGO 技术支持进行特殊编包,并开启了 AI 变声权限。

2 初始化和登录房间

初始化和登录房间的具体流程,请参考实现视频通话文档中的 “3.1 创建引擎” 及 “3.2 登录房间”。

3 初始化 AI 变声引擎实例

  1. 调用 createAIVoiceChanger 接口,创建 AI 变声引擎实例。

    当前只支持同时创建一个实例,调用 destroyAIVoiceChanger 接口销毁实例之前,再次创建将返回 null。

    // 创建 AI 变声引擎实例
    aiVoiceChanger = ZegoExpressEngine.getEngine().createAIVoiceChanger();
  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. 调用 ZegoAIVoiceChanger.initEngine 接口,初始化 AI 变声引擎实例。

    ZegoAIVoiceChanger.initEngine 接口需要在 startPublishingStream 接口之前调用才有效。

    // 初始化 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);

常见问题

  1. 在构建 apk 包时,如果出现如下报错信息,该如何处理?

    java.lang.NoClassDefFoundError: Failed resolution of: Lkotlin/jvm/internal/Intrinsics;

    出现如上报错时,是由于缺少 kotlin-stdlib 所致,您可以在 build.gradle 文件中,添加如下依赖,再重新构建 apk 即可。

    dependencies {
        implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.30'
    }
本篇目录