Твилио, соберись, как я могу сказать, собираться, подождать некоторое время, прежде чем начнется речь, и начать собирать - PullRequest
0 голосов
/ 23 сентября 2019

ТАК для принятия входящего звонка и сбора речи.Вот пример кода, который у меня есть, с использованием Python и Flask.

# more code above
resp.gather(input='speech dtmf', timeout=3, speech_timeout=4, action='/gather', method='POST')
resp.redirect('/gather')

# more code in between

@app.route("/gather", methods=['GET', 'POST'])
def gather():
    #print("gather: Entry ")
    resp = VoiceResponse()
    sid = request.form['CallSid']
    SpeechResult = request.values.get("SpeechResult", "")

    params = urllib.parse.urlencode({"SpeechResult": SpeechResult})
    print("0 gather: " + str(params).lower())

Однако, вызов этого результата приводит к:

   0 gather: speechresult=

Когда я сам вызвал приложение, я заметилон ждет 5 секунд, прежде чем запустить приглашение.Как я могу сказать, что сбор начинается за 5 секунд до сбора.

Я пытался добавить time.slpeep(5) до resp.gather ... но это не сработало.

1 Ответ

0 голосов
/ 24 сентября 2019

Разработчик Twilio здесь.

Я не уверен, о чем вы тут говорите.

Что мне не хватает, так это то, что ваши начальные <Gather>Похоже, не просил ввода от пользователя.Это приведет к ~ 5 секундам молчания, в то время как <Gather> ждет ввода, затем сдается и переходит к конечной точке /gather, ничего не указывая в SpeechResult.

Если вы хотите сказатьчто-то, чтобы пользователь попросил их ответить, вы должны использовать <Say> внутри вашего <Gather>, например:

gather = resp.gather(input='speech dtmf', timeout=3, speech_timeout=4, action='/gather', method='POST')
gather.say('Please answer the question')

Вы также можете использовать <Play> и <Pause> в пределах <Gather>.

Дайте мне знать, если это вообще поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...