Pull to refresh

Comments 48

Приложение это хорошо. Но как я понимаю, лучшие результаты (по затратам времени) получаются не от простого зубрения словаря, а общение с нативным спикером с использованием новых слов.

Я думал что практически все функции обучения иностранными языками уже прочно взяли на себя ИИ. Мало того, если речь об английском, можно с бесплатным microsoft copilot поговорить голосом, состряпав голосом системный промпт (главное неудобство) получить неплохую помощь в общении с нативным терпеливым спикером.

Модифицируй свое приложение, добавив 'chatgpt', в системный промпт которого добавь список слов, которые сегодня тебе нужно выучить.

У всех свои слабые места в изучении. Кому-то грамматика нужна, кто-то на слух плохо воспринимает беглую речь, у кого-то проблемы с произношением, а кому-то не хватает словарного запаса. Я сделал ставку на словарный запас и на мне это неплохо сработало. Не скажу, что я был активно погружен в языковую среду, чаще всего я занимался самостоятельно.
Я хотел добавить chatgpt в другое приложение - генерация тренировочных программ на основе входных данных, но потом оказалось что api OpenAI требует минимального пополнения баланса и просит привязать карту. Если поделитесь бесплатными AI api, хотя бы ограниченными - буду благодарен.

у openrouter есть бесплатные модели free, но как обычно результат не гарантируется, лучше заплатить, хоть криптовалютой

p.s. вам жалко 5-10$ на эту задачу?

Зависит от целей. Если это инвестиция в стартап - ок. Я точно не помню, но для генерации тренировочных программ на 4 недели получалось довольно накладно. Думаю, я вернусь к этому вопросу, когда проработаю финансовую модель более подробно.
Вы пробовали использовать OpenAI api? Какой бюджет примерно закладывали что бы протестировать?

протестировать что?

Положите на счет минимальные 5$ и пополняйте по мере необходимости, мой счет на 5$ сгорел через год не использования (мне было удобнее openrouter использовать)

Я хотел максимально облегчить запуск и упростить поддержку: SQLite, простой фронт, минимум зависимостей и так далее т.к. приложение не коммерческое и его цель была - помочь себе и друзьям на языковых курсах. Возможно, в будущем сделаю экспериментальную AI-функцию. Почитаю про openrouter, спасибо за подсказку!

Привет. Честно не эксперт но я сталкивался с нуждой в API и могу предложить Groq API. Они раздают бесплатно. Есть Llama 3 70B. Контекст 8 к примерно. Скорость вроде до 500 токенов сек. Пользовался, работает. Использовал для голосового ассистента личного. Не помню сколько токенов даётся в месяц. Если надо такая информация, могу поискать.

Статья интересная конечно, но где само приложение посмотреть можно?
Не нашел ссылок

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

Это было бы здорово. Может многие бы протестировали, написали бы что можно доработать

Напишите мне в лс или в телеграм - дам ссылку.
Мой сервер с apache едва справляется с текущей нагрузкой, активные тестирования его точно положат)

Me: "Я написал свою версию MVC фреймворка с блекджеком и роутингом, что значительно повлияло на скорость работы приложения. Кроме того, я реализовал кэширование на стороне фронтенда, что помогло сократить количество запросов к серверу и позитивно сказалось на производительности.
Also me: "Мой сервер с apache едва справляется с текущей нагрузкой" ¯\(ツ)

Duolingo наше всё! Там есть практически всё, что делают другие разработчики в своих приложениях. А эта статья выглядит как реклама автором своего приложения, которое построено по карточной системе, т.е., показывается слово и надо выбрать его перевод.

Duolingo отличное приложение, с этим не спорю. Но, к сожалению, лично мне оно не дало результата. Возможно, я просто не его целевая аудитория.

Эта статья не про конкуренцию с крупными продуктами, а скорее про путь: как я, столкнувшись с языковым барьером, сделал простое MVP, чтобы заодно и учиться, и развиваться как разработчик. Никакой рекламы — сейчас всё крутится на локалхосте, и выключается, когда я сплю 😅

У Duolingo цель - удерживать посетителей и с этим оно прекрасно справляется. В этом смысле результат есть, но вот процесс затягивается. На сколько не проверял, почти сразу перешел на Busuu и AI языковые обучающие приложения, где можно говорить.

Я пробовал Duolingo на протяжении месяца в мае прошлого года. Да, основная проблема в том, что изучение языка слишком затянуто. Это может быть удобно, когда вы учите язык для себя. Но когда вы с чемоданом приехали в другую страну - приоритеты меняются круто. Именно поэтому я выбрал альтернативный вариант, который помог в сжатые сроки адаптироваться к окружению. На прошлой неделе я быстро перепрыгнул все модули в Duolingo, сдав комплексные тесты.

выглядит как реклама автором своего приложения

Автор написал кучу кода и поделился этим с сообществом, хабр для этого задумывался, ващета.

ШТА? Хабр задумывался для кудахтания "я тут накорябал на коленке супер-прогу, которая учит неграмотному английскому, но вам её не покажу", серьёзно?

