4bc22bd00c89e5702934a0007b556c8c2656afea
El troceo lo causaba el keepalive del sintetizador: corría cada 10 segundos sin verificar si estaba hablando, y pause() a mitad de frase la corta. Como un anuncio con nombre y destino supera los 10 segundos, lo alcanzaba siempre. Ahora solo actúa con el sintetizador en reposo, que es para lo que existe: evitar que Chrome lo suspenda tras un rato sin uso. El cartel se cerraba a los 5 segundos aunque la voz siguiera sonando, y al cerrarse pasaba al siguiente de la cola, que cancelaba el anuncio en curso. Si dos pacientes se llamaban seguido, el primero quedaba a media frase. Ahora se cierra cuando terminó de hablar y se cumplió el mínimo visual, con una red de seguridad por si el navegador no emite el evento de fin. Sobre la demora: se quita la espera fija de 300 ms antes de hablar —solo se mantiene, y reducida, cuando de verdad hay que cancelar algo en curso— y el sondeo baja de 2 s a 1 s. El retraso desde el clic pasa de 0,3–2,3 s a 0–1 s. La velocidad sube de 0.85 a 0.95: acorta el anuncio sin perder claridad. Validado con una simulación del reloj y del sintetizador: reproduce el corte con el código anterior y no ocurre con el nuevo. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Description
No description provided
5.8 MiB
Languages
PHP
84.8%
JavaScript
6.4%
HTML
5.9%
Shell
1.4%
CSS
0.9%
Other
0.5%