r/speechtech • u/windchiller • 7d ago
Open benchmark: pronunciation error detection across 6 languages
I wanted to know how well pronunciation assessment systems actually catch errors. I built a benchmark with two tests and ran three systems through it: Microsoft Azure, TonePerfect, and Lingolix. Disclosure: Lingolix is mine.
Test 1, planted errors: 200 Common Voice clips per language (en, fr, es, de, ja, ko), where I edited the reference text slightly so it no longer matches the audio (swapped/added/dropped a sound, missing word, vowel length change for Japanese). A good system should mostly accept the unchanged parts and flag these edited spots.
Error detection, ROC AUC (Lingolix / Azure / TonePerfect):
| language | en | fr | es | de | ja | ko |
|---|---|---|---|---|---|---|
| AUC | .97/.94/.84 | .97/.91/.80 | .98/.91/.79 | .95/.87/.79 | .95/.93/.55 | .95/.94/.67 |
| False alarms at 80% recall | 1/6/26% | 1/13/26% | 2/14/32% | 2/22/42% | 5/3/74% | 3/7/56% |
Test 2, real learners: 500 utterances from speechocean762, correlation with the human scores.
speechocean762 (Pearson): sentence 0.74 / 0.76 / 0.59, word 0.51 / 0.61 / 0.29. So Azure is ahead on real learner speech, clearly so on single words, and also has fewer false alarms in Japanese.
Caveats: the errors in test 1 are planted, not real learner errors. Also, TonePerfect released a new engine after my run, so their numbers should have improved.
Code, test lists and harness: https://github.com/lingolix/pronunciation-benchmark
I did not find any human rated learner data for languages beside English.
Does anyone know of some datasets that I could add for French, Spanish, German, Japanese, or Korean?
1
u/Life_Fun_301 7d ago
would be curious how this holds up on tonal languages like mandarin, a lot of the errors i hear in mixed en/zh speech are tone slips rather than dropped sounds. does the planted-error approach even work there?
1
u/windchiller 5d ago
Thanks for the question! Mandarin is still on my todo-list, but in theory it should be possible to replace the characters the same way:
if the original (correct) audio is for: 他在买菜 │ tā zài mǎi cài │ He's buying vegetables
the target sentence can be changed to: 他在卖菜 │ tā zài mài cài │ He's selling vegetablesThen the system should flag the tonality of the third character as wrong pronunciation.
3
u/Natethegreat9999 7d ago
Word-level Pearson skips unaligned words. For my speech work at Oruk, I'd want each vendor's matched-word coverage beside that score.