Локальный ИИ · обучение · чтение

Локальный ИИ проверяет чтение ребёнка вслух: скорость, ошибки и понимание текста

Можно ли посадить ребёнка перед микрофоном, дать ему текст и автоматически получить отчёт: сколько слов прочитано правильно, где были пропуски, замены и повторы, каков темп и понял ли он смысл? Да, но для качественного результата одного Whisper или одной LLM недостаточно. Нужна связка распознавания речи, сопоставления с эталонным текстом, измеряемых метрик и отдельной проверки понимания.

Актуально: сентябрь 2026 Русский язык Local-first · без обязательного облака
whisper.cpp WhisperX MFA Forced alignment WCPM Понимание текста
Коротко: технически задача решаема уже сейчас. Ребёнок читает заранее известный текст в микрофон. Локальная ASR-модель получает расшифровку, алгоритм сравнивает её с эталоном, а отдельный alignment-модуль привязывает слова ко времени. После чтения локальная LLM задаёт вопросы по содержанию. Главное — не просить LLM «на слух оцени чтение от 1 до 10», а считать проверяемые показатели отдельным кодом.
Хорошо автоматизируется Время, пропуски, замены, вставки, повторы, корректные слова.
Можно автоматизировать Вопросы на понимание и персональные упражнения после чтения.
Сложнее Точное произношение отдельных звуков и выразительность.
Нельзя диагностировать Дислексию, логопедические и медицинские нарушения.

Что вообще означает «хорошо читает»

Скорость сама по себе — плохая цель. В исследовании автоматизированной оценки чтения вслух отдельно рассматриваются точность, скорость, автоматичность и просодия. Для домашнего ИИ-тренажёра я бы добавил ещё один обязательный слой — понимание прочитанного.

01 Точность

Какие слова прочитаны правильно, пропущены, заменены, вставлены или повторены.

02 Темп

Сколько времени ушло на весь текст и на отдельные фрагменты.

03 Автоматичность

Где ребёнок долго останавливается, перечитывает или «разбирает» слово.

04 Понимание

Может ли ребёнок пересказать смысл, назвать причины событий и ответить на вопросы.

05 Просодия

Паузы, ритм, ударение и интонация. Это заметно сложнее первых четырёх пунктов.

Практический вывод: домашняя система не должна выдавать один «балл чтения». Гораздо полезнее показать отдельные показатели и конкретные слова, на которых возникли трудности.

Архитектура локальной проверки чтения

В отличие от обычной диктовки, здесь у нас есть большое преимущество: система заранее знает, какой текст ребёнок должен прочитать. Это позволяет не только распознать речь, но и сопоставить её с эталоном.

Эталонный текст Текст, который видит ребёнок
+
Аудиозапись Микрофон, WAV/PCM
↓
ASRчто система услышала
Alignmentкогда произнесено каждое слово
Diffсравнение с эталоном
↓
Отчёт точность · скорость · ошибки · паузы · вопросы по содержанию · история прогресса

Почему нельзя просто отправить запись в Whisper

Whisper и его локальные реализации хорошо подходят для получения текста из аудио. Но расшифровка — это ещё не оценка чтения. ASR оптимизирована на восстановление смысла речи и может сгладить именно те ошибки, которые нам важно увидеть.

Например, ребёнок может повторить слово дважды, проглотить окончание или остановиться на несколько секунд. Транскрипция при этом может выглядеть почти идеально. Более того, в whisper.cpp token-level timestamps существуют, но часть механизмов помечена как experimental, а в issue tracker встречаются реальные проблемы с точностью временных меток.

Неправильная архитектура: запись → Whisper → LLM → «ребёнок читает хорошо». Такой результат трудно проверить и невозможно стабильно сравнивать между занятиями.
Правильнее: ASR используется как один из измерительных модулей. Ошибки считает детерминированный алгоритм, временные позиции уточняет alignment, а LLM объясняет результат и строит занятие.

Пошаговая обработка одного чтения

  1. Выбрать эталонный текст. Хранить исходный текст отдельно и не менять его после начала серии измерений.
  2. Записать чистое аудио. Один ребёнок, минимальный фоновый шум, одинаковое расстояние до микрофона.
  3. Вырезать длинную тишину и определить речь. VAD помогает отделить реальные фрагменты речи от пауз до и после задания.
  4. Получить локальную транскрипцию. Например, whisper.cpp или faster-whisper/WhisperX.
  5. Нормализовать два текста. Регистр, «ё/е», кавычки, тире, цифры и другие элементы должны обрабатываться одинаково.
  6. Сопоставить последовательности слов. Алгоритм sequence alignment определяет совпадения, замены, пропуски и вставки.
  7. Привязать слова ко времени. Forced alignment позволяет оценивать паузы и длительность чтения фрагментов.
  8. Посчитать метрики. Правильные слова, типы ошибок, время и корректно прочитанные слова в минуту.
  9. Проверить понимание. После чтения система задаёт несколько вопросов, ответы сохраняются отдельно.
  10. Записать результат в профиль. Для прогресса важнее серия сопоставимых измерений, чем один «рекорд».

