跳到主要内容

AI智能流式语音识别

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

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

前置条件

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

设置源语言

在发起通话或接听通话前,您需要通过 RCCallClient#setSrcLanguageCode 接口设置源语言。具体支持的语言请参考语言代码列表

提示

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

参数说明

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

示例代码

Java
RongCallClient.getInstance().setSrcLanguageCode("zh");

注册语音识别结果回调

在发起通话或接听通话前,您需要通过 RCCallClient#setASRListener 设置语音识别结果回调。通过此回调,您可以接收以下通知:

  • 语音识别服务的开启和停止
  • 语音识别结果
  • 语音识别错误

语音识别数据结构

RCRTCASRContent

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

示例代码

Java
RongCallClient.getInstance().setASRListener(new IRongCallASRListener() {
/**
* 语音识别回调通知
* @param asrContent 语音识别数据
*/
@Override
public void onReceiveASRContent(RCRTCASRContent asrContent) {
}

/**
* 语音识别服务关闭回调通知
*/
@Override
public void onReceiveStopASR() {

}

/**
* 语音识别服务开启回调通知
*/
@Override
public void onReceiveStartASR() {

}

/**
* 语音识别错误回调通知
* @param errorCode
*/
@Override
public void onASRError(int errorCode) {

}
});

开启语音识别服务

通话接通后,您需要调用 RCCallClient#startASR 方法开启语音识别服务。开启成功后,其他客户端会通过 IRongCallASRListener#onReceiveStartASR 方法收到通知。

注意

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

参数说明

参数类型说明
callbackIRCRTCResultCallback开启语音识别服务的回调

示例代码

Java
RongCallClient.getInstance().startASR(new IRCRTCResultCallback() {
@Override
public void onSuccess() {
// 开启成功
}

@Override
public void onFailed(RTCErrorCode errorCode) {
// 开启失败
}
});

设置是否接收语音识别

通话建立连接成功后,您可以调用 RCCallClient#setEnableASR 方法来设置是否接收语音识别。

提示

开启语音识别服务后,您可以根据业务需求选择是否接收语音识别结果。如果选择接收,SDK 会通过 IRongCallASRListener#onReceiveASRContent 回调方法通知识别结果。

参数说明

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

示例代码

Java
RongCallClient.getInstance().setEnableASR(true);

停止语音识别服务

您可以调用 RCCallClient#stopASR 方法停止语音识别服务。

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

参数说明

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

示例代码

Java
RongCallClient.getInstance().stopASR(new IRCRTCResultCallback() {
@Override
public void onSuccess() {
// 停止成功
}

@Override
public void onFailed(RTCErrorCode errorCode) {
// 停止失败
}
});