语音转录功能可让您将流式音频数据实时转换为转录文本。Agent Assist 会根据文本提供建议,因此必须先转换音频数据,然后才能使用。您还可以将转录的 流式音频与 Customer Experience Insights 搭配使用,以收集有关客服人员 对话的实时数据(例如主题 建模)。
您可以通过两种方式转录流式音频以供 Agent Assist 使用:使用 SIPREC 功能,或使用音频 数据作为载荷进行 gRPC 调用。本页面介绍了使用 gRPC 调用转录流式音频数据的过程。
语音转录功能使用 Speech-to-Text 流式语音 识别。 Speech-to-Text 提供多种识别 模型,包括标准模型和 增强型模型。Agent Assist 不限制您在语音 转录中使用哪些模型,但只有在与电话模型或 Chirp 3 模型搭配使用时,语音转录才在正式版 (GA) 级别 受支持。为了获得最佳转录质量,建议使用 Chirp 3 模型,但需视区域可用性而定。
前提条件
- 在 Google Cloud中创建项目。
- 启用 Dialogflow API。
- 与您的 Google 代表联系,确保您的账号有权访问 Speech-to-Text 增强型 模型。
创建对话配置文件
如需创建对话配置文件,请使用
Agent Assist 控制台,或直接对
ConversationProfile
资源调用 create 方法。
对于语音转录,我们建议您在对话中发送音频数据时,将
ConversationProfile.stt_config配置为默认InputAudioConfig,当发送
音频数据。

在对话运行时获取转录内容
如需在对话运行时获取转录内容,您需要为对话创建参与者,并为每位参与者发送音频数据。
创建参与者
参与者有三种类型。
如需详细了解其角色,请参阅参考
文档
。对 participant 调用 create 方法,并指定 role。只有 END_USER 或 HUMAN_AGENT 参与者可以调用 StreamingAnalyzeContent,这是获取转录内容所必需的。
发送音频数据并获取转录内容
您可以使用
StreamingAnalyzeContent
将参与者的音频发送给 Google 并获取转录内容,并使用
以下参数:
数据流中的第一个请求必须是
InputAudioConfig。 (此处配置的字段会替换ConversationProfile.stt_config中的相应设置。)在第二个请求之前,请勿发送任何音频输入。audioEncoding需要设置为AUDIO_ENCODING_LINEAR_16或AUDIO_ENCODING_MULAW。model:这是您要用于转录音频的 Speech-to-Text model。将此字段设置为chirp_3。变体不会影响转录质量,因此您可以将语音模型变体 留空,也可以选择使用最佳可用模型 。- 为了获得最佳转录质量,
singleUtterance应设置为false。如果singleUtterance为false,您不应期望END_OF_SINGLE_UTTERANCE,但您可以依赖StreamingAnalyzeContentResponse.recognition_result中的isFinal==true来半关闭数据流。 - 可选的其他参数:以下参数是
可选的。如需访问这些参数,请与您的 Google 代表联系。
languageCode:音频的language_code。默认值为en-US。alternativeLanguageCodes:此功能仅在 Chirp 3 模型中处于正式版 (GA) 级别。 音频中可能检测到的其他语言。 Agent Assist 使用language_code字段在音频开头自动检测语言,并在所有后续对话轮次中默认使用该语言。借助alternativeLanguageCodes字段,您可以为 Agent Assist 指定更多选项以供选择。phraseSets:Speech-to-Text 模型 自适应phraseSet资源名称。- 如需为 Chirp 3 模型配置自适应,请添加以换行符分隔的内嵌短语,不要使用英文逗号。
- 如需将模型自适应与其他模型(例如
telephony)搭配使用以进行语音转录,您必须先使用 Speech-to-Text API 创建phraseSet,然后在此处指定资源名称。
在发送包含音频载荷的第二个请求后,您应该会开始从数据流接收一些
StreamingAnalyzeContentResponses。- 当您在
StreamingAnalyzeContentResponse.recognition_result中看到is_final设置为true时,可以半关闭数据流(或在某些语言(例如 Python)中停止发送)。 - 半关闭数据流后,服务器会发回包含最终转录内容以及潜在 Dialogflow 建议或 Agent Assist 建议的响应。
- 当您在
您可以在以下位置找到最终转录内容:
StreamingAnalyzeContentResponse.message.content。- 如果您启用了 Pub/Sub 通知,还可以在 Pub/Sub 中看到 转录内容。
在前一个数据流关闭后,启动新的数据流。
- 重新发送音频:对于在响应的最后一个
speech_end_offset(其中is_final=true)之后生成到新数据流开始时间之间的音频数据,需要重新发送到StreamingAnalyzeContent,以获得最佳转录质量。
- 重新发送音频:对于在响应的最后一个
下图说明了数据流的工作原理。

流式识别请求代码示例
以下代码示例说明了如何发送流式转录请求。
Python
如需向 Agent Assist 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅 为本地开发环境设置身份验证。
请按照以下步骤查看 conversation_management 和 participant_management 的 Python 文件。
前往 Python 文档的 GitHub 代码库。
点击 Go to file ,然后输入文件名:
conversation_management或participant_management。点击 Enter 。
最佳做法
消息发送时间是指话语开始的时间。使用消息发送时间来确定联络中心显示或分析语音 消息的顺序。