- PVSM.RU - https://www.pvsm.ru -
Очень уж мне нравится смотреть сериалы, а еще я учу с их помощью языки. И если раньше я прилежно останавливал видео на непонятном месте, перематывал назад, включал субтитры и забивал незнакомые слова в Анки, то сейчас я делаю то же самое. Разве что лень заставила этот процесс автоматизировать, что привело к созданию расширения Say It Again для проигрывателя VLC со следующими особенностями:
В какой-то момент я понял, что просмотр сериалов с включенными субтитрами перестал давать ощутимые плоды (кроме повышения скорочтения). Но, выключая субтитры, я сталкивался со шквалом непонятных слов. Приходилось отматывать видео назад (конечно же либо недостаточно, либо слишком далеко от нужного места), включать субтитры, останавливать проигрывание, искать в словаре незнакомые слова, выписывать их в отдельный файлик, потом забивать в Анки (порой с контекстом, т.е. с фразой из фильма!) — в общем, геморрой. Отсюда и родилась идея расширения, которым я пользуюсь сегодня, и которым хочу поделиться с общественностью. Оно позволяет автоматизировать процесс сохранения слов с контекстом в текстовый файл такого вида:
desecrate [ˈdesɪkreɪt] оскорблять, осквернять, позорить You've desecrated my owls. Weeds S07E12
На самом деле не самый user-friendly процесс, но тут уж ничего не поделаешь. Скрипт проверялся на VLC 2.0.5 под Windows.
Можно обойтись без словарей (dict_dir = nil, chosen_dict = nil), но тогда значение слова придется забивать руками, и не будет транскрипции — смысл автоматизации теряется.
Также можно не подключать wordnet (wordnet_dir = nil), но тогда не будет работать нормализация слов — по слову was не найдет в словаре глагол be.
Начиная, кажется, с версии 1.1, проигрыватель VLC позволяет расширять свой функционал с помощью скриптов на Lua. Для этого расширение должно удовлетворять определенным требованиям (некоторые не обязательны, но VLC будет ругаться):
Вообще надо сказать, что механизм расширений довольно сырой, и VLC падает без предупреждения буквально от любого чиха. Вот некоторые моменты, которые я для себя отметил:
Описание форматов Stardict и WordNet привела Bienne [7] в своей статье [8], поэтому повторяться не буду. Экспорт в Anki работает через csv-файл. Последовательность полей в нем захардкожена в соответствии со следующей моделью карточек (или, как это сейчас называется, Note Type):
Расширение создавалось под собственные нужды, и его концепция менялась в процессе написания и использования. Отсюда следует немного хаотичный код и отпугивающий внешний вид. Тем не менее, я надеюсь, что кому-нибудь данные разработки покажутся интересными.
Автор: zm33y
Источник [9]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/razrabotka/27487
Ссылки в тексте:
[1] словари из Lingvo x3: https://www.google.com/search?q=lingvo+x3+stardict+torrent
[2] say_it_again.lua: https://github.com/zm33y/vlc-lua-sia
[3] прямая ссылка: https://github.com/zm33y/vlc-lua-sia/zipball/master
[4] базы WordNet: http://wordnetcode.princeton.edu/wn3.1.dict.tar.gz
[5] хранилище аддонов vlc: http://addons.videolan.org/index.php?xcontentmode=903
[6] coroutines: http://www.lua.org/pil/9.1.html
[7] Bienne: http://habrahabr.ru/users/bienne/
[8] своей статье: http://habrahabr.ru/post/161073/
[9] Источник: http://habrahabr.ru/post/169351/
Нажмите здесь для печати.