Локальный ИИ · English tutor · CEFR · voice

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

Английский — один из лучших сценариев для домашнего локального ИИ: ребёнок может каждый день разговаривать вслух, получать мягкие исправления, тренировать словарь, listening и письмо, а вся история занятий, голосовые записи и прогресс остаются дома. Но хороший English tutor — это не просто Whisper + LLM + TTS. Нужны CEFR-уровни, отдельная политика исправлений, словарь с интервальным повторением и специальный pronunciation pipeline.

Актуально: сентябрь 2026 Voice + CEFR + Pronunciation + SRS Local-first
faster-whisperllama.cppOllamaCEFR Forced AlignmentGOPFSRSSQLite

Почему английский особенно хорошо подходит локальному ИИ

Язык требует частой практики. Не обязательно час с преподавателем два раза в неделю: полезны короткие ежедневные диалоги, повторение слов, чтение вслух и небольшие writing tasks. Именно здесь локальный ИИ даёт сильное преимущество — с ним можно говорить сколько угодно, без поминутной оплаты API и без передачи детских голосовых данных в облако.

Разговор каждый день5–15 минут живой речи вместо редких занятий.
Не страшно ошибатьсяРебёнок может повторить одну фразу несколько раз без социального давления.
Персональные ошибкиСистема запоминает именно его do/does, articles, word order и vocabulary gaps.
Локальная приватностьАудио, чаты и прогресс остаются на домашнем сервере.

Это не дубль статьи про голосового ИИ-репетитора

Голосовой репетитор Как технически разговаривать с локальной моделью

VAD, STT, LLM, TTS, задержка и turn-taking.

English tutor Как именно учить язык

CEFR, correction policy, vocabulary, SRS, listening, writing и pronunciation assessment.

Свежие проекты уже строят именно такой сценарий

LangTeacher Полностью локальный voice tutor

faster-whisper, llama.cpp, local TTS, CEFR A1–C2, role-play, vocabulary quiz и native-language fallback.

GitHub →
Babblr Conversation + CEFR + adaptive corrections

Локальный Whisper, Ollama и разговорная практика с регулировкой сложности по уровню.

GitHub →
Tokori Local-first vocabulary workspace

SQLite, AI chat, click-to-define и spaced repetition для слов.

GitHub →
Sotto CEFR-course + speaking + listening

Self-hosted language learning, mastery across skills, pronunciation rubric и полностью локальный путь.

GitHub →

Пользовательский спрос тоже очевиден: в 2026 году в LocalLLaMA отдельно спрашивают полностью offline voice-to-voice tutor с bilingual input, corrections и нулевыми API-costs.

Полная архитектура локального English tutor

Речь ученикамикрофон · push-to-talk или VAD
↓
STTfaster-whisper / whisper.cpp
Audio bufferоригинал для pronunciation
Session contextCEFR · mode · target skills
↓
Conversation Tutorlocal LLM: диалог, correction, role-play
Pronunciation Enginealignment · phonemes · prosody
↓
Grammar/Vocab Analyzerошибки и новые слова
Student DBskill profile · patterns
FSRSчто повторить позже
↓
ОтветTTS + краткая письменная correction card

CEFR лучше использовать как каркас, а не как красивую наклейку «B1»

CEFR Companion Volume Совета Европы даёт уровни A1–C2 и дескрипторы по разным видам языковой деятельности. Для тьютора это гораздо полезнее, чем один общий score.

A1Очень простые фразы

Знакомство, семья, школа, базовые вопросы.

A2Повседневные ситуации

Магазин, хобби, планы, простые описания.

B1Связная бытовая речь

Истории, мнения, путешествия, объяснение опыта.

B2Более свободная аргументация

Дискуссия, нюансы, длинные высказывания.

C1–C2Гибкость и точность

Сложные тексты, стилистика и тонкие оттенки.

У ребёнка не должно быть одного «уровня английского»

