关于 IBM Voice Gateway
IBM® Voice Gateway 支持通过电话与认知自助服务代理程序进行直接语音交互,或者能够转录呼叫者与代理程序之间的电话呼叫,以便在处理对话时能够分析代理程序的实时反馈。Voice Gateway 使用会话启动协议 (SIP) 来编排 Watson 服务并将其与公共或专用电话网络集成。
使用 IBM Voice Gateway 的方式
通过 IBM Voice Gateway,可以设置自助服务代理程序和代理程序助手。
-
自助服务器代理程序类似于交互式语音响应 (IVR) 系统,该系统提供了一种自动化方法来通过电话呼叫使用音频与呼叫者沟通。通过 Watson,自助服务代理程序以一种更像交谈的方式来沟通,可处理传统 IVR 难以处理的复杂交互。
-
代理程序助手提供了一种通过将语音流转换为文本,对呼叫者与实时人工代理之间的通话运行实时分析的方法。然后,可以通过 Voice Gateway 外部的服务(例如 Watson Natural Language Classifier 服务和 Watson Discovery 服务)来处理这些文本发声,从而生成可供代理程序即用于帮助呼叫者的有用信息。请注意,本文档中未涵盖与特定分析服务的集成。
您选择的实施类型将确定如何设置 Voice Gateway。在以下部分中了解关于以下每个实施的更多信息。
自助服务代理程序
利用自助服务代理程序,客户将接受指令通过 Voice Gateway 与您训练为提供特定响应的 Watson 服务进行交互。也可以选择允许 Watson 服务经由 API 发起呼叫转接来选择接入呼叫中心代理程序。

在后端,自助服务由以下组件组成,每个组件都扮演不同的角色:
- 核心功能:IBM Voice Gateway,用于编排和连接所有其他组件
- 代理程序的语音:支持与呼叫者的语音交互的 Watson 服务
- Speech to Text:将呼叫者的音频转换为文本
- Watson Assistant:分析文本,将其映射到意图或功能,并根据对话提供响应
- Text to Speech:将响应转换为语音音频
- 电话网络连接:SIP 干线或会话边界控制器,使客户能够通过电话网络呼叫 Voice Gateway
- 通过 API 进行的定制:可选服务编排引擎 (SOE),其位于 Watson Assistant 或 Virtual Agent 与 Voice Gateway 之间,以便您可以进一步通过您自己的第三方 API 来定制环境
- 分析和转录:可选 REST 服务器,其存储其中包含用于监视、日志记录和进一步分析的数据的事件。
Watson 服务编排
下图显示了 Voice Gateway 如何编排各种 Watson 服务来启用自助服务代理程序。在几秒钟之内,发声在这些服务之间流动以产生与呼叫者的自然音对话。

- 呼叫者提出请求。
- 请求将被传送到 Speech to Text 服务。
- 返回文本话语。
- 文本将以消息请求的形式发送到 Watson Assistant 或 Virtual Agent。
- 返回消息响应。
- 响应文本将发送到 Text to Speech 服务。
- 返回合成音频。
- Voice Gateway 将音频响应传送到呼叫者。
通过服务编排引擎的对话流程
对于自助服务代理程序,可以有选择地将服务编排引擎 (SOE) 包含到您的环境,从而使您能够将自己的定制层添加到 Voice Gateway 和 Watson Assistant 服务之间的通信。Voice Gateway 和 Watson Assistant 通过 Watson Assistant REST API 进行通信,仅使用 MessageRequest 方法来发送请求数据,并接收对应的 JSON 响应。服务编排引擎充当 Watson Assistant
的代理,使用第三方 API 来拦截消息请求和响应并进行修改。

