KAVI Academy · Quality report

KAVI Mandarin Voice
Qualification Report

How we make sure every Mandarin sound a child hears is correct.

Status: pre-release evaluation. The Mandarin audio bank described here is still being built and is not yet in the live KAVI product. This report shows how a candidate voice is tested before any clip is used.

Last tested 2026-10-01 · Voice: Achernar · Engine: Google Gemini TTS · Method: Praat F0 analysis

1Why it matters

Mandarin is a tonal language: the tone is part of the meaning. The same sound ma becomes a different word depending on how the pitch moves. A wrong tone teaches the wrong word.

mā
妈
“mother”
mǎ
马
“horse”
mà
骂
“scold”

We do not rely on a phone’s built-in text-to-speech. On many devices it is silent, reads character by character, or distorts the tone, so what a child hears would depend on their phone. Instead, KAVI’s approach is that every Mandarin syllable is a pre-recorded, loudness-normalized clip (−16 LUFS), delivered as .ogg plus .mp3, so the same sound plays every time, on every device. That bank is being built now.

2How we verify

We judge tone objectively, from the voice’s pitch (F0) contour, measured with Praat, a standard tool for speech analysis. A tone is a shape: level, rising, dipping then rising, or falling. We measure that shape directly instead of guessing by ear.

A pitfall we found and controlled for. Automatic speech recognition (ASR) is tone-blind. In a control test it mis-identified the tone even on known-correct reference audio, and when forced to pick a tone from 1 to 4 it answered “1” for all four tones. So we never trust ASR for tone. Only the pitch contour decides.

We measure the tone over the body of the syllable, excluding the first ~10% and last ~20%, so onset and offset artifacts do not distort the result.

3The qualification criteria

A voice is held to the standard below. Section 5 publishes the measured results for every block on the candidate voice, including what is still in progress.

BlockWhat it testsItems
AThe four tones + neutral tone妈 mā · 麻 má · 马 mǎ · 骂 mà · 吗 ma
BTone-3 integrity (a clean low dip, no stutter)你 · 好 · 我 · 水
CHard initials: zh / ch / sh / r vs z / c / s知 · 吃 · 师 · 日 · 字 · 词 · 四
Dü finals女 · 绿 · 鱼 · 去
ETricky finals天 · 红 · 风 · 二
FTone-change (sandhi) words你好 ní hǎo · 不是 bú shì · 一个 yí gè

Pass rule

4Why Achernar: we tested five voices

All five voices produce audio. We screened them on the same three items (妈, 马, 你好) with the same instruction, and measured each with the method above. None was flawless; Achernar is the voice we took forward to the full benchmark. “Character” is Google’s own descriptor for each voice.

VoiceCharacterWhat we measuredVerdict
GacruxMatureASR heard 妈 as the neutral-tone 嘛 and 马 as two syllables (妈妈). 马 has a 229 ms gap and sinks to 77 Hz inside the syllable.Set aside
SulafatWarmSegments read correctly by ASR (tone not verifiable that way). The end of 妈 falls to about 75 Hz, and 马 and 你好 break into separate voiced stretches (190–260 ms gaps) with troughs near 80 Hz.Set aside
VindemiatrixGentleWeakly voiced: 你好 has only about 280 ms of voiced sound (others 890–1,050 ms), too little to measure its tones. 马 has a 300 ms gap.Set aside
KoreFirmOur earlier pilot voice, kept as the baseline. 妈 is very short (about 300 ms voiced), and 你好 sinks to about 77 Hz for 14 consecutive frames inside the syllable.Baseline only
AchernarSoftFull-length level 妈 (about 650 ms voiced, 195–213 Hz) and no segment anomalies. In this short screen its 马 showed a 190 ms gap and a trough near 83 Hz, which led us to tighten the instructions and verify takes (sections 5 and 6).Chosen

Screen result only. Only Achernar went through the full benchmark below, so the other voices have no like-for-like Block A to F scores.

5Benchmark results: voice “Achernar”

