Overall score
A 0–100 grade for the recording plus the dimensions the language supports: pronunciation, completeness, fluency, rhythm — or initials, finals and tones for Mandarin.
scores.overall · scores.toneSend a short recording and the sentence the learner was asked to read. TonePerfect returns a 0–100 score for the sentence, every word and every sound — including Mandarin tones — in one JSON response.
By the team behind the TonePerfect app, used by 30,000+ Mandarin learners.
| Part | Expected | Heard | Score | |
|---|---|---|---|---|
| Initial | sh | s | 78 | Uncertain |
| Final | i | i | 83 | OK |
| Tone | Tone 4 | Tone 2 | 62 | Review |
Tone 4 was heard as tone 2 — the kind of slip a Mandarin learner needs pointed out.
No speech pipeline to build. Your app records, TonePerfect listens, and you decide what to show.
Any sentence you choose, in Mandarin Chinese, English, French, Spanish, German, Italian and Portuguese. Up to 30 seconds of audio from a browser, phone or desktop app.
One multipart/form-data request to POST /v1/assess with your secret key. Add an Idempotency-Key to retry safely.
Colour the words, highlight the sound to fix, play back the exact segment. Every number you need is in the same JSON.
curl https://api.toneperfect.app/v1/assess \ -H "Authorization: Bearer $TONEPERFECT_API_KEY" \ -H "Idempotency-Key: lesson-42-attempt-1" \ -F "audio=@hello.wav" \ -F "text=你好" \ -F "language=zh-CN"
Three levels of detail, already linked, so a learner can go from “86/100” to “your 4th tone came out as a 2nd” in one tap.
A 0–100 grade for the recording plus the dimensions the language supports: pronunciation, completeness, fluency, rhythm — or initials, finals and tones for Mandarin.
scores.overall · scores.toneEach word or Mandarin character with its own score and start/end milliseconds, so you can highlight it and replay it.
words[].score · start_ms · end_msFor every phoneme — or Mandarin initial, final and tone — the expected sound, the sound we estimate was said, and a score. Decisions on whether to correct come per word, and per component for Mandarin.
words[].phones[] · heard · decisionEverything we needed for our own learning app, exposed as an API.
Sentence, word and sound scores come back together, already linked. No second request, no stitching.
Every syllable is scored on its initial, final and tone separately. Third-tone sandhi is taken into account, so a correctly applied 2-3 is not marked as an error.
Every word — and every Mandarin initial, final and tone — carries a decision: review, uncertain or no correction. Designed to keep unnecessary corrections rare.
start_ms and end_ms on every word let you play back the exact segment a learner needs to hear again.
Recordings are assessed and deleted. Nothing is retained or used for training. Results expire within 24 hours.
Send an Idempotency-Key and retry freely. Failed or unassessable requests cost nothing.
How scoring and decisions work ↗Compared with SpeechSuper, Speechace, Azure and ELSA ↗
Score every speaking exercise and show learners exactly which word or sound to fix — in the same request.
Give tutors objective, per-sound evidence and let students practise between lessons with instant feedback.
Turn read-aloud sessions into word-level feedback with timestamps, so children can replay and retry the exact word.
Add speaking practice to corporate training or test-prep products without building a speech team.
Every language returns sentence, word and sound scores. Some add fluency and rhythm; Mandarin adds tones. Coverage and limits ↗
pronunciation · initials · finals · tones
Coverage & example →EnglishEnglishen-USpronunciation · completeness · fluency · rhythm
Coverage & example →FrançaisFrenchfr-FRpronunciation · completeness · fluency · rhythm
Coverage & example →EspañolSpanishes-419pronunciation · completeness
Coverage & example →DeutschGermande-DEpronunciation · completeness
Coverage & example →ItalianoItalianit-ITpronunciation · completeness
Coverage & example →PortuguêsPortuguesept-BRpronunciation · completeness
Coverage & example →More languages are added as their native-speaker calibration is complete. Need one that is not listed? Tell us ↗
One credit scores a recording up to 15 seconds; two credits up to 30. Failed or unassessable requests are free.
2,500 credits every month
15,000 credits every month
50,000 credits every month
Credits arrive after each payment and roll over while you subscribe. Extra packs available anytime. Cancel whenever you like. Full pricing details ↗
Something else? nik@toneperfect.app
Read more: What is a pronunciation assessment API? · Integration tutorial · Tone sandhi in scoring
A pronunciation assessment API takes a recording of someone reading a known sentence and returns scores that describe how close the speech is to a native speaker. TonePerfect returns a 0–100 score for the whole recording, for every word and for every sound, plus timestamps and an explicit recommendation on whether each sound needs correction.
7 languages today: Mandarin Chinese, English, French, Spanish, German, Italian, Portuguese. Every language returns sentence, word and sound scores. Mandarin additionally scores the initial, final and tone of every syllable; English and French add fluency and rhythm. Call GET /v1/capabilities for the live list.
Each syllable is split into its initial, final and tone, and each part gets its own score and heard value, so your app can say “this was a 2nd tone, not a 4th” rather than “try again”. Send Chinese characters or numbered pinyin. Tone sandhi is taken into account, so a 3rd tone that correctly surfaces as a 2nd tone before another 3rd tone is not marked as an error.
Scores are calibrated per language against native-speaker recordings, and every sound carries a feedback decision — review, uncertain or no correction — so you can choose to only surface the errors the model is confident about. Language packs are labelled experimental where calibration data is still small; the capabilities endpoint states each pack’s limits honestly.
A recording of up to 30 seconds (10 MB) of someone reading the text you supply: WAV, MP3, M4A, OGG or WebM from a browser, phone or desktop app. The API assesses scripted speech; it is not a general speech-to-text or grammar service.
No. Audio is decoded, assessed and deleted. It is never retained or used to train models. The JSON result is kept for up to 24 hours only so a retried request with the same Idempotency-Key returns the same answer.
Plans start at $10/month for 2,500 credits. One credit covers a recording up to 15 seconds; two credits cover up to 30 seconds. Failed or unassessable requests are free. Unused credits roll over, and you can add one-off credit packs at any time — 10% cheaper on Builder and 20% cheaper on Scale.
You can create an account, generate a key, browse the documentation and explore example responses without paying. Live assessments need an active plan — new accounts start with zero credits and there is no free tier.
Create an account, generate a key, send your first recording.