SpeakingСвободность речи, грамматика, vocabulary range, interaction.
ListeningПонимание речи на разных скоростях и с разными голосами.
ReadingПонимание текста, inferencing, vocabulary.
WritingГрамматика, связность, spelling, структура.
GrammarОтдельные конструкции: to be, Present Simple, articles и т.д.
VocabularyRecognition, recall и активное использование.
PronunciationIntelligibility, sounds, stress, rhythm, intonation.
InteractionУмение переспросить, уточнить, поддержать диалог.

Например, ученик может уверенно читать на A2/B1, но говорить на A1. Если свести всё к одному числу, tutor будет выбирать неправильную сложность.

Как сделать входную диагностику без часового экзамена

Для ребёнка лучше adaptive placement на 10–15 минут. Система начинает с простого материала и быстро повышает/понижает сложность.

  1. 2 минуты разговора.Имя, возраст, школа, интересы — оценить базовую свободность.
  2. Короткий listening.2–3 фразы с вопросами по смыслу.
  3. Grammar probes.Несколько конструкций разных уровней.
  4. Vocabulary probes.Recognition + active recall.
  5. Чтение вслух.Отдельно собрать pronunciation sample.
  6. Мини-writing.3–5 предложений, если возраст позволяет.

Результат — не «твой уровень 43%», а профиль: speaking A1+, listening A2, vocabulary A2, Present Simple unstable, pronunciation intelligible but stress weak.

Свободный разговор: основа ежедневной практики

Conversation mode должен поддерживать настоящий turn-taking, а не превращаться в устный учебник. Хороший tutor задаёт короткие вопросы, реагирует на содержание и не прерывает каждую фразу ради исправления.

Student

Yesterday I go to swimming pool with my friend.

Tutor voice

Nice! What did you do there?

Correction card

Yesterday I went to the swimming pool. Past Simple → go → went.

Ключевой UX: голосовой ответ продолжает разговор, а correction появляется отдельно на экране. Так ребёнок не теряет нить беседы.

Role-play даёт разговору понятную цель

At a caféЗаказать еду, уточнить цену, попросить счёт.
At the airportНайти gate, спросить направление, понять объявление.
New classmateПознакомиться и рассказать о себе.
Game questПолучать подсказки только через английский диалог.
ShopРазмер, цвет, количество, цена.
Doctor / pharmacyТолько возрастно подходящие бытовые сценарии без медицинской диагностики.

Role-play позволяет заранее задать target vocabulary и grammar, а затем измерить, использовал ли ребёнок их в живой речи.

Русский fallback полезен, если он не превращает урок в переводчик

На начальном уровне ребёнок иногда реально не может сформулировать вопрос по-английски. Полностью запрещать русский — значит просто остановить диалог.

English firstОсновной язык сессии.
→
Student stuckМожно спросить по-русски.
→
Brief Russian help1–2 коротких предложения.
→
Return to EnglishПовторить нужную фразу и продолжить.

LangTeacher реализует похожий паттерн code-switching: native-language help допускается как аварийная поддержка, но tutor возвращает разговор на target language.

Исправлять каждую ошибку — плохая идея

Если ученик говорит медленно и после каждого предложения получает пять замечаний, он быстро перестаёт говорить. Correction policy должна зависеть от уровня и режима.

A1–A21 важная ошибка за turn

Приоритет — понятность и базовые конструкции.

B11–2 ошибки

Повторяющиеся grammar patterns и natural phrasing.

B2+Больше точности

Collocations, register, нюансы и advanced grammar.

Fluency modeCorrections после блока

Не прерывать поток речи.

Babblr и LangTeacher используют level-aware correction; это хороший product pattern: исправление — часть педагогики, а не автоматический grammar lint каждого предложения.

Grammar engine должен видеть повторяющиеся patterns

Одна ошибка he go может быть случайностью. Пять одинаковых ошибок — уже устойчивый pattern.

en.present_simple.3sgHe go → He goes
en.articles.a_ana apple → an apple
en.past_irregular.gogo → went
en.question.do_doesDoes he plays? → Does he play?