对于 Voice Gateway 的生产部署,出于以下原因,可能想要合并服务编排引擎:
- 取消识别请求以在将个人信息(例如 PHI、PII 和 PCI)发送到 Watson Assistant 之前移除这些信息
- 个性化来自 Watson Assistant 的响应,例如,通过使用客户位置信息来提供个人天气预测
- 支持电话功能,例如包含呼叫者标识或收集账户编号的 DTMF 位
- 使用 API 定制与客户的交互
- 使用 Voice Gateway 状态变量,例如完成所需时间较长的事务
- 使用 DTMF 或生物识别来集成语音安全性
要了解有关如何实施服务编排引擎的更多信息,请参阅通过服务编排引擎进行连接。
自助服务代理程序的功能
- 打断:如果 Watson 发送到呼叫者的发声与对话的上下文不相关,那么呼叫者可中断 Watson。
- 呼叫转接:可通过使用操作标记示意 Gateway 从 Watson Assistant 服务启动转接。为了执行转接,Gateway 使用 SIP REFER 请求,如 RFC 5589 的第 6.1 部分中所定义。
- 呼叫挂断:可通过使用操作标记示意 Gateway 从 Watson Assistant 服务终止呼叫。
- 暂挂时播放音乐:Gateway 可播放 Watson Assistant 指定的音频文件一段时间,或播放到 Watson Assistant 中的处理完成为止。
- SSML 标记:语音合成标记语言 (SSML) 标记用于控制 Text to Speech 将发声合成为音频的方式。Gateway 支持在从 Watson Assistant 接收到这些标记后将这些标记传递到 Text to Speech。
- 等待时间审计:Gateway 监视等待时间,这是 Watson 与呼叫者的通信性能的关键指标。因为 Gateway 编排了多个 Watson 服务,所以能够识别这些服务中的哪些服务响应很慢就非常关键,而响应很慢将最终导致较长时间的语音响应延迟以及与呼叫者的对话不自然。
- 上下文映射:当转接到 Watson 之外时,Gateway 为 Watson Assistant 提供了一种方法来获取 SIP REFER 消息中嵌入的元数据。元数据可用于将对话期间保存的上下文映射回实时代理程序会话。
- 音频录制:Gateway 可配置为以 16 位单声道 (mono) WAV 文件的格式录制音频对话。这些 WAV 文件存储在已配置的 Docker 卷上,而且必须通过某种外部方式(例如 FTP)才能检索到。通常,此功能用于收集 Speech to Text 服务的训练数据。
- DTMF 支持:Gateway 支持 RFC 4733:RTP Payload for DTMF Digits, Telephony Tones, and Telephony Signals。请参阅收集双音多频 (DTMF) 响应。
- 加入白名单:为了防止“拒绝服务”攻击,Gateway 支持配置白名单的功能。该白名单支持根据 SIP to URI 和 SIP from URI 来过滤入站 SIP INVITE 请求。
代理程序助手
通过 Voice Gateway,可使用 SIPREC 协议实时转录来自活动电话呼叫的呼叫者和被呼叫者(例如联系中心代理)音频。该功能需要能够将媒体派生到 Voice Gateway(它充当 SIPREC 会话录制服务器 (SRS))的会话边界控制器 (SBC)。

