【问题标题】:Real-time speech recognition from a phone call recorded with Twillio使用 Twilio 录制的电话的实时语音识别
【发布时间】:2016-11-17 19:58:42
【问题描述】:

我目前正在使用 Twilio 拨打电话,我想添加一个语音识别元素,这样如果用户说出特定的短语,我的后端就可以采取特定的操作。如果您熟悉 Twilio,则类似于 Gather 动词。它需要是实时的,因为如果存在识别问题,系统会提示用户进行澄清。

【问题讨论】:

    标签: twilio speech-recognition speech-to-text


    【解决方案1】:

    要将语音识别添加到 Twilio Gather 动词,请将“speech”添加到 Gather 输入值,例如:input="dtmf speech"。在调用者说了些什么并且安静后,Twilio 服务器将语音转换为文本并将文本发送到操作 URL,然后等待响应指令。您的程序可以使用文本来响应您的选择。一种选择是让您的程序以更正指令(说动词)进行响应,并让调用者说更多内容,这将由您的操作 URL 再次处理。

    Twilio 收集包括语音识别实现的文档: https://www.twilio.com/docs/api/twiml/gather

    带有使用语音识别标识符的 Gather 动词的 TwiML 示例。

    <?xml version="1.0" encoding="UTF-8"?>
    <Response>
        <Gather input="dtmf speech" language="en-us"
              numDigits="1"
              timeout="6"
              action="http://hostname/processUserResponse.py">
            <Say voice="alice" language="en-CA">
                Okay, speech recognition test. Enter any digit or say something.
            </Say>
        </Gather>
        <Say voice="alice" language="en-CA">
            Waited to long to say something. Response canceled ....
        </Say>
    </Response>
    

    【讨论】:

    • 他们宣布这一消息时,我正在参加 Twilio 的会议!
    • 作为旧 c# 中官方 IVR 示例的一部分,我使用了Gather.InputEnum.DtmfSpeech,但这在 .net 核心中无效,因此我假设我只是指定(二进制组合)两者,但实际上它(input)取而代之的是一个枚举列表。
    【解决方案2】:

    这里简要介绍了这一点:https://stackoverflow.com/a/30224103/6189694

    您似乎必须设置电话会议,然后以静音用户身份加入以收听电话。

    【讨论】:

      【解决方案3】:

      我不相信有任何东西可以实时执行此操作。但是,您可以使用录音,将录音传递给另一个服务(想到 IBM 的 Watson Speech to Text),然后从那里处理它。它应该能够通过正确的工作流程相对快速地完成此操作。我从未使用过 Watson,只是看到它使用过。所以我不确定处理录音需要多长时间。我认为应该快速完成一两个单词的命令。

      抱歉,我无法提供更多指导。社区中的其他人可能有另一种方法。

      【讨论】:

        【解决方案4】:

        根据我上面的评论,使用枚举列表而不是官方旧 C# 示例中可用的组合枚举的 C# .net Core IVR 收集示例(还必须将 url.actionurl 转换为这个怪物):

        List<Gather.InputEnum> bothDtmfAndSpeech =
            new List<Gather.InputEnum>(2){
                Gather.InputEnum.Dtmf, Gather.InputEnum.Speech
            };
        var gather = new Gather(
             action: new Uri(Url.Action("Show", "Menu")),
             numDigits: 1, input:bothDtmfAndSpeech, bargeIn: true);
        

        【讨论】:

          【解决方案5】:

          IBM Watson Speech To Text 服务 (STT) 具有此功能,称为关键字识别 (https://www.ibm.com/watson/developercloud/doc/speech-to-text/output.shtml)。 Watson STT 将让您推送电话音频的实时流,不仅可以生成识别假设,还可以检测用户是否说出了事先指定的句子或命令。实际上有一个演示展示了这个功能,请尝试一下:

          https://speech-to-text-demo.mybluemix.net/

          【讨论】:

          • 问题是实时访问音频。我已经知道 Watson、Bing 和 Google 的 Speech-to-Text 功能可以在通话录音后完成,但这还不够。我需要将来自呼叫者的实时音频路由到引擎。
          • 所以你的问题是关于在通话过程中获取音频的实时流与在通话后获取录音,好的,很抱歉造成误解
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多