Аккаунт в твилио не имеет функции преобразования текста в текст - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть номер счета в твилио. Я хочу знать, отключена ли функция распознавания речи для учетных записей.

Я пытался уловить речь, используя глагол Gather. но это не работает.

Спасибо!

1 Ответ

0 голосов
/ 30 апреля 2018

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

Я думаю, что проблема заключается в том, что <Gather> не настроен на прослушивание звонящих, если они начинают говорить во время части разговора <Say>.

Ваш TwiML из кода, которым вы поделились, выглядит примерно так:

<Response>
  <Say>Welcome to Twilio, please tell us why you're calling</Say>
  <Gather input="speech" timeout="5" action="https://f2b4fbc1.ngrok.io/asr/test"></Gather>
</Response>

Итак, <Gather> начинает слушать только после завершения <Say>.

Вместо этого вы должны вкладывать <Say> в <Gather>, чтобы сделать TwiML следующим образом:

<Response>
  <Gather input="speech" timeout="5" action="https://f2b4fbc1.ngrok.io/asr/test">
    <Say>Welcome to Twilio, please tell us why you're calling</Say>
  </Gather>
</Response>

Код для этого должен выглядеть так:

Say say = new Say.Builder("Welcome to Twilio, please tell us why you're calling").build();  
Gather gather = new Gather.Builder().input(Gather.Input.SPEECH).timeout(5).action("https://f2b4fbc1.ngrok.io/asr/test").say(say).build();       
VoiceResponse response = new VoiceResponse.Builder().gather(gather).build();

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

[править]

Я также считаю, что вам нужно установить тип содержимого при возврате XML. Я не разработчик Spring / Java, но вот что я думаю, вам нужно изменить

@RequestMapping(method = RequestMethod.POST, value = "/recordTheSpeech", produces = MediaType.APPLICATION_XML_VALUE)
public ResponseEntity<String> recordTheSpeech() throws IOException {
    Say say = new Say.Builder("Welcome to Twilio, please tell us why you're calling").build();
    Gather gather = new Gather.Builder().input(Gather.Input.SPEECH).timeout(5).action("https://f2b4fbc1.ngrok.io/asr/test").say(say).build();
    VoiceResponse response = new VoiceResponse.Builder().gather(gather).build();

    return new ResponseEntity.ok().body(response.toXml());
}
...