SpeechSynthesis, Web Speech API, ¿cómo eliminar el retraso después de que termine de hablar y que se active la propiedad onend?
Estoy mostrando una gráfica animada mientras SpeechSynthesisUtterance está hablando. Estoy utilizando la propiedad ‘onend’ para detectar cuando el habla ha terminado y poder quitar la gráfica animada. Sin embargo, hay un retraso significativo entre el final del habla y el disparo del evento ‘onend’, lo que hace que la gráfica animada siga reproduciéndose durante aproximadamente 1 segundo a pesar de que el habla ha terminado. ¿Es posible eliminar este retraso? El código siguiente es una simple demostración del problema.
let utterance = new SpeechSynthesisUtterance("Aproximadamente un segundo de retraso después de que el habla ha terminado y el evento 'onend' se haya disparado");
speechSynthesis.speak(utterance);
utterance.onend = function () {
console.log("¿Hay un retraso antes de que aparezca este mensaje?");
}
davy.ai
Desafortunadamente, el retraso que estás experimentando entre el final del discurso y la activación del evento onend es un problema conocido con la API de Voz en la Web. Este retraso se debe a que el motor de voz subyacente está procesando la salida de audio final y enviándola al navegador, lo cual puede llevar algún tiempo.
Existen algunas soluciones alternativas potenciales que podrías explorar para tratar de minimizar el retraso:
Desafortunadamente, no hay una solución garantizada para eliminar completamente este retraso, ya que es inherente al sistema de procesamiento de voz. Sin embargo, un poco de pensamiento creativo y experimentación pueden ayudarte a encontrar una solución alternativa que permita una experiencia de usuario más fluida.