После нескольких повторов pattern попадает в Student DB и начинает влиять на следующие role-play и review tasks.

Персональный словарь должен рождаться из реального общения

Лучшие слова для повторения — не обязательно те, что были в абстрактном списке по теме. Если ребёнок трижды пытался сказать «соревнование» и не знал competition, это сильный кандидат в активный словарь.

Новая потребностьслово понадобилось в разговоре
→
Сохранитьword · phrase · example · source turn
→
Активироватьдать использовать в новом контексте
→
FSRSназначить следующий review

Tokori строит похожую local-first механику: слово из чата можно открыть, определить и сохранить в vocab deck, а затем повторять.

Vocabulary item
{
  "lemma": "competition",
  "cefr": "A2-B1",
  "status": "learning",
  "active_use_count": 1,
  "recognition_count": 4,
  "examples": [
    "I have a swimming competition on Saturday."
  ],
  "source": "conversation_2026-09-21",
  "next_review": "2026-09-23"
}

Интервальное повторение: слово нужно возвращать в новых фразах

Вместо одной карточки «competition — соревнование» tutor может повторять тот же item разными способами.

Review 1Recognition

Choose the correct meaning.

Review 2Gap

I have a ___ on Saturday.

Review 3Russian → English

«У меня завтра соревнование».

Review 4Speaking

Answer a question using the word.

Таким образом SRS планирует memory item, а local LLM создаёт новый контекст. Это уже отдельная архитектура от обычных flashcards.

Listening: не только «проиграть TTS и спросить перевод»

Хорошая listening-практика должна управлять скоростью, длиной, vocabulary load и типом задания.

GistПонять общий смысл без разбора каждого слова.
DetailУслышать конкретную цифру, имя, время или действие.
DictationЗаписать короткую фразу на слух.
ShadowingПовторить фразу с похожим ритмом и интонацией.
Minimal pairsОтличить близкие звуки в подходящих словах.
Adaptive replayПовторить медленнее только после первой самостоятельной попытки.

Sotto отдельно развивает adaptive listening, в том числе на материале слов, которые уже due for review. Это хороший пример связи listening с Student DB.

Writing: сначала черновик ребёнка, потом feedback

Для writing tutor действует тот же anti-answer принцип: не писать готовый текст вместо ученика.

1Prompt

Например: My weekend.

→
2Student draft

5–8 предложений самостоятельно.

→
3Error map

Grammar, vocabulary, spelling, cohesion.

→
4Revision questions

Исправить самому.

→
5Final feedback

Что стало лучше и что повторить.

Особенно полезно не переписывать весь текст, а отмечать 2–3 приоритетных ошибки, соответствующих текущему уровню.

Почему Whisper нельзя использовать как основной оценщик произношения

Whisper — очень хороший ASR. Но его задача — понять, какие слова сказал пользователь, а не выставить оценку артикуляции.

STT question «Что, вероятнее всего, было сказано?»

Контекст и language model помогают восстановить ожидаемое слово.

Pronunciation question «Как именно прозвучали отдельные звуки и просодия?»

Нужны phone-level acoustic evidence, timing, stress, rhythm и intonation.

Это приводит к важной ошибке: ребёнок может произнести слово неточно, а Whisper всё равно правильно его транскрибирует. Если сравнить только transcript с эталоном, система ошибочно скажет «произношение идеальное».

STT accuracy ≠ pronunciation quality. Transcript полезен для conversation loop и проверки содержания фразы, но pronunciation assessment должен быть отдельным модулем.

Forced alignment: где в аудио находится каждый ожидаемый звук

Если ученик читает известную фразу, система заранее знает ожидаемый текст. Forced alignment совмещает эту транскрипцию с аудио и определяет временные границы слов/фонем.

Expected textI like this book
→
Pronunciation dictionary / G2Pexpected phones
→
Audiochild recording
→
Forced Alignertime-aligned phones

Montreal Forced Aligner определяет forced alignment как получение time-aligned транскрипции из аудио и текста с использованием pronunciation dictionary. WhisperX использует похожую идею для более точных word-level timestamps поверх Whisper.

