我有一个twilio路径帐号。 我想知道是否为跟踪帐户禁用了语音识别功能。
我尝试使用Gather动词捕捉语音。但它不起作用。
谢谢!
答案 0 :(得分:0)
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>
完成后才开始收听。
相反,你应nest the <Say>
within the <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());
}