WhisperX в SageMaker: «кто сказал» и таймкод до слова без своего образа

У обычного Whisper таймкоды на уровне фраз — часто сдвинуты на секунды, и в переписке диспетчеров или созвона не видно, кто именно говорил. WhisperX поверх Whisper даёт пословное выравнивание через wav2vec2 и диаризацию спикеров. AWS упаковала это в GPU Deep Learning Container для SageMaker AI: образ в ECR вроде whisperx:3.8.6-cu128-amzn2023-sagemaker, без отдельного токена Hugging Face на веса.
Контракт сервинга стандартный для SageMaker: порт 8080, POST /invocations и GET /ping. Аудио уходит как multipart/form-data — файл в части file, рядом строки language, diarize=true и response_format. Ответ можно взять как json или verbose_json, а для монтажа — srt и vtt; внутри сегменты, слова с таймкодами и метки вроде SPEAKER_00.
Короткие клипы и длинные записи
Синхронный real-time endpoint SageMaker AI должен уложиться в 60 секунд на ответ — для коротких фрагментов. В демо AWS гоняют 40-секундный кусок радиопереговоров рейса 1549 через real-time, а полные ~3 минуты — через asynchronous inference: тело через S3, вызов InvokeEndpointAsync, без потолка по времени обработки; при простое можно уйти в scale-to-zero.
Деплой без сюрпризов
- Инстансы:
ml.g4dn.xlargeдля экономии,ml.g5.2xlargeс запасом по GPU. - На GPU-варианте обязателен
InferenceAmiVersion=al2-ami-sagemaker-inference-gpu-3-1— иначе старт падает сCannotStartContainerErrorбез логов. - Health-check при старте до 900 с: веса подгружаются лениво.
- Для async — бакет S3 с подстрокой
sagemakerв имени под политикуAmazonSageMakerFullAccess.
В контейнере та же цепочка, что в open-source WhisperX: VAD, батчированный Whisper, forced alignment и диаризация. Если дальше текст из аудио идёт в поиск, субтитры или лог для агента, разница между «примерно эта реплика» и пословной разметкой со спикером — уже про нормальную вырезку и цитату, а не косметику.
Источник: Speaker-labeled transcription with WhisperX on SageMaker AI.