ELSA's loop is simple to describe: show a phrase, record you, score each sound, point at the ones to fix. Cloud speech services now return phoneme-level scores, so an agent can build a personal drill app in a weekend on Azure's pronunciation assessment, with a language model writing phrases from your own text. What you don't get is ELSA's own recognition and scoring models, built on voice data from speakers with various accents, the 8,000-plus lessons and structured courses, exam preparation and the AI role plays. The build is a practice aid, and its scores will not match ELSA's.
Before you buildCheck Mimora first: it scores your pronunciation offline and for free. ELSA's own free plan also exists, with limits we couldn't read.
Build me a personal English pronunciation coach to replace ELSA Speak. Requirements: - Python 3.12 + FastAPI with a single page of vanilla JS. `python -m coach` serves http://127.0.0.1:4870. The page records from the microphone with MediaRecorder and the server converts each take to 16 kHz mono WAV with ffmpeg. Cap a take at 30 seconds. - Scoring: Azure AI Speech pronunciation assessment (`azure-cognitiveservices-speech`) with AZURE_SPEECH_KEY and AZURE_SPEECH_REGION in .env. Pass the reference text, use phoneme granularity with prosody on, and let settings pick en-US or en-GB. Keep the raw JSON of every attempt. - Phrases: paste any text (an email, a script) and the app splits it into sentences. If an OpenAI-compatible endpoint is set in .env, it can write extra phrases that reuse words I got wrong. Model audio comes from Piper (`piper-tts`) and is cached in ./data/audio/. - Attempt view: colour each word by accuracy, click a word for its phonemes with expected and heard sounds, show accuracy, fluency, completeness and prosody scores, and play my take next to the model audio. - Storage: SQLite (sqlite3 module) at ./data/coach.db with phrases, attempts and a running average per phoneme. Takes stay in ./data/takes/ until I delete them from the page. - Drills: a Weak sounds page lists the 10 phonemes with the lowest average over the last 30 attempts; Drill builds a session of 10 phrases that contain them, least recently seen first. - Progress: minutes practised per day, a 14-day chart and a streak counter. - Free-tier guard: DAILY_ATTEMPTS in .env stops scoring after N attempts a day. - Single user. No accounts, no telemetry. Only the recording and reference text go to Azure. - Out of scope: lessons or courses, exam preparation, spoken role-plays, a phone app. - README: creating the Speech resource and key in the Azure portal (budget half an hour), what is sent to Azure, and that scores are a practice aid, not a test result.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own ELSA Speak.
Extend the pronunciation coach in this folder. Requirements: - Upload an SRT or VTT file and turn each cue into a phrase, keeping its timing. - A shadowing mode plays the cue text with Piper first, then records me, then scores the take; cues I score under 70 are repeated at the end of the session. - A session summary lists the three hardest cues with their weakest phonemes. - Update the README.
Add a conversation mode to the pronunciation coach in this folder. Requirements: - Pick a scenario from scenarios.yaml (job interview, meeting update, ordering food) and chat with an OpenAI-compatible model from .env that replies in two sentences or fewer. - I answer by voice: transcribe with Azure speech recognition, show the transcript, and score each answer with the existing pronunciation assessment using the transcript as reference. - The model's replies are spoken with Piper; keep each transcript and score in SQLite. - Update the README.
Add a weekly review to the pronunciation coach in this folder. Requirements: - Every Sunday at 18:00 write ./data/reports/YYYY-WW.md with minutes practised, attempts, the five phonemes that improved most and the five that stayed lowest, compared with the previous week. - Include three phrases to retry, picked from the lowest-scoring attempts. - `python -m coach report --week 2026-41` regenerates any week. - Update the README.
Learners pay for a path they don't have to design: lessons in order, feedback tuned for non-native speakers and a streak that brings them back. Scoring is the easy part to copy; knowing what to practise next and why is what the subscription sells.
Estimate · Azure's free tier covers light practice; beyond it, check the per-hour rate. Pronunciation assessment is listed as billed like speech to text, and the pricing page lists it as an add-on. The build is token usage on your agent plan.
Checked 2026-10-20 against ELSA Speak's docs: 1, 2, 3, 4, 5, 6, 7
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Pro | — | $7.50 | Pronunciation Coach, topic lessons and study tools (dictionary and study sets): listen-and-repeat drills with sound-level feedback. |
| Premium | — | $8.33 | Everything in Pro plus the Language Coach, AI role plays, Conversation Coach, Speech Analyzer and courses. |
| Professional | custom | — | Everything in Premium plus coaches for public speaking, interviews, presentations, sales and meetings. |
A free plan exists; the homepage lists a learning path, AI role plays and instant feedback on it, but its limits aren't on the pages we read.
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: ELSA's own speech models and scoring, built for non-native speakers, The 8,000-plus lessons, career lessons and exam preparation (IELTS, TOEFL and others).
About $7.50 a month on the Pro, billed yearly plan, $90 a year (checked 2026-10-20).
ELSA's own speech models and scoring, built for non-native speakers; The 8,000-plus lessons, career lessons and exam preparation (IELTS, TOEFL and others); AI role plays and a conversation coach; A personalised learning path that picks what to practise next; The iOS and Android apps. If any of those matter to you, keep paying.
Yes: Mimora (open source), Speechling (free), Microsoft Reading Coach (free).