Но alignment — ещё не score. Он отвечает «где находится ожидаемый звук», после чего другой алгоритм должен оценить, насколько акустически реализация похожа на допустимое произношение.

Phoneme scoring и Goodness of Pronunciation

Классический подход к automatic pronunciation assessment — GOP (Goodness of Pronunciation): акустическая модель сравнивает evidence ожидаемого phoneme с альтернативами и получает phone-level score.

1Phrase match

Ребёнок вообще сказал нужную фразу?

2Phone alignment

Где находится каждый звук?

3Phone evidence

Какие звуки акустически получились?

4Error candidates

Например /θ/ регулярно заменяется на /s/.

5Pedagogical feedback

Одна практическая рекомендация.

Свежие работы 2026 продолжают улучшать pronunciation assessment: например, context-aware CTC пытается уменьшить ограничения традиционных GOP/CTC-подходов.

Практический локальный вариант — использовать готовый pronunciation component вроде OpenPronounce или строить собственный Wav2Vec2/CTC + G2P pipeline.

Pronunciation — это не только отдельные звуки

Word stressНа какой слог падает ударение.
Sentence stressКакие слова выделяются в высказывании.
RhythmКак распределяются ударные и безударные участки.
IntonationКак движется pitch и какой смысл это передаёт.
Speech rateНе слишком ли быстро/медленно для текущего уровня.
PausingГде появляются неестественные разрывы.

CEFR Companion Volume отдельно выделяет sound articulation и prosodic features, поэтому хороший tutor не должен сводить pronunciation к одному phone accuracy.

Цель — понятная речь, а не «звучать как носитель»

Современная шкала CEFR по phonological competence специально ушла от идеи, что рост уровня обязательно означает всё большую похожесть на native speaker. Ключевой ориентир — intelligibility и способность эффективно передавать смысл.

Хорошая цельРечь понятна, звуковые ошибки не мешают смыслу, stress/intonation работают.
Плохая цель«Убрать русский акцент любой ценой» и штрафовать за любое отличие от одного эталонного голоса.

Это особенно важно для ребёнка: pronunciation feedback должен быть нейтральным, конкретным и функциональным.

Для детской речи автоматическая оценка требует дополнительной осторожности

Acoustic models часто обучены главным образом на взрослой речи. Детский голос, шум в комнате и нестабильная артикуляция могут ухудшать alignment и scoring.

Исследование Interspeech 2024 специально изучало влияние ошибок forced alignment на автоматическую оценку детской речи и показало, что alignment error вносит заметный шум в pronunciation scores. Это ещё один аргумент не показывать ложную сверхточность.

Не «57/100 = плохо»Лучше диапазон уверенности и конкретный sound candidate.
Повторить несколько разНе делать вывод по одной короткой записи.
Сравнивать самого ребёнка с собойПрогресс во времени полезнее жёсткого adult-native threshold.
Низкая confidence → не оцениватьПопросить повторить в более тихой обстановке.

Как показывать pronunciation feedback ребёнку

Хороший интерфейс не должен превращаться в лабораторный спектрограф. Ребёнку нужна одна понятная цель за попытку.

Словоthree

Проблема вероятна в начале слова.

Ожидаемый звук/θ/

Язык слегка между зубами, воздух проходит вперёд.

Что услышала системапохоже на /s/

Показывать только при достаточной confidence.

Следующая попыткаthree → think → Thursday

Короткая серия, а не 20 повторов.

Для младшего ученика лучше формулировка «попробуй этот звук ещё раз», чем псевдонаучный рейтинг 63.7/100.

Какой TTS нужен English tutor

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

PiperЛёгкий CPU-friendly вариант для полностью локальной работы.
OmniVoiceИспользуется в LangTeacher для local voice generation/cloning.
Kokoro / другие local TTSМогут давать более естественный голос, если подходят по железу и лицензии.
Несколько голосовПолезно для listening, чтобы ребёнок не привыкал к одному тембру.

