跳到主要内容

AI 智能流式语音识别

该功能支持在音视频通话、音视频会议、语聊房以及直播等多种场景下实时转写音频内容。此 AI 智能流式语音识别具有高准确率和低延迟的特点。

目前支持超过 50 种语言的识别,包括中文、英文、日语、韩语、阿拉伯语、法语、西班牙语、泰语、印尼语等,详见语言代码列表。

前置条件​

AI 智能流式语音识别是融云 RTC SDK 的高级功能。若要使用,请在 AI 服务的服务购买页面开通此功能。

设置源语言​

在加入房间时,可以通过配置 IJoinRTCRoomOptions 中的 srcLanguage 参数设置源语言。具体支持的语言请参考语言代码列表。

提示

为提高语音识别的准确度,请根据您的业务需求设置合适的源语言。默认源语言为中文。

参数说明​

参数类型说明
srcLanguagestring语音识别的源语言代码,请参考语言代码列表。

示例代码​

TypeScript
  rtcClient.joinRTCRoomWithOptions(roomId, {
srcLanguage: 'zh'
});

注册语音识别事件通知​

加入房间成功后,可以通过 RCRTCRoom#registerRoomListener 方法设置语音识别的相关通知事件,包括以下:

TypeScript
  room.registerRoomListener({
/**
* 语音识别服务开启通知
* 如需要语音识别内容和语音实时翻译,可在此时机依次调用 room 的:
* - setEnableASR 方法:设置是否接收语音识别内容,语音识别内容通过 `onReceiveASRContent` 回调返回
* - startRealtimeTranslation 方法:开启语音实时翻译,实时翻译内容通过 `onReceiveRealtimeTranslationContent` 回调返回
*/
onReceiveStartASR() {
console.log('语音识别服务开启');
},
/**
* 语音识别服务停止通知
*/
onReceiveStopASR() {
console.log('语音识别服务关闭');
},
/**
* 语音识别内容回调
* @param asrContent
*/
onReceiveASRContent(asrContent: RCRTCASRContent) {
console.log('onReceiveASRContent', asrContent);
},
})

语音识别数据结构​

RCRTCASRContent​

参数类型说明
userIdstring当前语音识别关联用户的 ID
msgIdstring当前语音识别的 ID,用于关联当前语音识别结果
timeUTCnumber当前语音识别的时间戳(单位:秒)
msgstring当前语音识别结果
isEndboolean当前语音识别是否结束,true 表示已结束

开启语音识别服务​

加入房间成功后,可以调用 RCRTCRoom#startASR 开启语音识别服务。

开启成功后,房间内其他成员会通过 IRCRTCRoomEventsListener#onReceiveStartASR 方法收到语音识别服务开启的通知。

注意

任何加入房间的人员都可以调用此接口开启语音识别服务。SDK 不限制调用权限,请根据您的业务需求进行权限控制。

示例代码​

TypeScript
  const { code } = await room.startASR();

设置是否接收语音识别内容​

加入房间成功后,可以调用 RCRTCRoom#setEnableASR 设置是否接收语音识别内容。

提示

此接口具有预设功能。您可以在房间开启语音识别服务前调用,当服务开启后,SDK 会根据您的设置自动接收语音识别结果。如果选择接收,SDK 会通过 IRCRTCRoomEventsListener#onReceiveASRContent 事件通知语音识别结果。

参数说明​

参数类型说明
enablebooleantrue:接收语音识别
false:停止接收语音识别

示例代码​

TypeScript
  room.setEnableASR(true);

停止语音识别服务​

加入房间成功后,可以调用 RCRTCRoom#stopASR 停止语音识别服务。

注意
  • 停止语音识别服务生效后,房间内所有人都会收不到语音识别内容,请谨慎使用。
  • 任何加入房间的人员都可以调用此接口停止语音识别服务。SDK 不限制调用权限,请根据您的业务需求进行权限控制。
  • 停止成功后,SDK 会通过 IRCRTCRoomEventsListener#onReceiveStopASR 回调方法通知房间内其他人员。

示例代码​

TypeScript
  room.stopASR();