Перейти к содержанию
Публикация AiManual

WhisperX на Amazon SageMaker AI: транскрипция с метками спикеров и пословными таймкодами

AWS собрала Whisper, выравнивание wav2vec2 и диаризацию спикеров в один GPU-контейнер для Amazon SageMaker AI. Разбираем real-time и асинхронный режимы, форматы

Коротко

Что будет в материале

  1. 01

    Что такое WhisperX Deep Learning Container и какие задачи он решает

  2. 02

    Как развернуть WhisperX на Amazon SageMaker AI: real-time и асинхронный режимы

  3. 03

    Форматы вывода: JSON, verbose_json, SRT и VTT с пословными таймкодами

  4. 04

    Практические сценарии: контакт-центры, встречи, субтитры и комплаенс

AWS WhisperX Deep Learning Container закрывает конкретную боль: получить транскрипт с пословными таймкодами и метками говорящих, не собирая кастомный образ и не выкачивая веса вручную. Внутри уже лежат Whisper, модели выравнивания wav2vec2 и веса диаризации, а разворачивается образ на Amazon SageMaker AI в двух режимах: real-time и асинхронный эндпоинт. В анонсе AWS это подано как готовый GPU-образ для продакшена.

На выходе доступны JSON и verbose_json для машинной обработки, SRT и VTT для субтитров. Точность до слова нужна там, где ошибка стоит дорого: пропущенная метка спикера ломает комплаенс-проверку, а неточный таймкод ломает субтитр или вырезание фрагмента (redaction).

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

Что такое WhisperX Deep Learning Container и какие задачи он решает

WhisperX - открытый проект, который расширяет Whisper от OpenAI. К базовой транскрипции добавляются пословные таймкоды, метки спикеров и более быстрое распознавание. AWS упаковала этот стек в Deep Learning Container: один GPU-образ, который разворачивается на SageMaker AI в режиме real-time или асинхронного эндпоинта без сборки кастомного образа.

Задачи, под которые он заточен:

  • контакт-центры: измерение времени разговора, проверка соблюдения скриптов, анализ тональности реплик;
  • записи встреч: превращение часов аудио в текст, по которому можно искать;
  • медиа и e-learning: субтитры SRT и VTT для больших библиотек контента;
  • регулируемые отрасли (здравоохранение, юриспруденция, финансы): аудиты и судебное раскрытие, где важна привязка реплики к конкретному говорящему.

Чем WhisperX отличается от обычного Whisper

Whisper выдает таймкоды на уровне фразы или сегмента. Для расшифровки в блокнот этого хватает, для субтитров и аудита нет: субтитр либо уезжает вперед речи, либо висит на экране дольше нужного.

WhisperX подключает wav2vec2 forced alignment и получает время для каждого слова. Диаризация добавляет второй слой: реплики размечаются по говорящим, поэтому в транскрипте видно, кто именно сказал конкретную фразу. Если нужен только локальный запуск Whisper без облака и диаризации, это решается отдельно, у нас есть пошаговая настройка Whisper на Windows.

Что внутри контейнера и почему не нужен токен Hugging Face

Образ уже содержит Whisper, модели выравнивания и веса диаризации. Токен Hugging Face не требуется: не нужно регистрироваться на хабе, соглашаться с лицензиями и прокидывать секреты в контейнер. Для команд, которые разворачивают пайплайн в закрытом контуре, это заметно упрощает жизнь.

Контейнер следует стандартному контракту обслуживания SageMaker AI: слушает порт 8080, отдает POST /invocations для инференса и GET /ping для проверки здоровья. Аудио отправляется как multipart/form-data. Один нюанс: в первоисточнике описание поля с файлом обрывается, поэтому точное имя поля стоит сверить в документации перед первым запуском.

Как развернуть WhisperX на Amazon SageMaker AI: real-time и асинхронный режимы

Режим определяется длиной аудио и тем, как вы хотите получать результат. Оба варианта используют один и тот же образ, разница в контракте вызова и в том, где забирать готовый транскрипт.

КритерийReal-time эндпоинтАсинхронный эндпоинт
Тип аудиокороткие клипыдлинные записи
Передача данныхзапрос multipart/form-data напрямуюобъекты в Amazon S3
Получение результатаответ на запросзадание, результат в S3
Типичные задачиголосовые боты, быстрая проверка качестваархивы звонков, пакетная обработка, медиатеки

Синхронный real-time для коротких клипов