Какие ошибки система может находить автоматически

Пропуск «Мальчик быстро побежал домой»

Прочитано: «Мальчик побежал домой».

Замена «по узкой дорожке»

Прочитано: «по узкой тропинке».

Вставка «Кот сидел у окна»

Прочитано: «Кот долго сидел у окна».

Повтор «Он открыл дверь»

Прочитано: «Он… он открыл дверь».

Самокоррекция «весеннее солнце»

Ребёнок ошибся, остановился и сразу исправил слово.

Длинная пауза Трудное слово

Текст формально прочитан правильно, но слово потребовало заметно больше времени.

Первые три типа хорошо ложатся на классический edit distance между последовательностями слов. Повторы и самокоррекции требуют более аккуратной логики: нельзя автоматически считать каждое лишнее распознанное слово одинаково тяжёлой ошибкой.

Какие метрики сохранять

Метрика Что показывает Комментарий
Общее время Сколько длилось чтение Лучше хранить исходное время и время активной речи отдельно.
Correct words Количество правильно прочитанных слов Базовая величина для сравнения с предыдущими попытками.
WCPM Корректно прочитанные слова в минуту Полезнее обычного WPM, потому что ошибки не повышают результат.
Accuracy Доля правильно прочитанных слов Позволяет отделить «быстро» от «быстро и правильно».
Пропуски Сколько эталонных слов не найдено Нужно отдельно отслеживать устойчиво пропускаемые окончания и служебные слова.
Замены Сколько слов заменено другими Особенно полезен список повторяющихся сложных слов.
Повторы Возвраты и повторное чтение Могут указывать на трудность, но сами по себе не являются диагнозом.
Паузы Где чтение замедляется Требуют достаточно надёжных word-level timestamps.
Понимание Ответы по содержанию Хранить отдельно от скорости и точности чтения.
Не привязывайте продукт к одной «норме слов в минуту». Для реального ребёнка важны возраст, класс, сложность текста, язык, школьная методика и предыдущие результаты. Надёжнее показывать динамику и давать возможность родителю или педагогу задать собственные ориентиры.

WhisperX и forced alignment: зачем нужен второй проход

WhisperX специально добавляет word-level timestamps с помощью отдельной фонемной модели выравнивания. Это полезно, когда нужно знать не только итоговую расшифровку, но и положение отдельных слов во времени.

Для задачи чтения вслух есть ещё один вариант — Montreal Forced Aligner. В отличие от свободного распознавания, forced alignment получает на вход известную транскрипцию и аудио и пытается определить, где во времени находятся слова и фонемы.

Будет ли это работать на русском

Да, но русский язык нельзя считать «автоматически закрытым» только потому, что Whisper умеет русский. Для качественного word-level/phoneme alignment нужен совместимый языковой ресурс. У Montreal Forced Aligner есть отдельная русская acoustic model и Russian G2P/dictionary, предназначенные именно для forced alignment русского текста.

При этом детская речь отличается от взрослой: темп, артикуляция, ошибки и микрофоны будут другими. Поэтому любую выбранную модель нужно проверять именно на реальных детских записях, а не делать вывод по нескольким взрослым голосам.

Особенно важно: ASR может «исправить» детскую ошибку и записать ожидаемое слово. Поэтому для серьёзной оценки желательно сравнивать несколько сигналов: ASR-транскрипцию, alignment и confidence, а сомнительные случаи отправлять на ручную проверку.

Проверка понимания текста — задача для LLM

Здесь локальная языковая модель действительно очень полезна. После завершения измерительной части ей можно передать исходный текст и попросить провести короткую беседу.

Факт Кто или что?

Проверка прямой информации из текста.

Причина Почему это произошло?

Проверка причинно-следственных связей.

Последовательность Что произошло сначала?

Понимание структуры повествования.

Вывод Что можно понять из текста?

Более сложный вопрос без буквального ответа в одной строке.

Вопросы можно генерировать заранее и сохранять вместе с текстом. Для контрольного режима это даже лучше: разные ученики или повторные попытки будут сравниваться по одинаковым критериям.

Можно ли оценивать интонацию и произношение

Частично. Паузы и длительность слов технически измерять можно. Грубые проблемы с темпом тоже видны. Но «выразительность», правильное ударение и качество отдельных звуков гораздо сложнее. Исследования автоматической оценки чтения показывают хорошие перспективы для точности, скорости и автоматичности, тогда как просодия остаётся отдельной и более сложной задачей.

Если нужно именно тренировать произношение, следующая ступень — фонемное сравнение и pronunciation scoring. Это уже не задача обычной LLM и не то же самое, что ASR.

Не стоит писать: «ИИ определит дислексию», «найдёт логопедическое нарушение» или «точно оценит произношение». Такая система может быть домашним тренажёром и инструментом наблюдения за динамикой, но не диагностическим средством.

Как должен выглядеть результат для родителя

Чтение №12 «Лес после дождя»
18 сентября 2026
Точность94%
Правильно94 / 100
Пропуски2
Замены3
Повторы4
Понимание4 / 5
Слова для повторения
прошуршали серебристый вздрогнул
Следующее занятие

