能否直接获取Amazon Connect语音通话的转录文本(无需控制台下载)?
如何在自有应用中获取Amazon Connect语音通话的转录文本
可以直接获取语音通话的转录文本,以下是几种可行方案:
1. 调用Contact Lens API拉取历史转录
如果已经开启了Contact Lens的通话分析(你能在控制台看到转录,说明已满足条件),可以通过ListContactAnalyticsSegments API获取指定通话的完整转录内容:
- 传入Amazon Connect实例ID和目标通话的联系ID(Contact ID),API会返回包含转录片段的响应,每个片段的
Transcript字段包含发言角色(客服/客户)和对应文本。 - 示例代码(Node.js):
const { ConnectClient, ListContactAnalyticsSegmentsCommand } = require("@aws-sdk/client-connect"); const client = new ConnectClient({ region: "你的区域" }); async function getCallTranscript(instanceId, contactId) { const params = { InstanceId: instanceId, ContactId: contactId, MaxResults: 100 }; const command = new ListContactAnalyticsSegmentsCommand(params); const response = await client.send(command); // 提取并整理转录内容 return response.Segments.flatMap(segment => { if (segment.Transcript) { return [{ speaker: segment.Transcript.ParticipantRole, content: segment.Transcript.Content }]; } return []; }); }
2. 配置S3自动存储转录文件
可以在Amazon Connect控制台的「数据存储」设置中,开启将Contact Lens转录文本存储到指定S3桶。开启后,后续通话的转录会以JSON文件形式保存到S3的对应路径(格式如connect/{实例ID}/contact-lens/{联系ID}/transcript.json),你可以直接从S3读取这些文件获取转录内容。
3. 通过Streams库实时获取转录
如果需要在通话进行中实时展示转录文本,可利用amazon-connect-streams库的监听事件:
- 监听通话的
onTranscript事件,当有新的转录片段生成时,会实时返回发言角色和内容,直接渲染到你的应用界面即可。 - 示例代码:
connect.contact(function(contact) { contact.onTranscript(function(transcript) { // 处理实时转录内容,比如添加到页面 const transcriptElement = document.createElement('div'); transcriptElement.textContent = `${transcript.participantRole}: ${transcript.content}`; document.getElementById('transcript-container').appendChild(transcriptElement); }); });
注意事项
- 确保你的IAM角色拥有对应权限:调用API需
connect:ListContactAnalyticsSegments权限,读取S3需s3:GetObject权限。 - 联系ID(Contact ID)可通过Streams库在通话过程中获取,或从你的应用存储的通话记录中提取。
内容的提问来源于stack exchange,提问作者DanHam
相关产品推荐
相关产品推荐

