跳到主要内容

AI 智能流式语音翻译

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

全场景适用

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

前置条件

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

注意

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

注册语音翻译代理

为了接收语音翻译相关通知,您需要实现并注册相应的代理。通过代理,您可以接收语音翻译结果。

在发起通话或接听通话前,您需要通过 RCCallClientsetASRDelegate 方法设置语音翻译代理。设置后,您将通过 RCCallASRDelegatedidReceiveRealtimeTranslationContent 方法获得翻译结果。

接口原型

Objective C
- (void)setASRDelegate:(id<RCCallASRDelegate>)delegate;

参数说明

参数类型说明
didReceiveRealtimeTranslationContent函数语音翻译结果回调

content 参数说明

参数类型说明
destLangCodeNSString当前语音翻译的语言代码
userIdNSString当前语音翻译关联用户的 ID
msgIdNSString当前语音翻译的 ID,用于关联当前语音识别结果
timeUTCNSTimeInterval当前语音翻译的时间戳(单位:秒)
msgNSString当前语音翻译结果
isEndBOOL当前语音翻译是否结束,YES 表示已结束

示例代码

实现 RCCallASRDelegate 中语音翻译相关代理:

Objective C
@interface ASRDelegate () <RCCallASRDelegate>
// 语音翻译内容回调
- (void)didReceiveRealtimeTranslationContent:(RCRTCRealtimeTranslationContent *)content;
@end

@implementation ASRDelegate
- (void)didReceiveRealtimeTranslationContent:(RCRTCRealtimeTranslationContent *)content {
// 处理语音翻译结果
}
@end

注册语音翻译代理:

Objective C
ASRDelegate *asrDelegate = [[ASRDelegate alloc] init];
self.asrDelegate = asrDelegate;
[[RCCallClient sharedRCCallClient] setASRDelegate:self.asrDelegate];

开启语音翻译

在开启语音翻译成功后,您需要调用 RCCallClientstartRealtimeTranslation 方法开启语音翻译。

注意

语音翻译依赖语音识别服务,需要在收到 RCCallASRDelegatedidReceiveStartASR 回调后,调用开启语音翻译;客户端在接收翻译结果前,需要调用 RCCallClientsetEnableASR 开启接收语音识别和翻译的结果。

接口原型

Objective C
- (void)startRealtimeTranslation:(NSString *)destLangCode 
copmletion:(nullable void (^)(BOOL success, NSInteger code))completion;

参数说明

参数类型说明
destLangCodeNSString语音翻译语言代码
completionBlock开启语音翻译的回调

示例代码

Objective C
[[RCCallClient sharedRCCallClient] startRealtimeTranslation:self.destLangCode 
copmletion:^(BOOL success, NSInteger code) {
if (success) {
NSLog(@"语音翻译开启成功");
} else {
NSLog(@"语音翻译开启失败,错误码:%ld", (long)code);
}
}];

停止语音翻译

您可以通过 RCCallClientstopRealtimeTranslation 方法停止语音翻译。

注意

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

接口原型

Objective C
- (void)stopRealtimeTranslation:(nullable void (^)(BOOL success, NSInteger code))completion;

参数说明

参数类型说明
completionBlock停止语音翻译的回调

示例代码

Objective C
[[RCCallClient sharedRCCallClient] stopRealtimeTranslation:^(BOOL success, NSInteger code) {
if (success) {
NSLog(@"语音翻译停止成功");
} else {
NSLog(@"语音翻译停止失败,错误码:%ld", (long)code);
}
}];