Повторить три сложных слова и дать новый текст той же сложности, а не перечитывать этот до идеального результата.

Цифры выше — пример интерфейса, а не возрастная норма. Именно так лучше проектировать продукт: показывать измеренный результат, ошибки и динамику, но не навешивать автоматический диагноз «читает плохо».

Что хранить в истории прогресса

Дата и текстЧтобы не сравнивать несопоставимые задания.
Длина текстаКоличество слов и сложность материала.
ТочностьПравильные слова и структура ошибок.
ТемпWCPM и время активного чтения.
Сложные словаПовторяющиеся трудности между занятиями.
ПониманиеОтдельный показатель ответов по содержанию.

Через несколько недель уже можно строить полезные закономерности: какие типы слов вызывают трудности, исчезают ли долгие паузы, растёт ли точность без потери понимания.

Почему локальная обработка здесь особенно уместна

Аудиозапись детского голоса — чувствительные данные. Local-first архитектура позволяет оставить записи, транскрипции и историю занятий на домашнем компьютере или сервере.

ЗаписьХранится локально или удаляется сразу после анализа.
ASRwhisper.cpp / локальный Whisper без внешнего API.
AlignmentЗапускается на том же ПК или домашнем сервере.
LLMЛокально задаёт вопросы и формирует объяснение.

При этом нужно проверять всю цепочку. Если сама LLM локальная, но аудио отправляется в облачный speech-to-text, система уже не является полностью локальной.

Где автоматическая проверка будет ошибаться

  • Шумный микрофон. ASR может принять шум или голос родителя за слова ребёнка.
  • Очень тихая или неразборчивая речь. Ошибка распознавания может выглядеть как ошибка чтения.
  • Самокоррекция. Нужно отличать ошибку, которую ребёнок сразу исправил, от устойчивой замены.
  • Окончания и похожие формы слов. Морфология русского языка требует аккуратной нормализации.
  • Имена и редкие слова. Они чаще дают ASR-ошибки и требуют словаря.
  • Выразительность. Универсального надёжного «процента интонации» здесь нет.
  • Диагностика. Автоматические метрики не заменяют педагога, логопеда или врача.

Как собрать первый рабочий прототип

  1. Сделать запись в браузере или приложении. Сохранять WAV/PCM вместе с ID текста и временем чтения.
  2. Подключить whisper.cpp. Получить локальную транскрипцию и базовые timestamps.
  3. Написать word diff. Python или JavaScript: эталон против ASR, Levenshtein/sequence alignment.
  4. Добавить forced alignment. Для русского удобно отдельно протестировать MFA и его russian_mfa ресурсы.
  5. Собрать JSON-отчёт. Сырые показатели хранить отдельно от красивого текста LLM.
  6. Подключить локальную LLM. Она задаёт вопросы по содержанию, объясняет ошибки и выбирает упражнения.
  7. Проверить вручную 30–50 записей. Сравнить автоматический результат с разметкой взрослого и выявить системные ошибки.
Пример структуры результата
{
  "text_id": "reading-012",
  "duration_sec": 74.2,
  "reference_words": 100,
  "correct_words": 94,
  "omissions": 2,
  "substitutions": 3,
  "insertions": 1,
  "repetitions": 4,
  "comprehension": {
    "correct": 4,
    "total": 5
  },
  "difficult_words": [
    "прошуршали",
    "серебристый",
    "вздрогнул"
  ]
}
Хороший MVP вообще не обязан оценивать интонацию. Если он стабильно считает точность, типы ошибок, WCPM, трудные слова и понимание текста — это уже полезный домашний инструмент.

Частые вопросы

Можно ли всё сделать без Интернета?

Да. Запись, whisper.cpp, алгоритм сравнения, Montreal Forced Aligner и локальная LLM могут работать на собственном ПК. Интернет понадобится в основном для первоначальной загрузки моделей и программ.

Whisper сам покажет все ошибки чтения?

Нет. Он даёт транскрипцию. Ошибки нужно определять сравнением с известным эталонным текстом, а временную структуру желательно уточнять отдельным alignment.

Можно ли считать скорость чтения?

Да. Но лучше хранить не только обычные слова в минуту, а корректно прочитанные слова в минуту и точность, чтобы быстрые ошибки не улучшали результат.

Можно ли проверять русский язык?

Да. Whisper поддерживает русский, а в экосистеме Montreal Forced Aligner есть русские acoustic/G2P/dictionary ресурсы. Реальное качество всё равно нужно валидировать на детской речи.

Можно ли определить неправильное произношение звука?

Для надёжной оценки отдельных звуков нужен фонемный pronunciation scoring. Обычной текстовой транскрипции Whisper для этого недостаточно.

Можно ли по результатам определить дислексию?

Нет. Система может фиксировать измеряемые особенности чтения и динамику, но не должна ставить медицинские, логопедические или психологические диагнозы.

Источники и проекты

Локальный ИИ для обучения

Проверка чтения — только один модуль домашнего ИИ-репетитора

Следующий шаг — голосовой преподаватель: ребёнок говорит с системой как с учителем, а STT, LLM и TTS работают локально.