AI 智能总结
AI 智能总结是在 AI 智能流式语音识别功能基础上增加的智能总结功能。该功能能够自动分析通话内容,生成通话摘要、章节摘要、待办事项、话题提取等多种形式的总结内容,帮助用户快速回顾通话要点。
全场景适用
- 音视频通话:自动生成通话纪要,记录通话要点、决策事项和待办任务,提升通话效率。
- 在线培训:生成培训内容摘要和知识点总结,帮助学员快速回顾重点内容。
- 客户沟通:记录客户需求、沟通要点和后续跟进事项,确保信息不遗漏。
前置条件
AI 智能流式语音翻译是融云 RTC SDK 的高级功能。使用前需要满足以下条件:
服务开通
请[提交工单]开通。
功能依赖
AI 智能会议纪要基于 AI 智能流式语音识别,客户端使用该功能需要先集成AI 智能流式语音识别,并打开语音识别服务。
设置昵称
设置的昵称不会被翻译,如有需求,可调用 RCCallSession#setNickName设置昵称。
参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
nickName | string | 人员昵称,长度不超过 64 |
示例代码
session.setNickName('testNickName');
设置智能总结事件通知
在发起通话后或接听通话前,需要给 IRCCallASRListener 中添加 onReceiveStartSummarization 和 onReceiveStopSummarization 两个智能总结监听事件,添加监听后,通话中其他人开启、关闭会议纪要时,本端可以收到相应的变更通知。
session.registerCallASRListener({
/**
* 开始智能总结
* @param taskId 可用于获取会议纪要、会议语音转文字内容
*/
onReceiveStartSummarization(taskId: string) {
// 业务层 todo
},
/**
* 结束智能总结
* @param taskId
*/
onReceiveStopSummarization(taskId: string) {
// 业务层 todo
},
})
开启智能总结
通话中一方调用 startSummarization 开启智能总结,房间内其他人通过 IRCCallASRListener 的 onReceiveStartSummarization 收到通知,拿到 taskId;智能总结任务开始后,通话中的语音识别内容会被用于智能总结生成文本内容,可通过 stopSummarization 接口关闭智能总结。
智能总结依赖语音识别服务,需在监听事件 onReceiveStartASR 中执行。
/**
开始智能总结任务
*
* @description 执行时机:需在监听事件 `onReceiveStartASR` 中执行。
*
* @discussion
1. 智能总结任务依赖语音识别服务
2. 通话中其他人通过 onReceiveStartSummarization 收到通知
3. 智能总结任务开始后,可通过 stopSummarization 接口关闭
*
* @returns taskId 智能总结任务 Id
*/
const { code, taskId } = await session.startSummarization();
关闭智能总结
通话中一方关闭智能总结任务,其他人通过 IRCCallASRListener 的 onReceiveStopSummarization 收到通知。
智能总结依赖语音识别服务,如果关闭语音识别,智能总结也会同时关闭。
session.stopSummarization();
生成智能总结
在智能总结任务开启后,可以通过 RCCallClient 的 generateSummarization 方法生成智能总结。该方法支持生成通话摘要、章节摘要、待办事项、话题提取等多种形式的总结内容。
参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
callId | string | 必传,通话 Id |
taskId | string | 必传,智能总结任务 Id,通过 startSummarization 返回或 onReceiveStartSummarization 回调获取到 |
startTime | number | 本次需要总结的开始时间,UTC 时间戳,单位秒,传入 0,表示总结开始的时间 |
endTime | number | 本次需要总结的结束时间,UTC 时间戳,单位秒,传入 0,表示当前时间,如果总结已经停止,则表示总结结束的时间 |
config | IRCRTCGenerateSummarizationConfig | 生成智能总结配置,未配置 customPrompt 时,config 中的 enableSummarization、enableSummarizationDetails、enableChapterSummary、enableTodoList、enableHashtag 必须有一个为 true,否则不会产生任何总结内容 |
contentBlock | Function | 内容回调,如果内容比较多,contentBlock 会回调多次,isEnd 为 true 时,代表内容回调结束 |
IRCRTCGenerateSummarizationConfig 说明:
| 参数 | 类型 | 说明 |
|---|---|---|
customPrompt | string | 自定义提示词,最大长度100 |
destLang | string | 输出智能总结的目标语言代码 |
enableSummarization | boolean | 是否输出总结摘要。即对整个会议的高度概括,默认 false |
enableSummarizationDetails | boolean | 是否为输出总结整体,默认为 false |
enableChapterSummary | boolean | 是否输出章节摘要,即按时间线或话题划分的会议段落总结,默认为 false |
enableTodoList | boolean | 是否输出待办事项提取,自动识别会议中达成的共识和分配的任务,默认为 false |
enableHashtag | boolean | 是否输出话题提取,默认为 false |
format | RCRTCGenerateSummarizationFormat 枚举 | 输出格式,默认为 markdown |
代码示例
const startTime = 0;
const endTime = 0;
callClient.generateSummarization(
callId, // 需输入实际 callId
taskId, // 需输入实际 taskId
startTime,
endTime,
{
enableSummarization: true,
enableSummarizationDetails: true,
enableChapterSummary: true,
enableTodoList: true,
enableHashtag: true
},
(data: string, isEnd: boolean) => {
console.log('generateSummarization data block:', data, isEnd);
});
获取语音转文字内容
在智能总结任务开启后,可以通过 RCCallClient 的 getASRContent 方法获取指定时间段的语音转文字内容。该方法可以获取通话期间的完整语音识别文本。
参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
callId | string | 必传,获取语音转文字的通话 Id |
taskId | string | 必传,智能总结任务 Id,通过 startSummarization 返回或 onReceiveStartSummarization 回调获取到 |
startTime | number | 本次需要获取语音转文字的开始时间,UTC 时间戳,单位秒,传入 0,表示总结开始的时间 |
endTime | number | 本次需要获取语音转文字的结束时间,UTC 时间戳,单位秒,传入 0,表示当前时间,如果总结已经停止,则表示总结结束的时间 |
destLang | string | 目标语言代码,默认为语音源语言 |
contentBlock | Function | 内容回调,如果内容比较多,contentBlock 会回调多次,isEnd 为 true 时,代表内容回调结束 |
代码示例
const startTime = 0;
const endTime = 0;
callClient.getASRContent(
callId, // 需输入实际 callId
taskId, // 需输入实际 taskId
startTime,
endTime,
(data: string, isEnd: boolean) => {
console.log('getASRContent data block:', data, isEnd);
},
'en',
);