YoutubeCaptionReader (Чтец субтитров YouTube)
YouTube Caption Reader — это дополнение для NVDA, которое читает субтитры, отображаемые в данный момент в видео на YouTube.
Версия 1.0.2
Версия 1.0.2 удерживает озвучивание субтитров ближе к текущей позиции видео, когда субтитры обновляются быстрее, чем NVDA успевает их озвучивать. Она ограничивает устаревшую речь в очереди, использует первые видимые субтитры как базовую точку отсчёта и заменяет пересмотренный текст живых субтитров до его озвучивания. При очень быстрых обновлениях промежуточные фрагменты могут пропускаться, чтобы не отставать ещё сильнее.
Установка
- Загрузите
youtubeCaptionReader-1.0.2.nvda-addon с релиза 1.0.2.
- Откройте загруженный файл и подтвердите установку в NVDA.
- Перезапустите NVDA, когда программа попросит вас об этом.
- Откройте видео на YouTube, включите субтитры и начните воспроизведение.
Дополнение запускается с включённым автоматическим чтением субтитров.
Использование с переведёнными субтитрами
Функция Автоперевод YouTube может отображать корейские субтитры для видео с субтитрами на другом языке. Включите субтитры и выберите корейский язык в настройках субтитров YouTube. Дополнение читает текст, который YouTube предоставляет через API доступности Windows; само дополнение не переводит субтитры.
Команды
NVDA+Shift+Y: Включить или выключить автоматическое чтение субтитров.
NVDA+Shift+U: Прочитать субтитры, отображаемые в данный момент на экране.
NVDA+Shift+D: Открыть диагностический отчёт о дереве доступности субтитров YouTube. Эта команда предназначена для устранения неполадок.
Как это работает
YouTube обновляет субтитры без надёжной отправки событий для скринридера. Дополнение находит область субтитров плеера в дереве доступности NVDA и преобразует новейший видимый текст в речевой поток.
- Первые видимые субтитры после активации, обнаружения субтитров или перемотки видео используются как базовая точка отсчёта и не озвучиваются как новая речь.
- Завершённые предложения и границы фраз озвучиваются по мере их появления.
- Длинные автоматические субтитры без знаков препинания могут выдавать префикс по границе слова через 0,9 секунды.
- Короткий незавершённый суффикс ожидает стабилизации текста. Задержка адаптируется к недавним обновлениям субтитров — от 450 до 1200 миллисекунд.
- В NVDA одновременно отправляется не более одних субтитров от дополнения. Пока они озвучиваются, сохраняется только самый новый ожидающий фрагмент, а текст, ожидающий дольше 1,5 секунды, отбрасывается.
- Пересмотренный суффикс живых субтитров заменяет его неозвученную более раннюю версию, не заставляя озвучивать предыдущий результат распознавания.
- Обнаруженная перемотка видео очищает состояние сборки субтитров и ожидания, после чего новая позиция используется как базовая точка отсчёта.
- Когда YouTube убирает старую строку с экрана, дополнение сравнивает только текущее и непосредственно предыдущее представление субтитров. Это предотвращает блокировку последующих субтитров сокращённым представлением.
Чтобы не замедлять другой просмотр, опрос субтитров выполняется только тогда, когда NVDA определяет документ в фокусе как страницу видео или Shorts на YouTube.
Ограничения и устранение неполадок
- Дополнение зависит от того, что YouTube, браузер и NVDA предоставляют субтитры через API доступности Windows. Изменения в любом из них могут потребовать обновления.
- Собственные автоматические субтитры YouTube и автоперевод могут уже отставать от исходного аудио. Дополнение не может устранить эту задержку выше по потоку.
- Первые субтитры, уже видимые при запуске или возобновлении автоматического чтения, не озвучиваются автоматически.
NVDA+Shift+U может прочитать их по запросу.
- Очень быстрые субтитры могут объединяться, чтобы речь оставалась ближе к текущей позиции видео. В результате некоторые промежуточные фрагменты субтитров могут пропускаться.
- Речь, уже переданная NVDA, может завершиться, если только сама NVDA не прервёт её; дополнение не отменяет глобально всю речь, чтобы догнать время.
- Если субтитры видны, но не читаются, нажмите
NVDA+Shift+U. Если субтитры всё ещё не находятся, нажмите NVDA+Shift+D и приложите диагностический отчёт при сообщении о проблеме.
- Перед сообщением о проблеме с сочетаниями клавиш отключите любое другое дополнение для чтения субтитров YouTube, которое может использовать то же сочетание клавиш NVDA.
Пожалуйста, сообщайте о воспроизводимых проблемах в системе отслеживания ошибок. Укажите вашу версию NVDA, браузер, URL YouTube (если его можно опубликовать), выбранный язык субтитров и вывод команды NVDA+Shift+D, если он доступен.
Разработка
Этот проект использует официальный шаблон дополнений NVDA.
text
scons
python -m unittest discover -s tests -v
Сборка создаёт файл youtubeCaptionReader-1.0.2.nvda-addon в корневой папке репозитория.
Непрерывная интеграция выполняется на Windows и проверяет форматирование, модульные тесты и упаковку дополнения.
Лицензия
GPL-2.0-or-later. См. COPYING.txt.