Почему языковые репетиторы до сих пор стоят денег, а ИИ — бесплатный?
Вы платите 20-30$ в час за native speaker, который повторяет одно и то же с разными студентами. AI делает то же самое, но без усталости, без эмоций и за копейки. Проблема в том, что ChatGPT не умеет слушать ваше произношение. А Whisper не умеет объяснять грамматику. А вместе они могут.
Сегодня соберем полноценного AI-репетитора, который:
- Анализирует вашу речь через микрофон
- Корректирует произношение и акцент
- Генерирует персонализированные упражнения
- Объясняет ошибки как живой преподаватель
- Работает 24/7 и помнит все ваши слабые места
Важный момент: мы не будем писать код. Вообще. Ни строчки. Весь проект строится на n8n — low-code платформе, которая превращает сложные AI-пайплайны в конструктор из блоков.
Что нам понадобится (и почему именно это)
Забудьте про сложные ML-фреймворки. Наш стек выглядит так:
| Инструмент | Зачем нужен | Альтернатива |
|---|---|---|
| n8n | Собирает все компоненты в рабочий пайплайн | Zapier (дороже, менее гибко) |
| OpenAI API (Whisper + GPT-4) | Распознавание речи + анализ текста | Local Whisper + Llama (сложнее настраивать) |
| ElevenLabs API | Озвучка ответов репетитора | Edge TTS (бесплатно, но хуже качество) |
| Webhook | Прием аудио с фронтенда | WebSocket (сложнее реализовать) |
Почему не использовать готовые решения типа Duolingo Max? Потому что они не дают доступа к данным. Ваш репетитор будет учиться именно на ваших ошибках, адаптироваться под ваш темп и сохранять всю историю локально. Как в статье про "Школу в коробке", только для языков.
Архитектура: как всё соединить без боли
Представьте себе конвейер. Студент говорит фразу → система её распознает → анализирует ошибки → генерирует фидбек → озвучивает ответ. В коде это выглядело бы как ад из async/await. В n8n — как набор связанных блоков.
1 Настраиваем n8n и получаем ключи API
Если вы ещё не сталкивались с n8n, рекомендую начать с моего гида по голосовым ассистентам. Вкратце:
# Самый быстрый способ через Docker
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v ~/.n8n:/home/node/.n8n \
n8nio/n8n
После запуска откройте localhost:5678. Теперь нужны ключи API:
- OpenAI: platform.openai.com/api-keys
- ElevenLabs: elevenlabs.io/app/settings/api-keys
2 Создаем webhook для приема аудио
В n8n создаем новый workflow. Первый нод — Webhook. Настраиваем:
- Method: POST
- Path: /language-tutor
- Response Mode: On Received
- Response Data: "Audio received, processing..."
Это наш входной порт. Сюда фронтенд (браузер или мобильное приложение) будет отправлять аудиозапись студента. Аудио приходит в base64 формате — n8n автоматически его декодирует.
3 Распознаем речь через Whisper
Добавляем нод OpenAI. Выбираем операцию "Transcribe Audio". В конфигурации:
{
"model": "whisper-1",
"audio": "={{ $json.body.audio }}",
"temperature": 0, // Чем ниже, тем точнее транскрипция
"language": "en" // Явно указываем язык для точности
}
Whisper возвращает текст. Но это ещё не всё — нам нужна фонетическая транскрипция. Добавляем второй OpenAI нод с GPT-4:
{
"model": "gpt-4-turbo-preview",
"messages": [
{
"role": "system",
"content": "Ты — эксперт по фонетике английского языка. Преобразуй текст в фонетическую транскрипцию (IPA), выдели проблемные места. Пример: 'Hello' → /hɛˈləʊ/ (проблема: русскоязычные часто произносят 'хеллоу')"
},
{
"role": "user",
"content": "={{ $json.text }}"
}
]
}
Не используйте gpt-3.5-turbo для фонетического анализа. Он регулярно ошибается в IPA. GPT-4 стоит дороже, но даёт в 3-4 раза более точную транскрипцию. Экономия здесь бьёт по качеству обучения.
4 Анализируем ошибки и генерируем фидбек
Теперь самый интересный этап. Нам нужно сравнить то, что студент сказал (транскрипция от Whisper) с тем, что он должен был сказать (эталон).
Создаем базу упражнений прямо в n8n через нод "Code". Простой JSON:
// В ноде Code (JavaScript)
const exercises = [
{
id: 1,
phrase: "I would like a cup of coffee",
phonetic: "/aɪ wʊd laɪk ə kʌp ɒv ˈkɒfi/",
common_mistakes: [
"Русские говорят 'ай вуд лайк э кап оф кофи' вместо сокращения 'wʊd' и 'ə'"
]
},
// ... больше упражнений
];
return exercises;
Теперь сравниваем через GPT-4. Третий OpenAI нод в цепочке:
{
"model": "gpt-4-turbo-preview",
"messages": [
{
"role": "system",
"content": "Ты — терпеливый преподаватель английского. Сравни произношение студента с эталоном. Найди фонетические ошибки. Объясни, как исправить. Будь конкретен: какие мышцы задействовать, куда ставить язык."
},
{
"role": "user",
"content": "Эталон: {{ $json.expected }}\nСтудент: {{ $json.actual }}"
}
]
}
5 Озвучиваем ответ репетитора
Текстовый фидбек — это скучно. Добавим голос. ElevenLabs нод в n8n:
{
"text": "={{ $json.feedback }}",
"voice_id": "21m00Tcm4TlvDq8ikWAM", // Rachel - friendly teacher voice
"model_id": "eleven_monolingual_v1",
"stability": 0.5,
"similarity_boost": 0.75
}
Нод вернет URL с аудиофайлом. Отправляем его обратно студенту вместе с текстовым анализом.
Собираем фронтенд: проще, чем кажется
n8n выдал нам webhook URL. Теперь нужен интерфейс. Вот минимальный HTML + JS:
Где всё ломается (и как это чинить)
Я собрал десяток таких систем. Вот топ-5 проблем, с которыми столкнетесь:
| Проблема | Симптом | Решение |
|---|---|---|
| Whisper путает языки | Русский акцент распознается как смесь языков | Явно указывать language: 'en' в параметрах. И использовать prompt: 'Student is Russian, speaking English with accent' |
| GPT-4 генерирует слишком общие советы | "Practice more" вместо конкретных указаний | В system prompt добавлять: "Give 3 specific exercises. Example: 'For /θ/ sound, place tongue between teeth and blow air'" |
| Задержки в ответах | Студент ждет 10+ секунд | Кэшировать частые ошибки в Redis. Использовать stream ответы от GPT-4 |
| ElevenLabs дорого | $0.30 за 1000 символов | Кэшировать аудио ответы. Использовать предзаписанные фразы для частых ситуаций |
| Нет контекста между сессиями | Репетитор забывает прошлые ошибки | Сохранять историю в PostgreSQL. Добавлять RAG для персонализации. Как в этой статье про RAG |
От простого репетитора к умному агенту
Базовый пайплайн работает. Но это только начало. Вот что можно добавить:
Адаптивная сложность упражнений
Добавляем нод PostgreSQL. Храним успехи студента по каждому звуку. Когда студент трижды правильно произносит /θ/, система автоматически уменьшает частоту этого звука в упражнениях и добавляет более сложные комбинации.
Мультимодальные упражнения
Используем GPT-4V. Студенту показывают картинку "coffee shop", он должен описать её. Система анализирует не только произношение, но и правильность употребления слов. Как в статье про мультимодальные модели, только для обучения.
Сравнение с носителями
Записываем эталонные фразы от носителей языка. Показываем студенту спектрограмму его речи и спектрограмму носителя. Визуализация помогает понять разницу в интонации.
Стоит ли это делать самому?
Да, если:
- Вам нужен полный контроль над данными
- Хотите адаптировать систему под конкретный язык или диалект
- Планируете обучать сотрудников компании (корпоративный вариант)
- Просто интересно посмотреть, как работает мультимодальный ИИ изнутри
Нет, если:
- Нужен готовый продукт "из коробки"
- Не готовы платить за API вызовы (Whisper + GPT-4 + ElevenLabs)
- Обучаете детей (тут лучше человеческий преподаватель)
И последнее: не пытайтесь сделать идеальную систему с первого раза. Начните с распознавания 5 фраз. Добавьте фидбек. Потом озвучку. Потом адаптивность. Каждый следующий шаг будет проще предыдущего. Через неделю у вас будет репетитор, который работает. Через месяц — который учится вместе со студентом.
И да, это именно тот случай, когда low-code побеждает традиционную разработку. Потому что за время, которое один разработчик потратит на настройку асинхронных очередей для обработки аудио, вы уже соберете работающий прототип и поймёте, нужен ли он вообще вашим пользователям.