代理程序助手的功能
- 音频录制:Gateway 可配置为以 16 位单声道 (mono) WAV 文件的格式录制音频对话。这些 WAV 文件存储在已配置的 Docker 卷上,而且必须通过某种外部方式(例如 FTP)才能检索到。通常,此功能用于收集 Speech to Text 服务的训练数据。
- 加入白名单:为了防止“拒绝服务”攻击,Gateway 支持配置白名单的功能。该白名单支持根据 SIP to URI 和 SIP from URI 来过滤入站 SIP INVITE 请求。
体系结构
IBM Voice Gateway 是自助服务代理程序和代理程序助手的整体体系结构中的多个组件之一。所使用的体系结构和技术根据实施的不同而有所不同。对于自助服务代理程序,呼叫者可通过 SIP 干线直接连接到 Voice Gateway,或者可通过会话边界控制器 (SBC) 间接连接到 Voice Gateway。
Voice Gateway 体系结构
Voice Gateway 由两个单独的微服务 SIP Orchestrator 和 Media Relay 组成。这些微服务以两个单独的 Docker 映像的形式交付。
- SIP Orchestrator:编排 Watson Assistant 服务和 Media Relay
- 在 WebSphere Application Server Liberty 上运行
- 充当 SIP 用户代理程序服务器 (UAS) 或 SIPREC 会话录制服务器 (SRS)
- 以 Java 构建
- 以 WebSphere Liberty 用户功能的形式交付
- 通过 Docker 环境变量配置
- Media Relay:处理 Voice Gateway 的所有媒体处理
- 在 Node.js 上运行
- 处理入站和出站 RTP 音频
- 编排 Watson Speech to Text (STT) 和 Text to Speech (TTS) 服务
- 使用“节点流”体系结构以 JavaScript 构建
- 以节点模块的形式交付
- 通过 Docker 环境变量配置
下图在高级别显示了这两个微服务如何组合起来提供 IBM Voice Gateway 的完整功能:

使用 MRCP 服务器连接到服务
除使用 IBM® Speech to Text、IBM® Text to Speech 或 IBM® Voice Gateway Speech to Text Adapter 以外,Voice Gateway 还支持媒体资源控制协议 V2 (MRCPv2) 连接。您可以混用由 Voice Gateway 协调的第三方语音识别和语音合成服务。请参阅使用 MRCPv2 配置服务
使用 SIP 干线时的自助服务代理程序体系结构
通过 SIP 干线连接到自助服务代理程序时,必须将 SIP 干线配置为基于其 IP 地址和 SIP 端口将 INVITE 请求转发至 Voice Gateway。

SIP 干线可用于通过从公用电话网络呼叫 Watson 服务来快速地设置和测试 Voice Gateway。在此情况下,只要将 Voice Gateway 部署到公共云 Docker 容器服务(例如 IBM® Cloud Kubernetes Service)即可。本地企业集成通常需要您配置会话边界控制器 (SBC),这将在下一个部分中进行讨论。
使用 SBC 时的自助服务代理程序体系结构
会话边界控制器通常用于您希望能够将客户转接到实时联系中心代理的情况。在通信通过会话边界控制器 (SBC) 流动的自助服务代理程序中,需要将 SBC 配置为基于其 IP 地址和 SIP 端口将呼叫转发至 Voice Gateway。请注意,要启用呼叫转接,SBC 必须仍留在呼叫路径中,以便它可处理 SIP REFER 消息:

通过 MCU 举行呼叫会议时的代理程序助手体系结构
对于代理程序助手,必须与 Voice Gateway 共享来自客户和代理人之间的呼叫的媒体,以便其可以转录呼叫。将呼叫媒体路由至 Voice Gateway 的一种方法是通过会议将其转换为现行呼叫。通常,此会议需要多点控制单元 (MCU) 或可以充当 MCU 的呼叫中的参与者。Voice Gateway 发送呼叫音频进行语音转文字处理,然后将返回的转录发送到已配置的报告 REST 服务器。

通过 SBC 派生呼叫时的代理程序助手体系结构
代理程序助手的另一个选项是将呼叫从会话边界控制器 (SBC) 派生至充当 SIPREC 会话录制服务器 (SRS) 的 Voice Gateway。Voice Gateway 发送呼叫音频进行语音转文字处理,然后将返回的转录发送到 REST 服务器或支持 REST API 的分析网关。

