Twilio的语音请求参数

时间:2017-06-25 16:15:28

标签: python flask twilio

The documentation for the <Gather> tag (Python)说:

  

如果您选择从呼叫者收集数字,Twilio的请求   您的应用程序将包含数字参数,其中包含哪个   您的来电者在。

期间输入的号码

但是,如果选择收集语音以便能够根据用户发送的语音分支呼叫逻辑,那么我无法找到参数。

我尝试了演讲演讲,但没有成功。

我的代码:

from flask import Flask, request
from TwilioPhoneCall import app
from twilio.twiml.voice_response import VoiceResponse, Gather, Say
from twilio.twiml.messaging_response import MessagingResponse, Message


@app.route('/', methods=['GET', 'POST'])
def message():
    resp = VoiceResponse()

    gather = Gather(input='speech', timeout=3, hints='yes, no', action='/gather')
    gather.say('Hi, do you wanna go out tonight?'+
               ' Answer yes or no.')
    resp.append(gather)

    resp.redirect('/')

    return str(resp)

@app.route('/gather', methods=['GET', 'POST'])
def gather():
     resp = VoiceResponse()

     if 'Speech' in request.values:
         choice = request.values['Speech']

         if choice == 'yes':
             resp.say('Yay! See you later!')
             resp.sms('She replied yes!', to='myphonenumber')
             return str(resp)

         elif choice == 'no':
             resp.say('Oh... Ok.')
             resp.sms('She replied no.', to='myphonenumber')
             return str(resp)

          else:
              resp.say('Sorry, but the options are yes or no.')

    resp.redirect('/')

    return str(resp)

我已经尝试使用dtmf(Digits)完全相同的代码并且工作正常,我的问题是语音:

在用户发言后,程序将循环回到第一个gather.say,就好像没有输入一样。

2 个答案:

答案 0 :(得分:2)

正确的参数名称为Speech而不是 @app.route('/gather', methods=['GET', 'POST']) def gather(): resp = VoiceResponse() if 'SpeechResult' in request.values: choice = request.values['SpeechResult'] if choice == 'Yes.': resp.say('Yay! See you later!') resp.sms('She replied yes!', to='myphonenumber') return str(resp) elif choice == 'No.': resp.say('Oh... Ok.') resp.sms('She replied no.', to='myphonenumber') return str(resp) else: resp.say('Sorry, but the options are yes or no.') resp.redirect('/') return str(resp)

{{1}}

Twilio博客: 介绍语音识别 https://www.twilio.com/blog/2017/05/introducing-speech-recognition.html

答案 1 :(得分:2)

[SpeechResult]是您要查找的包含转录文本的返回值。

Twilio还会返回[置信度],得分在0到1之间(根据我的经验计算为8位小数),可能表示转录的准确性。