Achernar is a female voice from Google’s Gemini text-to-speech. Below are the measured results for the four tones, the neutral tone, the hardest contrast in Mandarin, and then the full A to F scorecard. Each curve is the real measured pitch of the clip shown (syllable body only, on a shared scale from 100 to 350 Hz), not a drawing.

The four tones

Tone 1
mā
妈
“mother”
✓ high & level
Tone 2
má
麻
“hemp”
✓ rising
Tone 3
mǎ
马
“horse”
✓ low dip, then rise
Tone 4
mà
骂
“scold”
✓ sharp falling

The 马 shown is the take generated with a “clearly low dip” instruction: the plain benchmark 马 passes only marginally (a shallow dip). The 麻 shown is a Tone 2 take that passes the rime-only test; the plain benchmark 麻 is borderline (see the scorecard).

The neutral tone

Neutral tone
ma
吗
question particle
✓ short & light
Short and weak, but louder than tones 1–4 by 3.6 dB (minor, to clean up).

The hard test: Tone 2 vs Tone 3

Tone 2 and Tone 3 are the most confusable pair for learners: both rise at the end, but Tone 3 first dips low. For a learner to hear the difference, the third tone has to sit clearly below the second. We require at least 2 semitones as the bar for “clearly distinguishable.” All three minimal pairs passed, with the third tone sitting 3.9 to 5.5 semitones below the second.

Tone 2Tone 3Gap (trough to trough)Result
麻 má马 mǎ3.9 semitones lowerPASS
姨 yí椅 yǐ5.5 semitones lowerPASS
无 wú五 wǔ5.2 semitones lowerPASS

Gap = how far the lowest point of the Tone 3 clip sits below the lowest point of the Tone 2 clip (12 semitones = one octave). Listen side by side, Tone 2 on the left and Tone 3 on the right:

3.9 semitones lower
Tone 2
má 麻
Tone 3
mǎ 马
5.5 semitones lower
Tone 2
yí 姨
Tone 3
yǐ 椅
5.2 semitones lower
Tone 2
wú 无
Tone 3
wǔ 五

Full benchmark: Blocks A to F

Every item below was generated once with the same instruction and scored on pitch only, using the rime-only method (first ~10% and last ~20% excluded). ✓ Pass meets the shape test. ≈ Borderline fails the rime-only test but matches over the whole syllable, because the defining part of the shape (usually the final rise of a third tone) sits in the excluded edge. In progress means not yet passing. “Minor” notes are low troughs, gaps or loudness that we expect generate-and-verify to remove.

