webkitSpeechRecognition está "rezagado" al recopilar resultados
Tenía ganas de probar elWeb Speech API. Copié el código exactamente del artículo, y tengo un problema en el que hablas, pero no pasa nada hasta que vuelves a hablar.
[Violín:http://jsfiddle.net/w75v2tm5/]
JS:
if (!('webkitSpeechRecognition' in window)) {
//handle error stuff here...
} else {
var recognition = new webkitSpeechRecognition();
recognition.continuous = true;
recognition.interimResults = false;
recognition.start();
var final_transcript = '';
recognition.onresult = function (event) {
var interim_transcript = '';
if (typeof (event.results) == 'undefined') {
recognition.onend = null;
recognition.stop();
upgrade();
return;
}
for (var i = event.resultIndex; i < event.results.length; ++i) {
if (event.results[i].isFinal) {
final_transcript += event.results[i][0].transcript;
} else {
interim_transcript += event.results[i][0].transcript;
}
}
document.getElementsByTagName('div')[0].innerText = final_transcript;
};
}
Por ejemplo, si dijera "Hola mundo", el <div> que configuré para mostrar los resultados no mostraría "Hola mundo" hasta que dijera algo más o emitiera un sonido. Pero si dijera algo más, ESO no se mostraría hasta que dijera otra cosa OTRA VEZ.
La variable "final_transcript" contiene el resultado ANTERIOR, y no lo que acabo de decir. Está apagado por solo 1.
Para darte una mejor idea ...
Yo: "Hola mundo"
final_transcript = '';
[Espere...]
Yo: "Prueba"
final_transcript = 'Hola mundo'
Y esto simplemente continúa. El código no puede transcribir lo que estoy diciendo como lo estoy diciendo. Muy raro.
¿Alguna idea de por qué esto podría ser?