Введение
В последнее время заметно увеличилось количество методик изучения иностранного языка. При этом, гораздо меньше внимания акцентируется на, собственно, данных для обучения.
Экспериментируя, уже в зрелом возрасте, весьма продолжительное время, с разными вариантами изучения французского языка, пришел к выводу, что обучающие данные должны удовлетворять следующим условиям:
Данные должны быть разделены на порции.
Эти порции данных должны быть однородными.
Усложнение данных должно быть постепенным (от простого к сложному).
Основу для изучения должны составлять простые фразы, отдельные слова запоминаются в контексте.
Грамматика должна проявляться в данных. Например, сначала идет порция простых фраз в настоящем времени, потом, прошедшем, затем, будущем и так далее, по всем временам и прочим грамматическим нюансам. Для методистов – здесь непаханое поле.
Запоминать фразы, набирая их оригинальный текст руками, менее скучно, чем зубрить глазами.
При наборе фраз либо просмотре видео, с двуязычными субтитрами, желательно, громко повторять их озвучку. Это не обязательно делать всегда, хотя бы, иногда.
Проверку запомненного материала можно осуществлять программно.
Для реализации этих идей была предложена первая версия программы «L'école», с демо-данными, на разных языках (ссылка) и опубликована слегка обновленная версия 1.01 (с дополнительными демо-данными): ссылка (рис. 1).

Следует сказать, что весь материал там экспериментальный и имеет массу неточностей, над которыми надо еще работать и работать. Однако, в результате, удалось, пока предварительно, сформулировать условия получения обучающих данных, для изучения иностранного языка.
Естественно, что, проще всего, сгенерировать простые фразы самостоятельно и озвучить их с помощью TTS, благо, современные искусственные голоса уже могут быть, практически, не отличимы от естественных. Только для этого надо иметь соответствующую квалификацию, поэтому, пусть здесь работают профессионалы-лингвисты, а мы поищем подходящий материал в Интернете.
Поскольку, лично меня, интересует французский язык, то искать надо видео с французско-русскими субтитрами (поиск «чистых» фраз, на языке оригинала, не приводит к существенным успехам, хотя, можно попросить ИИ-сервисы сделать это, чем я, наверное, в следующий раз, и займусь). И, хотя, такие видео можно найти и скачать, но, аналогичных роликов, с французско-английскими субтитрами, гораздо больше.
Покажем, далее, как из одного обучающего видео, с французско-английскими субтитрами, получить два видео, с французско-русскими и англо-русскими субтитрами плюс получим данные для нашей обучающей программы, с которыми уже можно будет работать интерактивно.
Часть Первая – Результирующая
Возьмем один, достаточно большой, ролик на канале. Например, видео: «300 French Phrases for Beginner and Advanced»: «300 французских фраз для начинающих и продвинутых»: ссылка, на два с половиной часа. Причем, это повторная публикация аналогичного ролика: «Learn French — 500 phrases for conversations»: «Изучайте французский язык — 500 фраз для разговора»: ссылка.
На самом деле, там не 300 и не 500 французско‑английских фраз, а по 1300 тех и других, т. е., всего — 2600 фраз. Если быть точным, фразы там периодически повторяются. Уникальных фраз в этом видео — 1081. Соответственно, пар будет — 2162. А если убрать дубликаты, в рамках каждого языка, то записей будет немного меньше (1077 для французской части и 1065 для английской).
Но, по большому счету, это не важно, главное, получить нужный нам результат.
Для разнообразия, мы возьмем еще одно обучающее видео, на полтора часа, из другого канала: «800 Common French Words and Phrases You Must Know»: «800 распространенных французских слов и фраз, которые вы должны знать»: ссылка. Здесь уже количество заявленных фраз примерно соответствует фактическому. Но, если точно, то, по 782 для французской и английской частей.
Существует несколько вариантов решения нашей задачи, например, с помощью сервисов распознавания речи, либо скармливанию «ФайнРидеру» кадров изображений этих видео. Оба эти метода хорошо работают и меня вполне устраивают.
Но, я решил пойти по пути собственного распознавания текста изображений, с помощью своего скрипта на Питоне. Ну, хотя бы, ради творческого любопытства.
Так вот, оказалось, что если расщепить текст на символы (чего я смог добиться с помощью своего алгоритма «сглаживания символов» и использования разделительных отрезков на базовой линии шрифта строки текста), то распознавать эти символы можно уже с помощью всего четырех параметров. Для этого надо построить «функцию выбора», ставящую в соответствие эти четыре метрики – самому символу.
Поначалу я строил условия выбора для ключевой функции вручную. Чтобы распознать французский текст из видео, на два с половиной часа, мне потребовалось всего около пятисот таких условий. Результат получил, ошибок было менее двадцати.
Потом, понял, что эти условия можно строить «вножную», то бишь, полуавтоматически, используя результат, полученный из другого источника, например, бесплатного распознавания речи на 15 минут.
Тем самым, мы как бы строим собственную псевдо «LLM», с самой простой, но эффективной, в нашем случае, структурой. При этом совершенно не обязательно конструировать бесконечные ветви «elif» на Питоне, а можно просто воспользоваться, например, словарем, где ключом будет объединение четырех главных параметров матрицы символа, а значением – сам этот символ.
Однако, в данном случае, проще всего использовать «FineRider» (если его правильно настроить, то он очень хорошо распознает ключевые кадры видео). А, если применять лучшие ИИ-сервисы по распознаванию речи, то их лимиты можно обходить с помощью вэпээна.
В итоге, мы получили четыре файла данных, для нашей программы, которые находятся в папках (в zip-архиве, на Яндекс-диске – ссылка) :
\DataBase\Французский\FrWords&Phrases\ :
FrWords&Phrases0782.db переименуйте его, для красоты, в FrRuWords&Phrases0782.db
FrWords&Phrases1077.db переименуйте его, для красоты, в FrRuWords&Phrases1077.db
\DataBase\Английский\EnWords&Phrases\ :
EnRuWords&Phrases0782.db
EnRuWords&Phrases1065.db
Кроме того, в видео режиме программы, был сделан видео захват этих данных и получено, соответственно, четыре видео с двуязычными субтитрами:
https://my.mail.ru/mail/emmerald/video/_myvideo/18.html
https://my.mail.ru/mail/emmerald/video/_myvideo/19.html
https://my.mail.ru/mail/emmerald/video/_myvideo/20.html
https://my.mail.ru/mail/emmerald/video/_myvideo/21.html
Скриншот последнего видео можно посмотреть на рис.2.

Часть Вторая — Техническая
Здесь, в принципе, должно быть довольно много информации обо всех технических нюансах. Но, по‑хорошему, это набегает на отдельную статью, которую можно опубликовать, при наличии спроса. А, пока, чтобы не выпадать из темы статьи, мы это опустим.
Выводы
Главное, что я понял — данные рулят! Однако, подготовка качественных данных, по сути, полного обучающего курса, это достаточно объемная задача. Поэтому, говорить об обучающей системе, пока, рано, хотя очень хочется :). Таким образом, если появятся какие-то идеи с вашей стороны либо конструктивная критика, то это будет только приветствоваться.