任务:我们正在尝试构建一个对话流代理,它将通过我们的Cisco电话堆栈与呼叫者交互。我们将尝试从调用方收集字母数字凭据。
以下是我们建议的架构:

问题:为了向对话框发送文本输入,我们使用Google的语音到文本(STT) API将调用者的音频转换为文本。但是,STT并不总是按照需要执行。例如,如果打电话的人想说他/她的道布是04-04-90,那么转录的音频可能会以oh for oh 490的形式返回。然而,通过将短语提示传递给API,可以极大地改进转录的音频,因此我们需要根据场景动态地发送这些提示。不幸的是,我们很难理解如何动态地通过UniMRCP服务器,特别是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,,谷歌的STT会返回March 5th 1980,还是只返回提供的项目之一?
为了明确起见,我希望Google的STT能够返回不仅仅是提供的项目,所以如果用户说March 5th 1980,,我希望通过UniMRCP、VBB、CVP返回,并传递给对话框。我被告知,即使STT返回了March 5th 1980 ,CVP或语音浏览器也有可能将其评估为“不匹配”。
https://stackoverflow.com/questions/54428919
复制相似问题