跳到主要内容

AI 智能流式语音翻译

AI 智能流式语音翻译是在 AI 智能流式语音识别功能基础上增加的文本翻译功能。具备翻译延迟低、准确度高等特点,支持 200+ 语种的翻译,支持的语种详见语音翻译语言代码

全场景适用

  • 音视频通话:跨国亲友聊天、海外客户对接,实时翻译让对话像母语交流般自然。
  • 多语言会议:全球团队协作、国际研讨会,主讲内容同步译成多语言,参会者各取所需,决策效率翻倍。
  • 跨境直播:电商出海直播、文化内容输出,实时翻译帮助主播触达全球观众,打破地域与语言的流量边界。

前置条件

AI 智能流式语音翻译是融云 RTC SDK 的高级功能。若要使用,请提交工单开通此功能。

注意

AI 智能流式语音翻译是基于 AI 智能流式语音识别开发的功能,客户端使用该功能需要先集成AI 智能流式语音识别并打开语音识别。

注册语音翻译结果回调

在加入房间成功后,您可以通过 RCRTCRoom#registerRoomListener 方法设置语音翻译结果回调。通过 IRCRTCRoomEventsListener#onReceiveRealtimeTranslationContent 此回调方法可以接收语音翻译结果。

语音翻译数据结构

RCRTCRealtimeTranslationContent

参数类型说明
userIdString当前语音翻译关联用户的 ID
msgIdString当前语音翻译的 ID,用于关联当前语音翻译结果
timeUTClong当前语音翻译的时间戳(单位:秒)
msgString当前语音翻译结果
isEndboolean当前语音翻译是否结束,true 表示已结束
destLangCodeString当前语音翻译的语言代码

示例代码

Java
room.registerRoomListener(new IRCRTCRoomEventsListener() {
/**
* 语音翻译结果回调通知
* @param content 语音翻译结果数据
*/
@Override
public void onReceiveRealtimeTranslationContent(RCRTCRealtimeTranslationContent content) {
// 处理语音翻译结果

}
//...
});

开启语音翻译

在加入房间成功后,您可以通过以下步骤开启语音翻译服务:

  1. 调用 RCRTCRoom#getLocalUser 获取本地用户对象
  2. 调用 RCRTCLocalUser#startRealtimeTranslation 开启语音翻译
注意

语音翻译功能依赖音频数据流和语音识别服务,在开启语音翻译功能前必须满足下面两个条件:

  1. 房间内必须有已发布的音频数据流资源
  2. 开启语音识别服务或收到 IRCRTCRoomEventsListener#onReceiveStartASR 回调通知

参数说明

参数类型说明
destLangCodeString语音翻译语言代码
callBackIRCRTCResultCallback开启语音翻译结果回调

示例代码

Java
room.getLocalUser().startRealtimeTranslation("en", new IRCRTCResultCallback() {
@Override
public void onSuccess() {
// 开启成功
Log.d("Translation", "语音翻译开启成功");
}

@Override
public void onFailed(RTCErrorCode errorCode) {
// 开启失败
Log.e("Translation", "语音翻译开启失败,错误码:" + errorCode);
}
});

关闭语音翻译

在加入房间成功后,您可以通过以下步骤停止语音翻译功能:

  1. 调用 RCRTCRoom#getLocalUser 获取本地用户对象。
  2. 调用 RCRTCLocalUser#stopRealtimeTranslation 停止语音翻译。
提示

语音翻译依赖语音识别服务,如果关闭语音识别服务,语音翻译功能也会被同时关闭。

参数说明

参数类型说明
callbackIRCRTCResultCallback停止语音翻译服务的回调

示例代码

Java
room.getLocalUser().stopRealtimeTranslation(new IRCRTCResultCallback() {
@Override
public void onSuccess() {
// 停止成功
Log.d("Translation", "语音翻译停止成功");
}

@Override
public void onFailed(RTCErrorCode errorCode) {
// 停止失败
Log.e("Translation", "语音翻译停止失败,错误码:" + errorCode);
}
});