Localede-DE
Scored dimensionsPronunciation · Completeness
LevelsSentence · word · phoneme
InputAudio ≤ 30 s + reference text

German's signature difficulties for learners — ich vs ach sounds, ü and ö, the uvular r, and voiced consonants that devoice at the end of a word — are exactly the sounds a word score alone cannot explain. The German pack returns the expected and estimated heard phoneme for every sound so your feedback can name the substitution ("sh instead of the soft ch").

Dimensions

Pronunciation and completeness at sentence level, word scores and phoneme evidence. Fluency and rhythm are not scored for German today.

Learner errors this pack is built to show

  • ich-sound ç produced as ʃ or k; ach-sound x produced as k.
  • Rounded front vowels ü / ö produced as u / o or i / e.
  • Final devoicing missed — Hund ending in a voiced d.
  • Vowel length — Stadt / Staat, bitten / bieten.
  • Initial st / sp produced without the ʃ, and z produced as z instead of ts.

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 short rounded vowel ʏ (as in Hütte) is outside the acoustic inventory today and is marked unassessed where it occurs. The native calibration set is small; the pack is labelled experimental.

Example request

Reference text: Ich möchte ein Brötchen. 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=Ich möchte ein Brötchen" \
  -F "language=de-DE"

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": "de",
  "locale": "de-DE",
  "task": "scripted_speech",
  "status": "completed",
  "assessable": true,
  "model_version": "multilingual-native-v1-de-…",
  "scores": {
    "overall": 83,
    "pronunciation": 83,
    "completeness": 100
  },
  "words": [
    {
      "word": "Ich",
      "expected_ipa": "ɪç",
      "score": 70,
      "start_ms": 180,
      "end_ms": 560,
      "decision": "review",
      "phones": [
        {
          "phone": "ɪ",
          "expected": "ɪ",
          "heard": "ɪ",
          "score": 92,
          "diagnosis_status": "experimental"
        },
        {
          "phone": "ç",
          "expected": "ç",
          "heard": "ʃ",
          "score": 60,
          "diagnosis_status": "experimental"
        }
      ]
    }
  ],
  "billing": {
    "credits": 1,
    "balance_credits": 2499
  }
}

Reference text goes in as text: The German sentence the learner was asked to read, up to 40 words. See the response reference for every field.