首页 > 解决方案 > 使用 Google SR 插件和动态语音上下文来提高 Google Cloud Speech-to-text API 和 Dialogflow 的性能

问题描述

任务:我们正在尝试构建一个 Dialogflow 代理,该代理将通过我们的 Cisco 电话堆栈与呼叫者进行交互。我们将尝试从调用者那里收集字母数字凭据。

这是我们提出的架构:

在此处输入图像描述

问题:为了将文本输入发送到 Dialogflow,我们使用 Google Cloud 的 Speech-to-Text (STT) API 将调用者的音频转换为文本。但是,STT API 并不总是按预期执行。例如,如果呼叫者希望说他/她的出生日期是04-04-90,转录的音频可能会返回为oh for oh 490然而,通过向 API 传递短语提示可以大大改善转录的音频,因此我们需要根据场景动态发送这些提示。不幸的是,我们很难理解如何通过 UniMRCP 服务器动态传递这些短语提示,特别是Google Speech Recognition 插件

问题:Google 语音识别手册的第 5.2 节概述了使用动态语音上下文。

提供的示例是:

<grammar mode="voice" root="booking" version="1.0" xml:lang="en-US" xmlns="http://www.w3.org/2001/06/grammar">
    <meta name="scope" content="hint"/>
    <rule id="booking">
        <one-of>
            <item> 04 04 1990</item>
            <item> 04 04 90</item>
            <item> April 4th 1990</item>
        </one-of>
    </rule>
</grammar>

这是否仍然像内置语法builtin:speech/transcribe一样转录所有用户输入?

例如,如果我要说March 5th 1980,Google 的 STT 会返回March 5th 1980,还是只返回提供的项目之一?

明确地说,我希望 Google 的 STT 能够返回的不仅仅是提供的项目,因此如果用户说March 5th 1980,我希望通过 UniMRCP、VBB、CVP 返回并传递给 Dialogflow。 有人告诉我,即使 STT 返回March 5th 1980CVP 或语音浏览器也可能会将其评估为“不匹配”。

标签: dialogflow-esspeech-to-textciscogoogle-cloud-speechunimrcp

解决方案


Dialogflow 接受的不仅仅是文本输入。

它可以基于音频音频流进行意图检测。


推荐阅读