2017-09-12 1 views
0

J'utilise Twilio Voice Gather verb pour recueillir user speech des réponses à certaines questions. Existe-t-il un moyen de réduire le temps d'attente avant d'appeler l'URL d'action? Selon mes tests, il semble que le comportement par défaut consiste à attendre plus de 6 secondes après la détection du silence pour chaque appel de collecte.Réduire le temps d'attente après le silence en utilisant la reconnaissance vocale twilio

var gather = new Gather(input: "speech", action: GetActionUrl(), language: Constants.Language, method: "POST", bargeIn: true, speechTimeout: 3, timeout: 3, partialResultCallback: "/RealTimeVoice", partialResultCallbackMethod: "GET"); 
gather.Say(promptMessage, language: Constants.Language, voice: Constants.Voice); 
response.Gather(gather); 
response.Redirect(GetRedirectUrl()); 
return TwiML(response, System.Text.Encoding.UTF8); 
+0

Pouvez-vous montrer du code? Utilisez-vous TWIML ou une lib? –

+0

J'utilise twilio pour asp.net mvc, cette application est connectée à un nombre twilio en utilisant webhooks. Ceci est l'extrait de code: 'var gather = new Rassembler (entrée:" speech ", action: GetActionUrl(), langue: Constantes.Langue, méthode:" POST ", bargeIn: true, speechTimeout: 3, timeout: 3, partialResultCallback: "/ RealTimeVoice", partialResultCallbackMethod: "GET"); gather.Say (promptMessage, langue: Constants.Language, voix: Constants.Voice); response.Gather (rassembler); response.Redirect (GetRedirectUrl()); return TwiML (response, System.Text.Encoding.UTF8); ' –

+0

J'essaierais de supprimer complètement' speechTimeout' et d'ajuster 'timeout' car cela devrait s'appliquer à dtmf et à speech. En outre, un autre essaie 'speechTimeout:" auto "' et voir comment cela se passe. –

Répondre

0

Twilio développeur évangéliste ici. Une fois le délai écoulé, Twilio doit utiliser l'enregistrement en direct pour générer le résultat final qui est publié sur votre URL action

Vous avez actuellement le speechTimeout à 3 secondes, il y aura donc un peu plus de temps pour obtenir le résultat final et faire la demande à votre URL.

Comme Alex l'a suggéré dans les commentaires, vous pouvez essayer speechTimeout: 'auto' qui est formé pour reconnaître les lacunes de la parole et soumettre ensuite.

Sinon, je note que vous avez également défini un partialResultCallback. Cela peut être utile pour interrompre l'appel une fois que vous avez obtenu le résultat souhaité sans attendre le résultat final. Si vous détectez le résultat que vous recherchez, vous pouvez utiliser le REST API to redirect the call pour la prochaine chose que vous devez faire au lieu d'attendre. Faites-moi savoir si cela aide du tout.

+0

On dirait qu'il y a un bug de sdk car le "speechTimeOut" attend un paramètre de type int donc je ne peux pas définir la valeur de la chaîne 'auto': S. J'ai essayé de supprimer les attributs timeOut mais en faisant cela, le temps d'attente augmente, et la définition d'une valeur inférieure à 3 secondes ne donne pas assez de temps à l'utilisateur pour répondre aux questions. Le problème n'est pas le moment où il vaut une réponse, le problème est le temps qu'il attend après que l'utilisateur donne une réponse. –

+0

Cela ressemble à un bug SDK, je vois que vous avez soulevé le problème sur GitHub, je vais essayer d'obtenir le plus rapidement possible. Si vous supprimez les deux attributs de délai d'attente, la valeur par défaut est 5 secondes, ce qui explique pourquoi cela prendrait plus de temps. – philnash