Italian rewards learners who get the double consonants right and punishes the ones who do not — pena and penna are different words. The Italian pack models geminates as distinct expected sounds, so a single n where a double was required shows up as a substitution with a lower score. The trilled r and the seven-vowel system are handled the same way.
Dimensions
Pronunciation and completeness at sentence level, word scores and phoneme evidence. Fluency and rhythm are not scored for Italian today.
Learner errors this pack is built to show
- Single consonants where geminates are required — pena / penna, caro / carro.
- Trill r produced as an English approximant.
- gl and gn produced as gl / gn clusters instead of ʎ / ɲ.
- Diphthongised vowels — o as oʊ, e as eɪ — common for English speakers.
- c / g before e / i produced hard instead of tʃ / dʒ.
Phoneme rows are evidence, not validated corrections: they show a learner where a word went wrong, while the word-level decision is what your app should act on.
Coverage notes
The native calibration set is small and one native control recording scored below 50 in our September 2026 evaluation, so the lower score band needs improvement before you treat scores under 50 as reliable. The pack is labelled experimental; the methodology page explains what that means in practice.
Example request
Reference text: Vorrei un cappuccino. Send the recording, the text and the locale; nothing else is required.
curl https://api.toneperfect.app/v1/assess \
-H "Authorization: Bearer $TONEPERFECT_API_KEY" \
-H "Idempotency-Key: lesson-42-attempt-1" \
-F "audio=@take.wav" \
-F "text=Vorrei un cappuccino" \
-F "language=it-IT"What comes back
The same structure as every other language: sentence-level scores, a words[] array with timestamps and, under each word, phones[] with expected and heard values. Abbreviated to the one flagged word:
{
"language": "it",
"locale": "it-IT",
"task": "scripted_speech",
"status": "completed",
"assessable": true,
"model_version": "multilingual-native-v1-it-…",
"scores": {
"overall": 87,
"pronunciation": 87,
"completeness": 100
},
"words": [
{
"word": "Vorrei",
"expected_ipa": "vorːɛi",
"score": 71,
"start_ms": 180,
"end_ms": 560,
"decision": "review",
"phones": [
{
"phone": "v",
"expected": "v",
"heard": "v",
"score": 95,
"diagnosis_status": "experimental"
},
{
"phone": "o",
"expected": "o",
"heard": "o",
"score": 93,
"diagnosis_status": "experimental"
},
{
"phone": "rː",
"expected": "rː",
"heard": "ɹ",
"score": 59,
"diagnosis_status": "experimental"
},
{
"phone": "ɛ",
"expected": "ɛ",
"heard": "ɛ",
"score": 90,
"diagnosis_status": "experimental"
},
{
"phone": "i",
"expected": "i",
"heard": "i",
"score": 94,
"diagnosis_status": "experimental"
}
]
}
],
"billing": {
"credits": 1,
"balance_credits": 2499
}
}Reference text goes in as text: The Italian sentence the learner was asked to read, up to 40 words. See the response reference for every field.