Медиа.маги Документация

Last updated

whisper

OpenAI/Whisper, транскрибирующий аудиоветвь в дорожку субтитров.

1. Сводка

Запускает распознавание речи OpenAI Whisper на аудиоветви процесса и отдаёт файл субтитров или скрытых субтитров. Узел потребляет аудиодорожку, выбранную выше по потоку, и производит дорожку Text, которую узлы ниже по потоку могут смультиплексировать, отгрузить сайдкаром или упаковать рядом с выходом адаптивного стриминга.

2. Когда использовать

  • Авто-субтитрирование поставки для доступности, когда у источника нет дорожки субтитров.
  • Генерация дорожек скрытых субтитров для адаптивного стриминга HLS или DASH через ccinject, чтобы плеер мог предложить выбор субтитров.
  • Подготовка быстрого черновика транскрипции, который редактор может проверить и исправить перед публикацией.

3. Входы

  • Audio[]filtergraph.AudioTransform. Аудиопоток, который модель транскрибирует. Подключите аудиоветвь, которую хотите распознать — обычно диалоговую дорожку, выбранную map/audio.

    Совместимые узлы выше по потоку:

    • map/audio — выбирает, какие аудиопотоки идут на выход.

4. Выходы

  • Textcore.TextTrack. Транскрибированная дорожка субтитров или скрытых субтитров в выбранном Format.

    Совместимые узлы ниже по потоку:

    • ccinject — вставляет скрытые субтитры/субтитры в выход.
    • dash — упаковывает выход для потоковой передачи MPEG-DASH.

5. Параметры

Форма «Настройки» узла whisper.

Форма «Настройки» — один столбец с четырьмя полями. Описаны в порядке следования в форме.

  • Node Label (string, по умолчанию пусто)

    Произвольное имя, отображаемое на плитке узла на холсте.

    • Что задаёт. Подпись над плиткой; на транскрипцию не влияет.
    • Когда менять. Задавайте, когда в одном графе несколько узлов whisper (например, ветви транскрипции по языкам), чтобы каждый был узнаваем с одного взгляда.
  • Format (enum, по умолчанию SRT, обязателен)

    Формат файла субтитров, который отдаёт узел.

    • Что задаёт. Проводной формат произведённой дорожки Text. SRT даёт текст SubRip, подходящий для сайдкар-файлов и широкой поддержки плеерами; WebVTT даёт W3C Web Video Text Tracks, подходящий для упаковки HLS и DASH.
    • Когда менять. Выбирайте WebVTT, когда упаковщик ниже по потоку — hls5, hls3 или dash. Выбирайте SRT для сайдкар-доставки, редакторских черновиков или совместимости с настольными плеерами.
    • Допустимые значения. SRT, WebVTT.
  • Language (enum, по умолчанию Auto, опционально)

    Двухбуквенный код ISO, подсказывающий язык источника; Auto даёт Whisper определить язык из аудио.

    • Что задаёт. Язык декодирования. Явная установка пропускает шаг автоопределения и принуждает модель транскрибировать на этом языке независимо от того, чем кажется аудио.
    • Когда менять. Задавайте, когда аудио на известном одном языке, а короткие клипы иначе сбивают детектор Whisper — типично для коротких трейлеров, вставок закадрового голоса и рекламных роликов. Оставляйте на Auto для длинного контента и неизвестных источников.
  • Model (enum, по умолчанию small, обязателен)

    Размер модели Whisper для загрузки. Большие модели обменивают время обработки и стоимость GPU/CPU на точность транскрипции.

    • Что задаёт. Какой чекпойнт Whisper выполняет транскрипцию. Большие чекпойнты дают лучшую точность слов, особенно на именах собственных и предметной лексике, но дольше работают на минуту аудио и потребляют больше памяти.
    • Когда менять. Используйте small для быстрых черновиков транскрипции и массовых прогонов, где грубые субтитры приемлемы. Используйте medium, когда поставка не будет проверяться человеком и важна точность — субтитры доступности, архивные транскрипции или субтитры производственного качества.
    • Допустимые значения. small, medium.

Соответствие JSON-ключей и названий полей

JSON-ключи opt, которые могут встретиться в файлах процессов, отображаются на подписи формы так:

JSON-ключ Название поля
format Format (srt / webvtt в JSON, SRT / WebVTT в форме)
language Language
model Model
name (не выводится в форме; имя выходного файла выводится из процесса)

6. Пример

Adaptive streaming with HLS, DASH and captions

Полный разбор — переменные, настройка каждого узла и ожидаемый результат — смотрите в Adaptive streaming with HLS, DASH and captions.

7. Где используется

  • Adaptive streaming with HLS, DASH and captions — транскрибирует диалоговую ветвь в дорожку WebVTT, которую шаг ccinject вкладывает в выходы HLS v3, HLS v5 и DASH.

8. Антипаттерны

  • Запуск medium, когда хватает small. Большая модель в несколько раз медленнее и существенно прожорливее к памяти. Для черновиков транскрипции и массовых партий начинайте с small и поднимайтесь, только если точность на выборочном выходе неприемлема.
  • Транскрипция низкокачественного аудио без фильтра очистки. Фоновый шум, обрезанная речь и сильное сжатие быстро деградируют выход Whisper. Поставьте цепочку аудиофильтров (af/aresample, af/stereo) выше по потоку, чтобы нормализовать частоту дискретизации и раскладку каналов перед транскрипцией, или перережьте аудиоисточник до запуска процесса.
  • Расчёт на Whisper для языков, которые он транскрибирует плохо. Модель сильна на широко распространённых европейских и восточноазиатских языках и слабее на малоресурсных. Для критичного к доступности выхода в случае слабого языка считайте дорожку Whisper черновиком и пропускайте её через редакторскую проверку перед отгрузкой.

9. Заметки

Каноническая цепочка доступности для адаптивного стриминга — map/audio → whisper → ccinject → hls5/dash: выберите диалоговое аудио, транскрибируйте его в WebVTT, вложите дорожку субтитров в видеопакет, затем отгрузите через HLS v5 и DASH со встроенным выбором субтитров. Рабочий пример — Adaptive streaming with HLS, DASH and captions.

Медиа.маги Документация