ItemExpected toneMeasured pitch (start → low → end)ToneNotes
Block A · four tones + neutral — 4 of 5 clear pass, 1 borderline
妈 māhigh & level225 → 217 → 220 Hz✓ Pass 
麻 márising160 → 146 → 165 Hz≈ BorderlineMatches over the whole syllable (160 → 146 → 266 Hz); the key part of the shape (the final rise) falls in the excluded edge. The 麻 played above is a different Tone 2 take that passes.
马 mǎlow dip, then rise177 → 159 → 179 Hz✓ PassShallow dip (marginal). The 马 played above is the forced-low take.
骂 màfalling284 → 148 → 157 Hz✓ PassWatch: the very end of the clip dips to 88 Hz, outside the measured syllable body.
吗 mashort & light225 → 220 → 265 Hz✓ PassMinor: 3.6 dB louder than the tone 1–4 average. To clean up.
Block B · tone-3 integrity — 2 of 4 clear pass, 2 borderline
你 nǐlow dip, then rise185 → 125 → 140 Hz≈ BorderlineMatches over the whole syllable (188 → 125 → 189 Hz); the key part of the shape (the final rise) falls in the excluded edge.
好 hǎolow dip, then rise143 → 125 → 151 Hz✓ Pass 
我 wǒlow dip, then rise162 → 142 → 148 Hz≈ BorderlineMatches over the whole syllable (163 → 142 → 180 Hz); the key part of the shape (the final rise) falls in the excluded edge.
水 shuǐlow dip, then rise153 → 87 → 138 Hz✓ PassMinor: low trough, dips to 87 Hz inside the syllable. To clean up via generate-and-verify.
Block C · hard initials — 6 of 7 clear pass, 1 borderline
知 zhīhigh & level227 → 226 → 229 Hz✓ Pass 
吃 chīhigh & level250 → 246 → 252 Hz✓ Pass 
师 shīhigh & level272 → 269 → 279 Hz✓ Pass 
日 rìfalling293 → 211 → 222 Hz✓ Pass 
字 zìfalling244 → 133 → 141 Hz✓ Pass 
词 círising159 → 150 → 179 Hz≈ BorderlineMatches over the whole syllable (172 → 150 → 232 Hz); the key part of the shape (the final rise) falls in the excluded edge.
四 sìfalling271 → 146 → 155 Hz✓ Pass 
Block D · ü finals — 3 of 4 clear pass, 1 borderline
女 nǚlow dip, then rise189 → 127 → 137 Hz≈ BorderlineMatches over the whole syllable (189 → 127 → 161 Hz); the key part of the shape (the final rise) falls in the excluded edge.
绿 lǜfalling299 → 170 → 178 Hz✓ Pass 
鱼 yúrising159 → 159 → 196 Hz✓ Pass 
去 qùfalling306 → 191 → 206 Hz✓ Pass 
Block E · tricky finals — 4 of 4 clear pass
天 tiānhigh & level234 → 216 → 216 Hz✓ Pass 
红 hóngrising152 → 134 → 213 Hz✓ Pass 
风 fēnghigh & level235 → 221 → 227 Hz✓ Pass 
二 èrfalling268 → 141 → 153 Hz✓ Pass 
Block F · sandhi words — 1 of 3 clear pass, 2 in progress
你好 ní hǎo1st syllable risingsyllable 1: 208 → 188 → 212 Hz (180 ms voiced)In progressFirst syllable does not rise cleanly: it dips slightly and then recovers.
不是 bú shì1st syllable risingsyllable 1: 171 → 169 → 190 Hz (70 ms voiced)In progressFirst syllable is too short (about 70 ms voiced) to measure.
一个 yí gè1st syllable risingsyllable 1: 168 → 155 → 213 Hz (230 ms voiced)✓ PassFirst syllable rises, after a small initial dip.
Block F (sandhi) is still being tuned. Tone-change words are the hardest case for a text-to-speech voice. In this run only 一个 (yí gè) clearly rises on its first syllable. The first syllable of 你好 does not rise cleanly and the first syllable of 不是 is too short to measure. Sandhi words need an instruction tweak before release.

About consonants and vowels. An earlier automated check of the sounds themselves flagged several items. We then found that the speech-recognition tool misreads isolated syllables even on a known-good reference voice, so those results are unverified and are excluded here. This report scores tone only.

Scope of this report. It publishes tone results for Blocks A to E and the Tone 2 vs Tone 3 test, and shows Block F (sandhi words) as in progress. It does not verify consonants and vowels.

6Our standard: generate and verify

Text-to-speech is not perfectly repeatable: the same syllable generated twice can come out differently. So we never accept a single attempt. For every syllable we generate several takes and keep only the take that objectively passes the pitch-contour test. Takes with vocal fry, or a wrong or ambiguous tone, are rejected and regenerated.

  1. Generate several takes of the syllable
  2. Measure each take’s pitch contour (Praat)
  3. Reject fry, gaps, and wrong or ambiguous tones
  4. Keep only a take that passes

No clip is released to a child unless it passes. That is the standard the bank will be held to as it is built. The Tone 3 test above shows why this matters: 2 of 3 takes per pair passed the tone test, and only 1 of 3 was also free of fry or gaps for 麻/马 and 姨/椅 (2 of 3 for 无/五). The clips played in the four-tone and Tone 2 / Tone 3 sections are takes that passed; the scorecard shows plain first-run results, including the items still to clean up.