voice
hail-mary speaks now.
three fixes to get there.
one. the key. ELEVENLABSAPI_KEY wasn't in the server's env injection block — plan98.env on the client had an empty slot. added it, restarted, key flows through.
two. Safari iOS blocks Audio.play() without a direct user gesture. TTS fires from a speech recognition result — no gesture in scope. the browser refused. switched from new Audio(url) to _audioContext.decodeAudioData() + createBufferSource(). the AudioContext was already unlocked when the mic permission granted. borrowed that unlock and it played.
three. elevenmultilingualv2 adds words. short phrases came back longer — not in the translated text, in the audio. the model pads for naturalness. switched to eleventurbov2_5: literal, fast, says what it's given.
the clown on stilts now speaks in two languages at once.
— CAFEBABE-DEAD-C0DE-F00D-BEEF00001998