Вы только что назвали это приложение рекламой, а теперь удивляетесь почему оно недоступно. Вы слишком активны в смене позиций, я не успеваю за ходом ваших мыслей. Не перестаю надеяться, что вы внесете хоть немного объективной критики. Спасибо за мнение!

Почему не вышло хотя бы до C1?

Слишком мало занимался с duolingo, исправлюсь)

Дуолинго не умеет в с1. Я дошёл до 130 баллов и это максимум на английском. Мне пишет, что материалы курса, которые соответствуют с1 и с2 пока недоступны.

А пробный экзамен duolingo сдать не пробовали? В разделе подготовки к экзамену еще упражнения есть.

Нет, не встречал в приложении такого.

Сразу простите за негатив, но у нас в школьные годы были подобные приложения, которые ИМХО были бесполезны. Я просто не понимаю зачем это все если есть Анки? Тем более что вот это очень большая ошибка:

Идея проста: загружается одно слово и четыре варианта перевода. Нужно выбрать правильный ответ. 

Почему? Ну вот смотрите, вы знаете как переводится Ironmonger? Допустим, что не знаете. А теперь смотрите, вот четыре варианта ответа:

  • Кот

  • Ручка

  • Полотенце

  • Торговец скобяными изделиями

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

Но только вот это не реальный случай. В реальной жизни у вас не будет вариантов. У вас есть исходное слово- вам нужен перевод здесь и сейчас. Вот поэтому для пополнения словарного запаса Анки лучше всех ИМХО.

По поводу загружаемого словаря. По моему опыту гораздо эффективнее вести свой словарь. Т.е. вы читаете, смотрите что-то и все слова, которые не знаете, добавляете в свой Анки словарь и так его учите. Например, сейчас у меня так накопилось уже почти 6к слов. Но это слова, которые я знаю что мне нужны, а не за меня их выбрали.

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

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

А чем вам Анки не подошел?

Смею предположить, что Анки прокачал бы только один язык, а своё приложение прокачало сразу три (PHP, SQL).

Насчёт прокачал, кстати, большие сомнения. Нормальный сервер для SQL не осилил, ограничился огрызком. Ну и нежелание выкладывать код, кстати, вполне объяснимо. У таких гениев со "своим MVC фреймворком" обычно дыра на дыре - от SQL инъекций до LFI и XSS. В общем, так же как с английским.

Нормальный сервер для SQL не осилил, ограничился огрызком.

Втаскивать в прототип полноценный SQL-сервер — типичный пример дизайна школоты.

обычно дыра на дыре

О, мсье — ясновидящий?

Элементарно, Ватсон! Вот предыдущее поделие этого же персонажа. Разумеется, про контекстное экранирование он даже не слышал.

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

Текущий *.db файл весит 20кб и не требует дополнительного развертывания. Можете назвать хоть одну причину что бы заменить его на MySql или любую другую серверную СУБД, кроме комплекса неполноценности?

Ну гипотетически, через Анки можно и PHP и SQL учить, почему нет. Хотя в контексте практики конечно писать свой лесопед лучше ;)

Все верно, задача pet-проектов - попрактиковаться с новыми языками и желательно, сделать что-то полезное.

Как выпустишь его, надо будет попробовать)

Уже выпустил, просто доступ ограничен т.к. на тестовой виртуалке с одним ядром крутится, на которую иногда прилетает по 400 запросов в минуту. Но могу дать доступ в лс, если интересно.

ОМГ, реклама убогого приложения с дизайном из 90-х под соусом "я выучил английский!" Ага-ага, ультра-модным способом из позапрошлого века - перекладыванием карточек.

Да ещё и с неграмотными переводами. "Случайно" тут переводится корявым программистским "randomly" а не человеческим "accidentally". Но главное даже не это, а давно всем известные минусы этого способа - полное отсутствие грамматики и многозначность слов в английском, когда одно и то же слово (взятое само по себе) может быть и существительным, и прилагательным, и глаголом, и наречием. Не говоря уже о совсем разных смыслах слова, как, например, log или sound. Так и будет счастливый финалист этой программы, обвешанный медальками геймификации, читать по складам - "Бревно в"...

Интересное замечание. Но ваши познания в английском меня поразили. Браво!

Это позволило быстро разрабатывать прототипы приложений, не загружая множество различных зависимостей, как в случае с Laravel, что значительно повлияло на скорость работы приложения.

ОМГ, снова этот детский лепет. Загрузка зависимостей у него влияет и на скорость разработки приложения (которая получается сравнимой с парой минут, требуемых на загрузку. Да с такой скоростью этот вундеркинд скоро выкинет всех нас из профессии!) и - внезапно - на скорость работы приложения. Видимо этот гений полагает, что зависимости загружаются каждый раз снова при каждом обращении к приложению

На втором курсе преподаватель орал на студентов, которые для счетчиков вместо byte использовали integer, потому что он потребляет в 4 раза больше памяти. 7 раз отмерь, 1 раз скомпилируй. Но ваше стремление к изобилию вычислительных ресурсов похвально. Как только найду применение контейнерам и тяжеловесным ORM в данном приложении - сразу перепишу на laravel, а может и на symfony. Насчет дизайна полностью согласен, но могло быть и хуже, командная строка dos, например.

