AI Real-Time Subtitles

功能介绍

接入 TUIRoomKit 后,您可以通过点击底部栏的 "AI 助手" 开启 AI 实时字幕功能,该功能可实现:
AI 实时字幕:将会议过程中的讨论内容以字幕形式进行显示。
AI 实时会议记录:将会议过程中的讨论内容以文字形式记录下来。
注意:
使用该功能需开通 TUIRoomKit 包月套餐。除了正常通话费用(音视频时长计费说明);该功能进行语音转文本时,会产生额外的 AI 智能识别费用,详情请参考 AI 智能识别计费说明
在底部栏点击 AI 助手
开启 AI 实时字幕
查看 AI 实时会议记录










功能接入

接入前提

开启底部栏中 “AI 助手” 按钮。
ConferenceSessionImpl.sharedInstance().isShowAISpeechToTextButton = true;

开启 AI 实时字幕

开启 AI 实时字幕功能,实际上是启动了一次 AI 转录任务,该过程中,后台会通过机器人拉流进行实时进行语音识别并下发字幕和转录消息。关于更多开启 AI 转录任务的参数配置、查询转录任务状态参见 AI 服务相关接口
您可在创建房间后,通过以下示例代码,开启 AI 实时字幕功能。
说明:
语音转写功能需要密钥开启,由于代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。建议采用更安全的方式来使用密钥,详情请参见 云 API 密钥安全方案推荐,密钥可前往 API 密钥管理 进行获取。
Java
Kotlin
private String mTaskId; // 开启 AI 转录后的任务ID
private String aiSecretId = "PLACEHOLDER"; // AI 语音转写的 ID
private String aiSecretKey = "PLACEHOLDER"; // AI 语音转写的 Key
private String roomId = "PLACEHOLDER"; // 房间 ID
private int sdkAppId = 0L; // 您的 SDKAppId
private String sdkSecretKey = "PLACEHOLDER"; // 您的 SDKAppId 密钥
private String robotUserId = "PLACEHOLDER"; // 房间内 AI 机器人的 userId,和房间内的其他人 userId 不能一样

private void startAITranscription() {
Runnable startAITranscriptionRun = () -> {
try {
// 代码泄露可能会导致 aiSecretId 和 aiSecretKey 泄露,并威胁账号下所有资源的安全性。
// 以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见:https://cloud.tencent.com/document/product/1278/85305
// 密钥可前往官网控制台 https://console.tencentcloud.com/cam/capi 进行获取
Credential credential = new Credential(aiSecretId, aiSecretKey);
TrtcClient client = new TrtcClient(credential, null);

StartAITranscriptionRequest request = new StartAITranscriptionRequest();
request.setRoomId(roomId);
request.setRoomIdType(1L);
request.setSdkAppId((long)sdkAppId);

TranscriptionParams transcriptionParams = new TranscriptionParams();
transcriptionParams.setUserId(robotUserId);
transcriptionParams.setUserSig(GenerateTestUserSig.genTestUserSig(sdkAppId, robotUserId, sdkSecretKey));
request.setTranscriptionParams(transcriptionParams);
StartAITranscriptionResponse response = client.StartAITranscription(request);
mTaskId = response.getTaskId();
} catch (TencentCloudSDKException e) {
e.printStackTrace();
}
};
new Thread(startAITranscriptionRun).start();
}
private var mTaskId: String? = null // 开启 AI 转录后的任务ID
private val aiSecretId = "PLACEHOLDER" // AI 语音转写的 ID
private val aiSecretKey = "PLACEHOLDER" // AI 语音转写的 Key
private val roomId = "PLACEHOLDER" // 房间 ID
private val sdkAppId = 0L // 您的 SDKAppId
private val sdkSecretKey = "PLACEHOLDER" // 您的 SDKAppId 密钥
private val robotUserId = "PLACEHOLDER" // 房间内 AI 机器人的 userId,和房间内的其他人 userId 不能一样

private fun startAITranscription() {
Thread {
try {
// 代码泄露可能会导致 aiSecretId 和 aiSecretKey 泄露,并威胁账号下所有资源的安全性。
// 以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见:https://cloud.tencent.com/document/product/1278/85305
// 密钥可前往官网控制台 https://console.tencentcloud.com/cam/capi 进行获取
val credential = Credential(aiSecretId, aiSecretKey)
val client = TrtcClient(credential, null)
val request = StartAITranscriptionRequest()
request.roomId = roomId
request.roomIdType = 1L
request.sdkAppId = sdkAppId
val transcriptionParams = TranscriptionParams()
transcriptionParams.userId = robotUserId
transcriptionParams.userSig = GenerateTestUserSig.genTestUserSig(sdkAppId, robotUserId, sdkSecretKey)
request.transcriptionParams = transcriptionParams
val response = client.StartAITranscription(request)
mTaskId = response?.taskId
} catch (e: TencentCloudSDKException) {
e.printStackTrace()
}
}.start()
}

关闭 AI 实时字幕功能

您可在离开房间/销毁房间时,调用以下代码关闭 AI 实时字幕功能。
Java
Kotlin
private void stopAITranscription() {
Runnable stopAITranscriptionRun = () -> {
try {
Credential credential = new Credential(secretId, secretKey);
TrtcClient client = new TrtcClient(credential, null);
StopAITranscriptionRequest stopAITranscriptionRequest = new StopAITranscriptionRequest();
stopAITranscriptionRequest.setTaskId(mTaskId);
client.StopAITranscription(stopAITranscriptionRequest);
} catch (TencentCloudSDKException e) {
e.printStackTrace();
}
};
new Thread(stopAITranscriptionRun).start();
}
private fun stopAITranscription() {
Thread {
try {
val credential = Credential(secretId, secretKey)
val client = TrtcClient(credential, null)
val stopAITranscriptionRequest = StopAITranscriptionRequest()
stopAITranscriptionRequest.taskId = mTaskId
client.StopAITranscription(stopAITranscriptionRequest)
} catch (e: TencentCloudSDKException) {
e.printStackTrace()
}
}.start()
}
说明:
如果您在接入和使用过程有任何需要或者反馈,您可以联系:info_rtc@tencent.com。