Localeit-IT
Scored dimensionsPronunciation · Completeness
LevelsSentence · word · phoneme
InputAudio ≤ 30 s + reference text

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 , e as — 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
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:

JSON (abbreviated)
{
  "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.