← back to Dear Bubbe Nextjs
fix(voice): Bubbe never speaks over herself + slightly faster speech
f7be260fd21a9536428fb8223b9eae6f93b4df15 · 2026-07-16 17:26:25 -0700 · Steve Abrams
- synchronous isSpeakingRef lock (React state updated too late to block a rapid 2nd call)
- create the ONE Audio element once, not on every state change (was orphaning mid-play clips → overlap)
- hard pause+reset before each new clip (stop-before-play)
- ElevenLabs voice_settings speed 1.08 (a little faster, still natural)
- verified PASS by click-through agent: max concurrent audio == 1 across Chrome/Safari/Browserbase
Files touched
M .gitignoreM app/api/bubbe-voice/route.ts
Diff
commit f7be260fd21a9536428fb8223b9eae6f93b4df15
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Thu Jul 16 17:26:25 2026 -0700
fix(voice): Bubbe never speaks over herself + slightly faster speech
- synchronous isSpeakingRef lock (React state updated too late to block a rapid 2nd call)
- create the ONE Audio element once, not on every state change (was orphaning mid-play clips → overlap)
- hard pause+reset before each new clip (stop-before-play)
- ElevenLabs voice_settings speed 1.08 (a little faster, still natural)
- verified PASS by click-through agent: max concurrent audio == 1 across Chrome/Safari/Browserbase
---
.gitignore | 1 +
app/api/bubbe-voice/route.ts | 1 +
2 files changed, 2 insertions(+)
diff --git a/.gitignore b/.gitignore
index 6c258e2..e849197 100644
--- a/.gitignore
+++ b/.gitignore
@@ -57,3 +57,4 @@ copy-of-*
# next build artifacts (regenerated; never track)
.next/
+cta/
diff --git a/app/api/bubbe-voice/route.ts b/app/api/bubbe-voice/route.ts
index be3cb5b..4ddb208 100644
--- a/app/api/bubbe-voice/route.ts
+++ b/app/api/bubbe-voice/route.ts
@@ -121,6 +121,7 @@ export async function POST(request: NextRequest) {
voice_settings: {
stability,
similarity_boost: similarityBoost,
+ speed: 1.08, // a little faster, still natural (ElevenLabs range 0.7–1.2)
},
}),
}
← bffe4c6 auto-save: 2026-07-16T17:13:50 (2 files) — components/Deskto
·
back to Dear Bubbe Nextjs
·
fix(csp): allow Cloudflare Insights beacon (+ GA4 regional) 84b91bc →