Да, наверное нужно в сторону ASR смотреть. Модели обычно выдают метрику, насколько они уверены в правильности распознавания. И далее уже от механики зависит. Если человек читает заранее подготовленный текст, то просто сравнивать с ним результат распознавания. Если это произвольная речь, то взять например BERT и проверять слова, которые неуверенно распознанны, подходят ли они вообще по смыслу в контексте предложения. Ну и какую-то свою обощенную метрику сделать: если слово распозналось правильно, но метрика уверенности распознавания низкая - то это среднее качество произношения.. Если слово совсем не то - то низкое качество произношения.
Задача вроде не сложная, сейчас много крутых моделей в свободном доступе, тем более на английском, все модели предобучены, взять и слепить.
Задача облегчается тем, что текст заранее известен. Нужно только проверить качество произношения конкретного слова / фразы.
Спасибо за идею с качеством распознавания — тоже вариант. Единственное, что при таком подходе у нас есть только ответ в виде одного числа — плохо или хорошо произнесено слово. В идеале, конечно, хотелось бы указать на конкретные ошибки. Поэтому и думал, может распознавать список звуков типа [c] [a] [r] и их продолжительность, а потом сравнивать с эталоном?