实时通话中的“柯南变声领结”,完美重现目标角色的音色与韵律,同时保留用户的语速、情感、语调,随心所欲切换音色,超低延迟让用户自在畅享社交语聊、直播、游戏语音等场景。
原始声音 | 目标音色 | AI 变声后 | |
---|---|---|---|
青年男性 |
|||
成年男性 |
|||
青年女性 |
|||
成年女性 |
该功能可用于以下实时场景中,实现用户的音色变换。
在实现 AI 变声功能之前,请确保:
开发者可以按照以下步骤完成 AI 变声的相关设置:
请确认您已联系 ZEGO 技术支持进行特殊编包,并开启了 AI 变声权限。
初始化和登录房间的具体流程,请参考实现视频通话文档中的 “3.1 创建引擎” 及 “3.2 登录房间”。
调用 createAIVoiceChanger 接口,创建 AI 变声引擎实例。
当前只支持同时创建一个实例,调用 destroyAIVoiceChanger 接口销毁实例之前,再次创建将返回 null。
// 创建 AI 变声引擎实例
aiVoiceChanger = ZegoExpressEngine.getEngine().createAIVoiceChanger();
调用 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);
}
});
调用 ZegoAIVoiceChanger.initEngine 接口,初始化 AI 变声引擎实例。
ZegoAIVoiceChanger.initEngine 接口需要在 startPublishingStream 接口之前调用才有效。
// 初始化 AI 变声引擎
aiVoiceChanger.initEngine();
调用 ZegoAIVoiceChanger.update 接口,更新 AI 变声引擎模型。AI 变声引擎模型文件较大,首次更新时耗时会比较长,请您耐心等待。
// 更新 AI 变声引擎模型
aiVoiceChanger.update();
调用 ZegoAIVoiceChanger.getSpeakerList 接口,获取可用音色列表。
可用音色列表将通过 IZegoAIVoiceChangerEventHandler.onGetSpeakerList 回调接口返回。
// 获取可用音色列表
aiVoiceChanger.getSpeakerList();
调用 ZegoAIVoiceChanger.setSpeaker 接口,设置音色,音色的选择可以通过 5 获取音色列表 获取。
设置音色 ID 为 0 时,表示使用原声。
// 设置音色
int speakerID = 0; // 音色 ID
aiVoiceChanger.setSpeaker(speakerID);
功能使用结束后,调用 destroyAIVoiceChanger 接口,销毁 AI 变声引擎实例,释放麦克风等资源。
// 销毁 AI 变声引擎实例
ZegoExpressEngine.getEngine().destroyAIVoiceChanger(aiVoiceChanger);
在构建 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'
}
联系我们
文档反馈