В эпоху глобализации английский язык стал ключевым навыком, необходимым для личного и профессионального развития. В то же время, современные технологии, такие как искусственный интеллект и сервисы распознавания речи, открывают новые возможности для изучения языка. В этой статье я расскажу о том, как я создавал чат-бот Thought, который помогает пользователям улучшить английский язык с акцентом на произношение и грамматику, и поделюсь техническими деталями, стоящими за этим проектом.
Основная идея и выбор технологий
Идея Thought возникла из необходимости создания удобного инструмента, который мог бы помочь людям совершенствовать произношение и другие аспекты английского языка. Существующие решения часто либо слишком сложны в использовании, либо требуют значительных ресурсов. Я решил объединить простоту и доступность мессенджеров Telegram и ВКонтакте с мощью Yandex SpeechKit и GPT-4, чтобы создать обучающий чат-бот, доступный каждому.
GPT-4 используется в качестве ИИ-репетитора, который не только анализирует ошибки пользователей, но и предлагает персонализированные тренировки и рекомендации. Благодаря GPT-4, Thought способен вести диалог, давать развернутую обратную связь и адаптировать задания под уровень пользователя.
Для интересующихся, системный промпт к GPT:
Скрытый текст
Thought - чат-бот для тренировки английского произношения. В основном бот даёт фразы на английском, а пользователь должен произносить эти фразы, и бот показывает, где ошибки в произношении. Например, ты пишешь фразу "Hello, world", а из голосового сообщения пользователя распознано "hello would". Значит, пользователь допустил определенные ошибки в произношении слова "world". Анализируй эти ошибки и помогай пользователю их исправить. С тобой можно общаться как с настоящим репетитором, ты можешь отвечать как человек на вопросы в любом виде. У пользователя есть кнопки "режимы", "помощь". Если он пишет "помощь", напиши что готов ответить на любой его вопрос. Будь максимально понятен пользователю, даже если он не знает многих терминов. Например, большинство пользователей не знают слов "бот", "ИИ", "ассистент" и так далее. Называй себя "виртуальный репетитор Thought".
Можешь ставить пользователю баллы, или оценки, или оценивать в соответствии с какими-нибудь международными стандартами оценки. Периодически можешь вставлять интересные факты о произношении в английском языке.
Есть много разных режимов тренировки:
Спринт: Короткая сессия на 20 фраз, которые пользователь должен произнести. Нумеруй каждую фразу.
Марафон: Длительная сессия с разнообразными заданиями (произношение, аудирование, грамматика) без ограничения по времени, но с целью достичь определенного количества баллов или определенной оценки.
Тематический: Фокус на определенной теме с соответствующей лексикой и фразами. Позволяй пользователю самому придумывать тему.
Диалог: Имитация разговора, где бот задает вопросы или дает реплики, а пользователь должен адекватно отвечать.
Составь слова: Пользователь получает набор букв и должен составить как можно больше английских слов.
Исправь ошибки: Серия предложений с синтаксическими и лексическими ошибками, которые пользователь должен найти и исправить ошибки.
Перевод на скорость: Перевод фраз с русского на английский и обратно.
Сложный: Комбинация различных типов заданий с нарастающей сложностью, как в игре.
Фразы для тренировки пиши по одной на сообщение. Пиши также и транскрипции к фразам\словам. Напоминай пользователю, в каком режиме происходит сейчас обучение.
Принцип работы и оценка качества произношения
Основная сложность заключалась в том, чтобы создать точную и интуитивно понятную систему оценки произношения. Было важно, чтобы пользователи могли легко понимать, где они сделали ошибку. Для этого был реализован следующий алгоритм:
Предложение фразы: Бот предлагает пользователю фразу на английском языке вместе с транскрипцией. Транскрипция может быть в американском или британском варианте, в зависимости от предпочтений пользователя.
Аудио пример: Для удобства и лучшего понимания, бот отправляет аудио пример правильного произношения предложенной фразы.
Запись и распознавание: Пользователь записывает голосовое сообщение с произношением фразы, и это сообщение передается в сервис распознавания речи (в данном случае используется Yandex SpeechKit).
-
Сравнение и оценка: Распознанная фраза сравнивается с исходным текстом. Yandex SpeechKit часто предлагает несколько вариантов распознанного текста. Оценка осуществляется по следующему принципу:
Зеленый цвет: Если слова в произнесенной фразе полностью совпадают с исходной фразой, они считаются правильно произнесенными.
Желтый цвет: Если слова или символы частично совпадают с предложенными ботом вариантами, но есть отклонения, они обозначаются желтым цветом.
Красный цвет: Если слова не распознаны, они считаются неправильно произнесенными и отмечаются красным цветом.
Этот метод оценки позволяет пользователю наглядно видеть свои ошибки и работать над их исправлением.
Одной из ключевых задач была оптимизация работы с Yandex SpeechKit. Важно было добиться максимально быстрой и точной обработки голосовых сообщений, чтобы пользователь не ощущал задержек. Для этого пришлось экспериментировать с различными параметрами API и оптимизировать код.
Еще одной сложностью стала интеграция с GPT-4. Настройка промпта потребовала времени, чтобы репетитор мог давать адекватные и полезные советы, учитывая уровень пользователя. Важно было, чтобы GPT-4 не перегружал пользователя сложными терминами и был максимально простым и понятным.
Режимы тренировок
Thought предлагает два основных способа тренировки:
Простой режим: В этом режиме пользователь тренируется на заранее заданных фразах, что идеально подходит для новичков, стремящихся улучшить базовые навыки произношения.
Продвинутый режим: Этот режим включает ИИ-репетитора на базе GPT-4, который предлагает разнообразные сценарии тренировок. Каждый режим адаптирован под разные уровни подготовки и цели пользователя, что делает процесс обучения гибким и эффективным.
Заключение
Можете ознакомиться с Thought в Telegram: t.me/enthoughtbot или ВКонтакте: vk.com/enthought. Этот проект продолжает развиваться, и я буду рад услышать отзывы и предложения по его улучшению. Основной проблемой сейчас для меня является не техническая часть разработки, а попытки продумать максимально удобный и понятный интерфейс, и увидеть все те недостатки, которые я не замечаю. Также я начинаю вести канал по теме разработки чат-ботов и в целом по теме IT и ИИ, пока там пустовато, но скоро контент появится, так что подписывайтесь: t.me/curseknowledge.
Комментарии (13)
Myself12
04.09.2024 11:08+1Подсветил зелёным моё аудио но потом сказал что не получил его. Допиливайте. Хорошая игрушка :-)
warner
04.09.2024 11:08+2Не знаю про YandexKit но другие распознавалки речи, которые пробовал автоматически исправляют много ошибок, можно путать ударения, говорить с диким акцентом и получить распознанный текст. Они же для этого и работают, чтобы максимально разную речь в максимально разных окружающих условиях распознавать.
А какой тогда смысл сравнивать с исходным текстом, ведь это не про произношение получается, а про то, насколько твоя речь понятна распознавателю речи?Nevergreenin Автор
04.09.2024 11:08Я бы и рад придумать способ получше, но пока работаем с тем что есть. Однажды постараюсь сделать нейронку для этих целей. А вообще, хорошее произношение это и есть то, насколько твоя речь понятна разным распознавателям речи)
einhorn
04.09.2024 11:08можно использовать самую маленькую версию виспера - юзеру придется говорить более правильно, чтобы она его понимала: https://huggingface.co/openai/whisper-tiny
быстро, дешево, локально
shhhidan
04.09.2024 11:08+1Перешёл в Телеграм-бот, но он глючный: куда скидывать баг-репорты?
Nevergreenin Автор
04.09.2024 11:08В боте есть кнопка "отзыв", а ещё можно писать мне в телеграм канал, или в группу бота ВКонтакте, там есть для этого обсуждение
terthon
Сейчас бы с помощью ИИ пытаться улучшить навыки английского, над необходимостью которого тот же самый ИИ каждый день делает новые шаги. Не за горами когда с помощью ИИ, любой человек сможет говорить и понимать любой язык, при этом по факту не зная ни одного слова иностранного языка.
einhorn
Всякая бюрократия при устройстве на работу или при получении граждаства все равно никуда не денется.
Мы скорее движемся к миру, когда нужно будет понимать только английский, потому что на него все будет переводиться быстро, точно и дешево; а вот на другие языки (особенно маленькие) - встаёт проблема с недостатком данных для обучения огромных нейронок. Если у меня родной язык, скажем, бенгальский, и я хочу что-то перевести на него с армянского, то современные нейронки будут выдавать лютую дичь (но перевод на английский решает все проблемы).
KurtkaBeyn
Сейчас английский очень востребован. Разве не логично, что люди учатся ему используя современные инструменты, в том числе ИИ?
einhorn
тем временем перевод от гугла с японского