Real-time эндпоинт принимает аудио в запросе и возвращает транскрипт сразу: JSON, verbose_json, SRT или VTT. Режим подходит для интерактивных сценариев: голосовой бот, проверка записи сразу после звонка, быстрый контроль качества распознавания.

Про ограничение по длине клипа есть важная оговорка. Цифра 60 секунд часто упоминается во вторичных обзорах, но в анонсе AWS ее нет. Перед продакшеном сверьте актуальные лимиты синхронного вызова в документации SageMaker AI, иначе рискуете заложить в архитектуру неверную константу.

Асинхронный режим для длинных записей и пакетной обработки

Асинхронный эндпоинт берет на вход ссылки на объекты в Amazon S3, обрабатывает длинные записи и пакетные задания, а результат складывает обратно в хранилище. Здесь потребуется подготовить бакет и настроить IAM-роли: контейнеру нужен доступ к входным и выходным объектам. Такой сценарий закрывает контакт-центры с архивами звонков, встречи на час и больше, разбор медиатек.

В обоих режимах кастомный образ собирать не нужно: развертывание сводится к выбору контейнера, инстанса и параметров эндпоинта.

Форматы вывода: JSON, verbose_json, SRT и VTT с пословными таймкодами

Формат выбирается под задачу. JSON удобен машине, SRT и VTT - человеку и видеоплатформе.

JSON и verbose_json: машинная обработка

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

SRT и VTT: готовые субтитры

SRT и VTT - стандартные форматы субтитров, которые принимают видеоплатформы и плееры. Пословные таймкоды синхронизируют текст с речью точнее, чем разметка по сегментам, а метки спикеров дают возможность подписывать реплики диалога по участникам. Медиа- и e-learning-команды используют это для больших библиотек контента: субтитры генерируются пакетно, а не вручную.

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

Практические сценарии: контакт-центры, встречи, субтитры и комплаенс

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

Расшифровка встреч превращает записи в текст, по которому можно искать: кто что обещал, где обсуждали бюджет, какой пункт остался без решения. Если задача шире и нужен поиск по содержимому файлов в целом (речь в аудио, объекты на фото, эпизоды в видео), смотрите отдельный разбор локального поиска по содержимому файлов на Windows.

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

Ограничения и на что обратить внимание

Часть деталей, которые гуляют по вторичным материалам, в анонсе AWS не подтверждается. Проверять стоит следующие пункты:

  • лимит 60 секунд для синхронного режима: в первоисточнике не указан;
  • обязательный пин GPU AMI al2-ami-sagemaker-inference-gpu-3-1: подтверждения нет;
  • схема масштабирования (одна обработка на контейнер) и scale-to-zero: подтверждения нет;
  • готовый пример ноутбука в репозитории AWS Samples: подтверждения нет;
  • точный формат multipart-поля с аудио: описание в источнике обрывается.

Практический вывод: подтверждены сам контейнер и его контракт (порт 8080, POST /invocations, GET /ping, отсутствие токена Hugging Face), а операционные детали продакшена берите из актуальной документации AWS, а не из обзоров. Для асинхронного режима отдельно планируйте S3-бакет, права в IAM и жизненный цикл объектов: аудио и транскрипты часто содержат персональные данные, значит нужны политики хранения и удаления.

Место WhisperX DLC в экосистеме AWS и альтернативы

WhisperX DLC входит в мультимодальную серию AWS DLC: в ней три контейнера и четыре сценария, включая vLLM-Omni для синтеза речи, vLLM-Omni для изображений и видео, llama.cpp и WhisperX для распознавания речи. Логика серии одинаковая: взять открытый стек и отдать его готовым образом под конкретный тип нагрузки.

Альтернативы, если готовый контейнер не подходит:

  • свой инстанс на EC2 или локальном GPU: полный контроль над версиями и окружением, но CUDA, зависимости, очереди и автомасштабирование вы тащите сами;
  • проприетарные API распознавания речи: минимум эксплуатации, зато аудио уходит за периметр, а набор полей в ответе задает вендор;
  • локальный Whisper без диаризации: подходит, когда метки спикеров не нужны, а данные не должны покидать вашу машину.

Готовый контейнер экономит время на сборке образа, снимает вопрос с токеном Hugging Face и сразу встраивается в работу с IAM, S3 и эндпоинтами SageMaker AI. Если нужны пословная синхронизация и разметка по говорящим, а инфраструктура уже живет в AWS, развертывание WhisperX на SageMaker AI стоит проверить первым кандидатом.

Подписаться на канал