Для учебного режима полезны параметры speech_rate, pause_after_sentence и repeat_slow. При этом медленное повторение не должно быть единственной формой listening.

Какой STT нужен для разговора

Для conversation loop подходят faster-whisper или whisper.cpp: они дают качественную локальную транскрипцию и хорошо вписываются в offline stack.

VADОпределяет начало/конец реплики и уменьшает пустые транскрипции.
Language constraintМожно ограничить ожидаемые языки English + Russian.
Partial transcriptПолезен для низкой задержки в длинных репликах.
Raw audio retained brieflyНужно pronunciation engine, но не обязательно хранить навсегда.
Не смешивать два назначения. STT отвечает за понимание содержания реплики. Pronunciation engine отвечает за то, как прозвучала речь. Это разные задачи и могут использовать разные модели.

Какая LLM нужна для английского тьютора

Для ежедневного разговора важнее не максимальный benchmark-score, а стабильная работа с instruction following, английским, русским fallback, короткими ответами и structured output.

Быстрая 7–9B classХороший старт для живого диалога и низкой задержки.
Сильная multilingual modelНужна для качественного Russian fallback и explanation.
Structured JSONCorrection events, vocab candidates и error patterns лучше возвращать отдельно от conversational reply.
Context controlНе отправлять всю историю за месяцы в каждый turn — использовать Student DB summaries.
Пример structured turn result
{
  "spoken_reply": "Nice! What happened next?",
  "corrections": [
    {
      "original": "Yesterday I go",
      "better": "Yesterday I went",
      "skill_id": "en.past.irregular.go",
      "priority": "high"
    }
  ],
  "vocabulary_candidates": ["competition"],
  "session_language": "en"
}

Что хранить в Student DB

cefr_profileОтдельно speaking/listening/reading/writing.
grammar_patternsПовторяющиеся ошибки с частотой и последней датой.
vocabularyRecognition, active recall, examples, FSRS state.
pronunciation_patternsТолько устойчивые sound/stress issues с confidence.
conversation_topicsЧто интересно ребёнку и что уже обсуждали.
roleplay_historyКакие сценарии проходили.
listening_resultsGist/detail/dictation performance.
writing_errorsGrammar/spelling/cohesion patterns.

Сырые аудиофайлы лучше хранить ограниченное время или только по отдельному согласию. Для долгосрочного прогресса обычно достаточно derived events и нескольких benchmark recordings.

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

3 минWarm-up conversation

Свободный разговор на знакомую тему.

4 минTarget skill

Одна grammar/vocab цель из Student DB.

5 минRole-play

Использовать цель в живой ситуации.

3 минPronunciation

1–2 фразы или один устойчивый sound pattern.

3 минListening

Короткий новый аудиофрагмент.

2 минReview

2–4 due vocabulary/grammar items.

Не обязательно каждый день включать все блоки. Planner может менять пропорции по возрасту, уровню и текущим слабым местам.

Практический локальный стек

UIWeb / desktop

Conversation, corrections, vocab, progress.

STTfaster-whisper / whisper.cpp

Локальная транскрипция речи.

LLMllama.cpp / Ollama

Conversation tutor и structured analysis.

TTSPiper / OmniVoice / local TTS

Озвучивание и listening.

AlignmentMFA / WhisperX

Word/phone timing для read-aloud tasks.

PronunciationOpenPronounce / GOP pipeline

Phoneme-level feedback.

SRSFSRS

Vocabulary и grammar review.

StorageSQLite

Student DB и локальная история.

RAGУчебник / список тем

Школьная программа и объяснения.

PlannerPython / TypeScript

Собирает lesson plan и target skills.

LangTeacher уже показывает, что связка faster-whisper + llama.cpp + local TTS работает как полностью offline voice tutor. Остальные слои нужны, чтобы превратить разговорного бота в полноценную учебную систему.

