AI 智能总结
AI 智能总结是在 AI 智能流式语音识别功能基础上增加的智能总结功能。该功能能够自动分析通话内容,生成通话摘要、章节摘要、待办事项、话题提取等多种形式的总结内容,帮助用户快速回顾通话要点。
全场景适用
- 音视频通话:自动生成通话纪要,记录通话要点、决策事项和待办任务,提升通话效率。
- 在线培训: 生成培训内容摘要和知识点总结,帮助学员快速回顾重点内容。
- 客户沟通:记录客户需求、沟通要点和后续跟进事项,确保信息不遗漏。
前置条件
AI 智能总结是融云 RTC SDK 的高级功能。使用前需要满足以下条件:
服务开通
请提交工单开通。
功能依赖
AI 智能总结是基于 AI 智能流式语音识别开发的功能。使用该功能需要:
- 先集成 AI 智能流式语音识别 功能
- 在初始化 CallLib 时开启语音识别功能(具体配置方法请参考 AI 智能流式语音识别 文档)
注册智能总结 回调
为了接收智能总结相关通知,您需要实现并注册相应的回调。通过回调,您可以接收智能总结任务的状态通知。
在发起通话或接听通话前,您需要通过 RCCallClient 的 callASRListener 属性设置智能总结回调。设置后,您将通过 RCCallASRListener 的 didReceiveStartSummarization 和 didReceiveStopSummarization 方法获得智能总结任务状态通知。
回调方法说明
| 方法 | 说明 |
|---|---|
didReceiveStartSummarization | 智能总结任务开始回调 |
didReceiveStopSummarization | 智能总结任务停止回调 |
didReceiveStartSummarization 参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
taskId | string | 智能总结任务 ID,用于后续生成智能总结 |
didReceiveStopSummarization 参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
taskId | string | 智能总结任务 ID |
示例代码
实现 RCCallASRListener 中智能总结相关回调:
CallClientInstance.callASRListener = {
didReceiveStartASR() {
// 处理语音识别服务开启事件
},
didReceiveStopASR() {
// 处理语音识别服务停止事件
},
didReceiveStartSummarization(taskId:string) {
// 处理 AI 智能总结开启事件
},
didReceiveStopSummarization(taskId:string) {
// 处理 AI 智能总结停止事件
}
}
开启智能总结
在开启语音识别成功后,您需要调用 RCCallClient 的 startSummarization 方法开启智能总结服务。
开启成功后,其他客户端会通过 RCCallASRListener 的 didReceiveStartSummarization 方法收到通知。
智能总结依赖语音识别服务,需要在收到 RCCallASRListener 的 didReceiveStartASR 回调后,调用开启智能总结;智能总结为通话级别功能,通话内任意用户开启后,所有用户都会收到开始通知。
接口原型
startSummarization(): Promise<IRCCallProcessResult<string>>
示例代码
CallClientInstance.startSummarization()
.then((result:IRCCallProcessResult<string>) => {
if(result.code === RCCallErrorCode.SUCCESS) {
// 开启成功,通过 result.data 获取任务 ID
} else {
// 开启失败
}
})
.catch(() => {
// 处理异常情况
})
关闭智能总结
您可以通过 RCCallClient 的 stopSummarization 方法关闭智能总结。
智能总结依赖语音识别服务,如果关闭语音识别,智能总结也会同时关闭。
接口原型
stopSummarization(): Promise<IRCCallProcessResult<void>>
示例代码
CallClientInstance.stopSummarization()
.then((result:IRCCallProcessResult<void>) => {
if(result.code === RCCallErrorCode.SUCCESS) {
// 停止成功
} else {
// 停止失败
}
})
.catch(() => {
// 处理异常情况
})
生成智能总结
在智能总结任务开启后,您可以通过 RCCallClient 的 generateSummarization 方法生成智能总结。该方法支持生成通话摘要、章节摘要、待办事项、话题提取等多种形式的总结内容。
接口原型
generateSummarization(
callId: string,
taskId: string,
startTime: number,
endTime: number,
config: RCRTCGenerateSummarizationConfig,
callback: IRCCallStreamDataCallback<string>
): void
参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
callId | string | 生成智能总结的通话 ID |
taskId | string | 智能总结任务 ID,通过 didReceiveStartSummarization 回调获取到 |
startTime | number | 本次需要总结的开始时间,UTC 时间戳,单位秒,传入 0,表示总结开始的时间 |
endTime | number | 本次需要总结的结束时间,UTC 时间戳,单位秒,传入 0,表示当前时间,如果总结已经停止,则表示总结结束的时间 |
config | RCRTCGenerateSummarizationConfig | 生成智能总结配置,详见下方 配置说明 |
callback | IRCCallStreamDataCallback | 内容结果回调,如果内容比较多,onDataReceived 会回调多次 |
配置说明
RCRTCGenerateSummarizationConfig 配置类包含以下属性:
| 属性 | 类型 | 说明 |
|---|---|---|
customPrompt | string | 自定义提示词,最大长度 100 |
destLang | string | 输出智能总结的目标语言代码 |
enableSummarization | boolean | 是否输出总结摘要,即对整个通话的高度概括,默认 false |
enableSummarizationDetails | boolean | 是否输出总结详情,默认 false |
enableChapterSummary | boolean | 是否输出章节摘要,即按时间线或话题划分的通话段落总结,默认 false |
enableTodoList | boolean | 是否输出待办事项提取,自动识别通话中达成的共识和分配的任务,默认 false |
enableHashtag | boolean | 是否输出话题提取,默认 false |
format | RCRTCGenerateSummarizationFormat | 输出格式,默认 RCRTCGenerateSummarizationFormat.MARK_DOWN |
示例代码
// 创建智能总结配置
const config = new RCRTCGenerateSummarizationConfig()
config.destLang = "zh"; // 设置输出语言为中文
config.enableSummarization = true; // 启用总结摘要
config.enableSummarizationDetails = true; // 启用总结详情
config.enableChapterSummary = true; // 启用章节摘要
config.enableTodoList = true; // 启用待办事项提取
config.enableHashtag = true; // 启用话题提取
config.format = RCRTCGenerateSummarizationFormat.MARK_DOWN; // 设置输出格式为 MarkDown
// 生成智能总结
CallClientInstance.generateSummarization(callId, taskId, 0, 0, config, {
onFailed(errorCode:RCCallErrorCode) {
// 处理失败
},
onComplete() {
// 处理完成
},
onDataReceived(data:string) {
// 处理数据
}
})
获取语音转文字
在智能总结任务开启后,您可以通过 RCCallClient 的 getASRContent 方法获取指定时间段的语音转文字内容。该方法可以获取通话期间的完整语音识别文本。
接口原型
getASRContent(
callId: string,
taskId: string,
startTime: number,
endTime: number,
destLang: string,
callback: IRCCallStreamDataCallback<string>
): void
参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
callId | string | 获取语音转文字的通话 ID |
taskId | string | 智能总结任务 ID,通过 didReceiveStartSummarization 回调获取到 |
startTime | number | 本次需要获取语音转文字的开始时间,UTC 时间戳,单位秒,传入 0,表示总结开始的时间 |
endTime | number | 本次需要获取语音转文字的结束时间,UTC 时间戳,单位秒,传入 0,表示当前时间,如果总结已经停止,则表示总结结束的时间 |
destLang | string | 目标语言代码,如果传入 null 或空字符串,则使用默认语言 |
callback | IRCCallStreamDataCallback | 内容结果回调,如果内容比较多,onDataReceived 会回调多次 |