From 8fa906b5592d9ee110aa16a18ed5f57829a5c835 Mon Sep 17 00:00:00 2001 From: Nate Emmert Date: Tue, 21 Jul 2026 09:38:20 -0400 Subject: [PATCH] Fix speechSynthesis cancel before speak to unblock audio Co-Authored-By: Claude Sonnet 4.6 --- public/app.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/public/app.js b/public/app.js index 3c53566..86c4a2b 100644 --- a/public/app.js +++ b/public/app.js @@ -133,7 +133,13 @@ async function ttsDrain() { } else { const u = new SpeechSynthesisUtterance(text); u.rate = 0.85; u.lang = 'en-US'; - await new Promise((resolve) => { u.onend = resolve; u.onerror = resolve; speechSynthesis.speak(u); }); + speechSynthesis.cancel(); + await new Promise((resolve) => { + u.onend = resolve; + u.onerror = resolve; + // some browsers need a short delay after cancel() before speak() works + setTimeout(() => speechSynthesis.speak(u), 50); + }); } ttsDrain(); }