功能介绍
接入 TUIRoomKit 后,您可以通过点击底部栏的 "AI 助手" 开启 AI 实时字幕功能,该功能可实现:
AI 实时字幕:将课堂过程中的讨论内容以字幕形式进行显示。
AI 实时课堂记录:将课堂过程中的讨论内容以文字形式记录下来。
注意:


功能接入
步骤1:开启本地后台服务
注意:
启用 AI 转录需要使用用户的云 ID 和 Key,因为这些信息较为敏感,所以不在客户端集成此接口。您需要在您的业务后台添加 StartAITranscription 相关代码。这里以 Node.js 服务为例,如果您的后台服务使用其他语言,可以 点击此处调试,生成对应语言的示例代码。
require('dotenv').config();const express = require('express');const tencentcloud = require('tencentcloud-sdk-nodejs-trtc');const cors = require('cors')const TrtcClient = tencentcloud.trtc.v20190722.Client;// 从环境变量中获取腾讯云账户 SecretId 和 SecretKey// 入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密// 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。// 以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见:https://cloud.tencent.com/document/product/1278/85305// 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取const secretId = process.env.TENCENT_SECRET_ID || '';const secretKey = process.env.TENCENT_SECRET_KEY || '';const region = process.env.TENCENT_REGION || '';const clientConfig = {credential: {secretId: secretId,secretKey: secretKey,},region: region,profile: {httpProfile: {endpoint: 'trtc.tencentcloudapi.com',},},};const client = new TrtcClient(clientConfig);const app = express();app.use(express.json());app.use(cors());app.post('/start', async (req, res) => {const { SdkAppId, RoomId, RoomIdType = 1, UserId, UserSig } = req.body;const params = {SdkAppId: SdkAppId,RoomId: RoomId,RoomIdType: RoomIdType,TranscriptionParams: {UserId: UserId,UserSig: UserSig,},};try {const data = await client.StartAITranscription(params);console.log('success',data)res.status(200).json(data);} catch (err) {console.error('error', err);res.status(500).json({ error: err.message });}});app.post('/stop', async (req, res) => {const { TaskId } = req.body;try {const data = await client.StopAITranscription({ TaskId: TaskId });res.status(200).json(data);} catch (err) {console.error('error', err);res.status(500).json({ error: err.message });}});const port = process.env.PORT || 3000;app.listen(port, () => {console.log(`Server is running on port ${port}`);});
步骤2:Roomkit 开启 AI 助手功能
在此之前,请您先参见 跑通 Demo 运行 Classroom 工程,打开 Web/Vue3/src/views/room.vue 文件,调用 setComponentConfig 接口加载 AI 字幕功能。
注意:
Roomkit 仅进行 AI 实时课堂记录的数据处理,实际 ASR 的开启时机是客户端用户进房,此处您可根据自己的业务需求调整时机。
import { ConferenceMainView, conference, RoomEvent, LanguageOption, ThemeOption, roomService } from '../TUIRoom';roomService.setComponentConfig({ AIControl: { visible: true } });


步骤3:Roomkit 监听用户进房,调用 node 服务,开启 AI 转录。
import { conference } from './TUIRoom';import { startAITranscription } from '../http';const handleAITask = (data: {roomId: string}) => {const { roomId } = data;startAITranscription({RoomId: roomId,UserId: 'robot', // 此处需要一个机器人用户,以 robot 为例,此处不能与房间内用户的 userId 一样,建议使用 robotUserSig: 'xxx', // robot 对应的 userSigSdkAppId: sdkAppId,RoomIdType: 1, // 房间类型为字符串房间});};conference.on(RoomEvent.ROOM_JOIN, handleAITask);conference.on(RoomEvent.ROOM_START, handleAITask);onUnmounted(() => {conference.off(RoomEvent.ROOM_JOIN, handleAITask);conference.off(RoomEvent.ROOM_START, handleAITask);});
// http.tsimport axios from 'axios';const http = axios.create({baseURL: 'http://localhost:3000', // 您的 Node.js 服务地址timeout: 10000, // 请求超时时间});interface TranscriptionParams {SdkAppId: number;RoomId: string;RoomIdType?: number;UserId: string;UserSig: string;}interface StopParams {TaskId: string;}// 启动 AI 转写任务export function startAITranscription(params: TranscriptionParams) {return http.post('/start', params);}// 停止 AI 转写任务export function stopAITranscription(params: StopParams) {return http.post('/stop', params);}
其他文档
说明: