Как я научился понимать англоязычные видео без субтитров

Спойлер: с помощью трех лет ежедневных занятий (но по чуть-чуть) и разработанного опенсорсного приложения.

Как я научился понимать англоязычные видео без субтитров

Начать смотреть видео на иностранном языке не просто. Этим объясняется большое количество статей с самыми разнами советами:

  • Смотреть с русскими субтитрами и не париться.
  • Смотреть с иностранными субтитрами и переводить на паузе, если не понятно.
  • Пересматривать многократно, комбинируя различные подходы.

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

Разумеется, это не серебряная пуля. Самое главное – ваше упорство и регулярность занятий. Технические средства лишь в какой-то мере облегчают процесс изучения. Это же относится и к разработанному мной приложению ReeePlayer, которое изначально использовалось только для своих нужд, но, надеюсь, будет полезно и другим. Приложение позволяет:

  • Смотреть фильмы с двумя субтитрами.
  • Изменять скорость воспроизведения, не искажая тембр.
  • Быстро выделять и сохранять фрагменты видео вместе с текстом.
  • Обеспечивать возможность интервального повторения подобно тому, как оно организовано в карточках Anki.

Далее я расскажу о паре интересных проблем, возникших при разработке. Ссылка на Гитхаб в конце статьи. Пока собрано только под Windows.

Интервальное повторение

Возможно вы видели такую картинку:

Как я научился понимать англоязычные видео без субтитров

Она говорит о том, что если повторять в определенное время через увеличивающиеся интервалы (например 1 час, 1 день, 2 дня, 3, 5, 8 дней и т. д.), то ваше знание будет поддерживаться на довольно высоком уровне. Есть куча исследований и алгоритмов, связанных с вычислением оптимального интервала следующего повторения в зависимости от того, насколько сложно было пользователю вспоминать на предыдущих повторениях. Впрочем, есть и много приверженцев простого подхода с фиксированными интервалами.

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

Тем не менее, до текущей версии дожил механизм вычисления интервала следующего просмотра. Приведу пример. Допустим, вы, как положено, повторили карточку несколько раз и ее следующее повторение должно быть через 10 дней. А вы вернулись к ней лишь через полгода. Она наверняка будет забыта, и предлагать повторить ее через 20 дней было бы странно. По-хорошему нужно начинать сначала, как для новой карточки.

А теперь посмотрим на эту ситуацию с другой стороны, в которой вы прилежный пользователь. Прошло только 9 дней из 10, но у вас прямо сейчас есть свободная минутка. Почему бы не засчитать это повторение и назначить следующее, ладно пусть не через 20 дней, а через 18.

Так, на основе этих рассуждений, появилась концепция уровня клипа. С помощью уровня вычисляется интервал следующего повторения приблизительно так: interval = C * 1.618 ^ level. Также от уровня зависит и функция изменения уровня в зависимости от прошедшего времени. Вот, например, для 5 уровня:

Как я научился понимать англоязычные видео без субтитров

Вы можете спросить, что за "почти +1 к уровню", почему нельзя увеличивать ровно на 1? Когда-то так оно и было, и на графике в районе 2.5 – 5 дней была горизонтальная прямая. Дело в том, что для меня терялся смысл раннего повторения, так как хотелось поддерживать целочисленный уровень, при котором создавалось ощущение, что все делаешь вовремя и правильно (привет, перфекционизм). Сейчас хорошо – как ни старайся, +1 все равно не получишь.

Способ хранения клипов

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

# files <-- clips <-- texts CREATE TABLE "files" ( "path" TEXT ); CREATE TABLE "clips" ( "file_id" INTEGER, "begin" INTEGER, "end" INTEGER, "time" INTEGER, "rep_time" INTEGER ); # Эта таблица позволяет осуществлять полнотекстовой поиск CREATE VIRTUAL TABLE texts USING FTS5(clip_id, idx, text);

Как видите, пути задавались жестко. Хотя они были относительными, тем не менее это делало невозможным изменение файловой иерархии. Реальный пример: я создал специальный каталог, покидал в корень несколько файлов, посмотрел. Затем скачал еще несколько видео с другого канала той же тематики в отдельный каталог, чтобы не мусорить:

(root) [Канал "Космонавтика Древней Греции"] Проблема сброса античных статуй из космоса.mp4 Как незаметно прикрыть дыру в пространственно-временном континууме.mp4

Через какое-то время, когда появились видео из совсем разных областей, я захотел объединить первые в одном общем каталоге:

[Космос] [Канал "Космонавтика Древней Греции"] Проблема сброса античных статуй из космоса.mp4 [Канал "Орбитальные лайфхаки"] Как незаметно прикрыть дыру в пространственно-временном континууме.mp4

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

Как я научился понимать англоязычные видео без субтитров

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

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

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

Как я научился понимать англоязычные видео без субтитров

Выбранный формат JSON позволяет наглядно просмотреть содержимое:

Как я научился понимать англоязычные видео без субтитров

Недостатки следующие:

  • Замусоривание.
  • Должны быть права на запись.
  • Теоретически открытие директории с большим количеством файлов займет некоторое время.
  • Для двух пользователей нужны разные файлы. Технически решаемо именами вида *.sasha.json, *.masha.json и т. п. А пока просто *.user.json.
  • Усложняется синхронизация и бэкапы. С git особых проблем быть не должно, но в Dropbox или Яндекс-диск просто так не положишь. Как вариант – добавить в приложение возможность создания бэкапа.

Зато никаких файлов-проектов, можно просто открыть любую директорию с видео- или аудио-файлами, и все клипы внутри нее будут прочитаны. Можно также, например, смотреть на работе (не рекомендую), а потом копировать на домашний компьютер.

Ссылки

22 показа
7.9K7.9K открытий
55 репостов
154 комментария

Очень круто! Респект за такой грамотный и систематизированный подход к обучению

Ответить

Блин, это очень круто, за старания и за то что заморочился!

Ответить

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

Ответить

Ага, а потом прилетаешь в Великобританию и понимаешь, что нихуя не понимаешь из-за их долбаного акцента. 

Ответить

На ютубе есть шикарное видео для изучения)

Ответить