Как собрать MVP без переусложнения

  1. Сделать voice conversation.Push-to-talk проще, чем сразу hands-free.
  2. Добавить CEFR preset.A1/A2/B1 с разной длиной реплик и словарём.
  3. Разделить spoken reply и correction card.Не ломать разговор исправлениями.
  4. Хранить grammar patterns.Начать с 10–20 самых частых конструкций.
  5. Добавить personal vocabulary.Слова из реальных сессий.
  6. Подключить FSRS.Возвращать слова и конструкции позже.
  7. Добавить role-play.3–5 сценариев по уровню.
  8. Добавить listening.Один TTS-голос, затем расширять.
  9. Pronunciation — отдельным этапом.Сначала read-aloud с известным текстом и confidence gating.
  10. После этого — adaptive planner.Автоматически собирать ежедневное занятие.

Типичные ошибки

Whisper score = pronunciation scoreSTT может правильно угадать слово даже при слабой артикуляции.
Исправлять каждую ошибкуConversation превращается в бесконечный экзамен.
Один общий CEFR scoreСкрывает разрыв между speaking, listening и writing.
Русский разрешён всегдаУченик перестаёт бороться за английскую формулировку.
Русский запрещён полностьюНачинающий ученик застревает и выходит из диалога.
Pronunciation = native accentНеправильная педагогическая цель и источник ложных штрафов.
Один эталонный голосListening не готовит к разнообразию реальной речи.
Слова учатся вне контекстаRecognition растёт, active use остаётся слабым.
Нет delayed reviewСегодня понял — система считает навык освоенным навсегда.
Сырые записи хранятся бесконечноПриватность ухудшается без реальной учебной пользы.
LLM пишет writing вместо ребёнкаТренируется чтение готового ответа, а не письмо.
Нет confidence thresholdPronunciation engine выдаёт ложные замечания как факт.

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

Можно ли сделать English tutor полностью без Интернета?

Да. STT, LLM, TTS, Student DB, FSRS и pronunciation components могут работать на локальном ПК. Модели нужно скачать заранее.

Подойдёт ли Whisper для оценки произношения?

Для транскрипции — да. Для полноценной pronunciation assessment — нет. Нужен отдельный phoneme/prosody pipeline, потому что ASR оптимизирован на распознавание слов.

Нужно ли стремиться к британскому или американскому акценту?

Нет как к обязательной цели. CEFR делает акцент на intelligibility и effective communication, а не на максимально точное копирование одного native accent.

Можно ли ребёнку иногда говорить по-русски?

Да как controlled fallback. Tutor кратко помогает по-русски и возвращает диалог на английский.

Как часто исправлять грамматику?

Зависит от режима и уровня. Для A1–A2 обычно лучше выбрать одну приоритетную ошибку за turn, а остальные сохранить для будущей практики.

Можно ли автоматически определять CEFR?

Можно получить приблизительный profile через adaptive placement, но лучше хранить уровни по отдельным навыкам и периодически перепроверять их.

Нужна ли мощная видеокарта?

Для базового voice tutor достаточно умеренной локальной модели; STT/TTS могут частично работать на CPU. Более мощная GPU улучшает latency и позволяет использовать более крупную LLM, но не является обязательной для самого сценария.

Как тренировать произношение свободной речи, если заранее нет текста?

Это сложнее. Сначала полезнее read-aloud tasks с известной фразой. Для свободной речи можно анализировать prosody и устойчивые patterns, но phone-level оценка становится менее надёжной.

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

Да, это один из лучших сценариев. Due vocabulary можно намеренно встроить в role-play, чтобы слово не просто узнавалось, а использовалось активно.

Нужно ли хранить голос ребёнка?

Не обязательно. Можно обрабатывать запись локально и удалять после извлечения transcript/pronunciation events, сохраняя только ограниченные benchmark samples при необходимости.

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

Следующий материал

Локальный ИИ для подготовки к ОГЭ и ЕГЭ

Как строить подготовку по официальной структуре экзамена, не позволять модели придумывать «задания ФИПИ» и проверять ответы отдельными валидаторами.