受支持的语言
Voice Gateway 面向 Watson 语音服务支持以下语言:
- 英语(英国)
- 英语(美国)
- 日语
- 葡萄牙语(巴西)
- 西班牙语
IBM® Voice Gateway Speech to Text Adapter 和 IBM® Voice Gateway Text to Speech Adapter 使您能够通过 Google Cloud Speech API 和 Google Cloud Text-to-Speech API 对自助服务代理程序使用其他语言。有关更多信息,请参阅集成第三方语音服务。通过使用语音转文字适配器和文字转语音适配器,可以将 Voice Gateway 部署扩展为支持各种语言,包括如下语言:
- 法语
- 德语
- 意大利语
- 朝鲜语
要使某种语言受支持,与 Voice Gateway 集成的所有服务都必须支持该语言,包括第三方语音服务和 IBM Watson™ Assistant 服务。有关更多信息,请参阅 Watson Assistant 服务支持的语言。要支持其他语言,可以创建定制语音适配器,可以使用这些适配器将第三方语音识别(语音转文字)与语音合成(文字转语音)服务集成。 语音适配器样本可以帮助开始创建语音适配器。
注意:IBM Voice Gateway 不向任何外部服务提供许可证,包括 Watson 服务或第三方语音服务。
受支持的协议
- SIP/SIPS:网关支持从企业会话边界控制器 (SBC) 或从多点控制单元 (MCU) 通过 SIP 干线连接到 Watson,如同它是 SIP 端点一样。
- SIPREC:会话边界控制器可以使用 SIPREC 将语音流转换为文本进行分析处理,从而通过 Voice Gateway 将来自客户和代理程序之间的电话呼叫的媒体派生至 Watson。该协议用于代理程序助手。
- RTP:对于音频媒体流,支持实时传输协议 (RTP)。Voice Gateway 支持以下音频编码:
- G.711:速度为 64 kbps 的 G.711,同时符合 PCMU(脉冲编码调制 μ 律)和 PCMA(脉冲编码调制 a 律)标准。
- G.722:速度为 64 kbps 的 G.722。
- G.729:G.729 附录 A 和 B(通过使用外部编码解码器服务)
- RTCP:支持 RTP 控制协议 (RTCP),以在 V1.0.0.5 和更高版本中为 RTP 媒体流提供服务质量 (QoS) 统计信息。
- HTTP/REST:很多报告事件都支持这些格式,比如呼叫详细记录 (CDR)、Watson Assistant 轮次事件和转录事件等等。
- MRCPv2:网关支持使用媒体资源控制协议 V2 (MRCPv2) 来连接到语音转文字和文字转语音服务。
系统需求
要在生产环境中部署 Voice Gateway,需要以下最低软件和硬件级别。
| 平台 | 操作系统 |
|---|---|
| Linux® 64 位 | Red Hat Enterprise Linux (RHEL) 7.3、7.4 和 7.5 |
| Ubuntu 16.04 LTS |
由于 IBM Voice Gateway 作为一组 Docker 映像进行分发,因此您也可以在支持 Docker 和 Kubernetes 的其他平台上部署 Voice Gateway。例如,可以使用 Docker for Windows 和 Docker Machine 在 64 位 Windows 环境上部署 Voice Gateway。
| 环境 | 最低版本 |
|---|---|
| Docker | Community Edition 或 Enterprise Edition V1.13 或更高版本 注:不支持 Swarm 方式 |
| Kubernetes | V1.7.3 或更高版本 |
| IBM Cloud Private | V2.1.0 或更高版本 |
| IBM Cloud Kubernetes Service | 不适用 - 基于云的服务 |
| 硬件 | 最低需求 |
|---|---|
| 虚拟机 RAM | 8 千兆字节 (GB) |
| 虚拟 CPU (vCPU) | 具有 x86-64 体系结构的 2 个 vCPU,时钟速度为 2.4 GHz 注意:根据并发呼叫的预期数量及其他因素而异 |
| 存储器 | 50 千兆字节 (GB) 注意:呼叫录制和日志存储设置会显著影响存储需求 |
达到您要求的性能级别需要的确切虚拟化硬件根据多种因素而差异巨大,包括预期的并发呼叫数量、产品配置和 Watson Assistant 对话。如果需要帮助规划 Voice Gateway 环境,请与产品团队联系,如获取帮助中所述。