实时音视频
  • iOS : Objective-C
  • Android
  • 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 接口销毁实例之前,再次创建将返回 nil。

    // 创建 AI 变声引擎实例
    self.aiVoiceChanger = [[ZegoExpressEngine sharedEngine] createAIVoiceChanger];
  2. 调用 ZegoAIVoiceChanger.setEventHandler 接口,设置 AI 变声引擎事件回调。

    // 设置 AI 变声引擎事件回调
    [self.aiVoiceChanger setEventHandler:self];
  3. 调用 ZegoAIVoiceChanger.initEngine 接口,初始化 AI 变声引擎实例。

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

    // 初始化 AI 变声引擎
    [self.aiVoiceChanger initEngine];

4 更新 AI 变声引擎模型

调用 ZegoAIVoiceChanger.update 接口,更新 AI 变声引擎模型。AI 变声引擎模型文件较大,首次更新时耗时会比较长,请您耐心等待。

// 更新 AI 变声引擎模型
[self.aiVoiceChanger update];

5 获取音色列表

调用 ZegoAIVoiceChanger.getSpeakerList 接口,获取可用音色列表。

可用音色列表将通过 ZegoAIVoiceChangerEventHandler.onGetSpeakerList 回调接口返回。

// 获取可用音色列表
[self.aiVoiceChanger getSpeakerList];

6 设置目标音色

调用 ZegoAIVoiceChanger.setSpeaker 接口,设置音色,音色的选择可以通过 5 获取音色列表 获取。

设置音色 ID 为 0 时,表示使用原声。

// 设置音色
int speakerID = 0; // 音色 ID
[self.aiVoiceChanger setSpeaker:speakerID];

7 销毁 AI 变声引擎实例

功能使用结束后,调用 destroyAIVoiceChanger 接口,销毁 AI 变声引擎实例,释放麦克风等资源。

// 销毁 AI 变声引擎实例
[[ZegoExpressEngine sharedEngine] destroyAIVoiceChanger:self.aiVoiceChanger];

常见问题

  1. 在编译工程时,如果出现类似 “Undefined symbol” 的错误,该如何处理?

    Undefined symbol:
    _$s10ObjectiveC8ObjCBoolVMn

    出现如上报错时,您可以通过在您的项目工程目录中,添加一个空白的以 .swift 结尾的文件,重新编译即可。

本篇目录