PHP — это не профессия.

Как я прокачал английский до B2 в США, разработав своё языковое приложение

Ничто не ново под Луной!

Я же выбрал, пожалуй, самый неочевидный способ – решил просто читать словарь.

Ну, есть более интересные способы. Например, смотреть видео с озвучкой, словами и переводом. См., допустим, мои ролики (у меня интерес к французскому языку):

«Французско-русский словарь - Часть 01а» – https://www.youtube.com/watch?v=Oevqk0z5SrA .

Если нужно просто научиться читать по-французски, то:

«Французская фонетика - чтение по слогам» – https://www.youtube.com/watch?v=42XI2ad6OwE .

Но, для работы со словами и фразами (по методу «запоминание руками + интерактивный звук») можно воспользоваться моей программой «L'école» (см. мою статью: «Новая компьютерная программа для запоминания иностранных слов и фраз» – https://habr.com/ru/articles/848836/ ). Там приведены примеры и по другим иностранным языкам. Кроме того, готовлю дополнительные материалы для публикации.

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

https://www.youtube.com/@scholium9807
https://dzen.ru/id/66ef0791df72c165d37a34ea
https://my.mail.ru/mail/emmerald/video/_myvideo

Есть также мое описание процесса создания таких субтитров: «Создание двуязычных субтитров к видео, распознавание и перевод речи» – https://habr.com/ru/articles/862716/ .

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

Плохо искали. См. сайт https://kaikki.org (с разными языками), на который я вышел из Гитхаба – https://github.com/hbenbel/French-Dictionary .

В какой-то момент я получил бан за слишком активные запросы. Эту проблему удалось обойти, хаотично подставляя различные прокси-серверы из списка в 500 штук.
Несколько часов мучений спустя, у меня наконец был JSON-словарь из 8000 слов.

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

На всякий случай я сделал обе языковые пары: англо-русскую и русско-английскую.

В моей обучающей программе это делается на автомате. Плюс есть еще режим «Видео» (всего поддерживается шесть режимов работы с данными).

В принципе, ваш вариант изучения языка и подготовки данных для своей обучающей программы, ничуть ни лучше моего. У меня тоже и разные языки есть, в т.ч., испанский и немецкий (правда, данных по ним пока мало, но это дело наживное).

Кроме того, я заинтересовался идеей написания собственного самоучителя по французскому языку на французском языке (!) плюс видео к нему. Смотрите первый пример на эту тему:

001-ФранцузскийАлфавит.mp4 : https://disk.yandex.com/i/G4pJZ__AKhtHsw ,
001-ФранцузскийАлфавит.pdf : https://disk.yandex.com/i/DwEX79lOXZlJyw .

Сейчас, я нашел классный канал на Ютубе с тысячами французско-английских фраз. Обычно, для получения встроенных субтитров я использовал свою неопубликованную программу «МедиаТекст» (см. скриншот: http://scholium.webservis.ru/Pics/MediaText.png ). Здесь можно было бы повторить этот трюк, причем, в итоге, получилось бы два типа данных, с озвучкой: французско-русский и англо-русский варианты. Проблема только в том, что в этих видео оригинальных фраз в несколько раз меньше, просто они чередуются в разном порядке. Однако чередовать я могу и в своей программе, поэтому мне нужны только оригинальные фразы с их озвучкой.

Для решения этой проблемы можно использовать либо ИИ-сервисы (но, для хорошего, бесплатного, только по десять минут, а у меня озвучки на многие часы) либо распознавание текста субтитров. Я пошел по второму пути и уже научился расщеплять символы по криволинейному контуру между ними. Теперь, вот, перешел к процедуре распознавания этих символов на базе протяженных метрик, на Питоне. Раньше я использовал для этого свою программу на C++/WTL, непосредственно работающую с видео, которая использовала точечные метрики, строго для определенного шрифта. Протяженные метрики, на Питоне, обещают быть более гибкими…

Интересный подход. У меня проблема возникла с поиском словаря, где слова разбиты по секциям. То есть если я прочитал набор слов для уровня B2, то я хочу тренировать только эту группу.

Автор, оффтоп вопрос если можно. Как вы попали в США? Грин карта?

Если вы про лотерею, то нет. Хотя это, очевидно, самый легкий способ.

Зубрение слов бесполезно. Слова хорошо набираются просто из книг и фильмов для удовольствия.

Настоящая проблема - активный словарный запас, когда вы не просто знаете слово, а умеете им пользоваться для выражения мыслей. И тут есть два способа как его активировать (не считая самого лучшего - репетитора) - перевод с родного языка и объяснения на тему. Ну и куда здесь без помощи AI.

Как то потеряв работу, за три месяца без дела и осененный этими идеями я создал сайт. Он полу-живой, никак нет времени допилить. Когда-то точно закончу, чтобы польский выучить. Хостится на a2b2.eu, если интересен подход.

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

Sign up to leave a comment.

Articles