AI 智能流式语音翻译
AI 智能流式语音翻译是在 AI 智能流式语音识别功能基础上增加的文本翻译功能。具备翻译延迟低、准确度高等特点,支持 200+ 语种的翻译,支持的语种详见语音翻译语言代码。
全场景适用
- 音视频通话:跨国亲友聊天、海外客户对接,实时翻译让对话像母语交流般自然。
- 多语言会议:全球团队协作、国际研讨会,主讲内容同步译成多语言,参会者各取所需,决策效率翻倍。
- 跨境直播:电商出海直播、文化内容输出,实时翻译帮助主播触达全球观众,打破地域与语言的流量边界。
前置条件
AI 智能流式语音翻译是融云 RTC SDK 的高级功能。若要使用,请提交工单开通此功能。
注意
AI 智能流式语音翻译是基于 AI 智能流式语音识别开发的功能,客户端使用该功能需要先集成 AI 智能流式语音识别并打开语音识别。
注册语音翻译代理
为了接收语音翻译相关通知,您需要实现并注册相应的代理。通过代理,您可以接收语音翻译结果。
在加入房间成功后,您可以通过 RCRTCRoom 的 delegate
属性设置语音翻译代理。设置后,您将通过 RCRTCRoomEventDelegate
的 didReceiveRealtimeTranslationContent
方法获得翻译结果。
接口原型
Objective C
@interface RCRTCRoom : RCRTCBaseRoom
@property (nonatomic, weak, nullable) id<RCRTCRoomEventDelegate> delegate;
@end
参数说明
参数 | 类型 | 说明 |
---|---|---|
didReceiveRealtimeTranslationContent | 函数 | 语音翻译结果回调 |
content
参数说明
参数 | 类型 | 说明 |
---|---|---|
destLangCode | NSString | 当前语音翻译的语言代码 |
userId | NSString | 当前语音翻译关联用户的 ID |
msgId | NSString | 当前语音翻译的 ID,用于关联当前语音识别结果 |
timeUTC | NSTimeInterval | 当前语音翻译的时间戳(单位:秒) |
msg | NSString | 当前语音翻译结果 |
isEnd | BOOL | 当前语音翻译是否结束,YES 表示已结束 |
示例代码
实现 RCRTCRoomEventDelegate 中语音翻译相关代理:
Objective C
@interface RoomDelegate () <RCRTCRoomEventDelegate>
// 语音翻译结果回调
- (void)didReceiveRealtimeTranslationContent:(RCRTCRealtimeTranslationContent *)content;
@end
@implementation RoomDelegate
- (void)didReceiveStartASR {
// 语音识别开启回调
}
- (void)didReceiveStopASR {
// 语音识别停止回调
}
- (void)didReceiveRealtimeTranslationContent:(RCRTCRealtimeTranslationContent *)content {
// 处理语音翻译结果
}
@end
注册语音翻译代理:
Objective C
RCRTCRoomConfig *config = [[RCRTCRoomConfig alloc] init];
[[RCRTCEngine sharedInstance] joinRoom:@"roomId" config:config completion:^(RCRTCRoom * _Nullable room, RCRTCCode code) {
self.roomDelegate = [[RoomDelegate alloc] init];
room.delegate = self.roomDelegate;
}];
开启语音翻译
在加入房间成功后,您可以通过以下步骤开启语音翻译服务:
- 获取房间对象中的本地用户对象。
- 调用 RCRTCLocalUser 的
startRealtimeTranslation
方法开启服务。
开启成功后,其他客户端会通过 RCRTCRoomEventDelegate 的 didReceiveRealtimeTranslationContent
方法收到通知。
注意
语音翻译依赖语音识别服务,需要在收到 RCRTCRoomEventDelegate 的 didReceiveStartASR
回调后,调用开启语音翻译;客户端需要接收翻译结果,需要调用 RCRTCLocalUser 的 setEnableASR
打开语音识别。
接口原型
Objective C
- (void)startRealtimeTranslation:(NSString *)destLangCode
copmletion:(nullable RCRTCOperationCallback)completion;
参数说明
参数 | 类型 | 说明 |
---|---|---|
destLangCode | NSString | 语音翻译语言代码 |
completion | Block | 开启语音翻译的回调 |
示例代码
Objective C
[[RCRTCEngine sharedInstance] joinRoom:@"roomId" config:config completion:^(RCRTCRoom * _Nullable room, RCRTCCode code) {
self.roomDelegate = [[RoomDelegate alloc] init];
room.delegate = self.roomDelegate;
// 开启语音识别服务
[room.localUser startASR:^(BOOL isSuccess, RCRTCCode code) {
if (isSuccess) {
// 语音识别开启成功后,开启语音翻译
[room.localUser startRealtimeTranslation:@"en" copmletion:^(BOOL isSuccess, RCRTCCode code) {
if (isSuccess) {
NSLog(@"语音翻译开启成功");
} else {
NSLog(@"语音翻译开启失败,错误码:%ld", (long)code);
}
}];
}
}];
}];
关闭语音翻译
您可以通过 RCRTCLocalUser 的 stopRealtimeTranslation
方法关闭语音翻译。
提示
语音翻译依赖语音识别服务,如果关闭语音识别,语音翻译也会同时关闭。
接口原型
Objective C
- (void)stopRealtimeTranslation:(nullable RCRTCOperationCallback)completion;
参数说明
参数 | 类型 | 说明 |
---|---|---|
completion | Block | 停止语音翻译的回调 |
示例代码
Objective C
[self.room.localUser stopRealtimeTranslation:^(BOOL isSuccess, RCRTCCode code) {
if (isSuccess) {
NSLog(@"语音翻译关闭成功");
} else {
NSLog(@"语音翻译关闭失败,错误码:%ld", (long)code);
}
}];