Whisper
whisper — открытая модель распознавания речи от OpenAI
Whisper — семейство моделей OpenAI для многоязычного распознавания речи и перевода аудио в английский. Веса опубликованы для локального запуска, а производные реализации ускоряют инференс и добавляют потоковую обработку. Качество проверяют на своём языке, шуме и словаре.
Коротко
Коротко. Whisper принимает аудио и выдаёт текст, а также может определить язык и перевести речь в английский. Это не один сервис, а опубликованная архитектура и несколько размеров весов. Скорость зависит от реализации и оборудования, а точность — от языка, записи и способа сегментации.
Что такое Whisper
OpenAI опубликовала Whisper как модель автоматического распознавания речи. Вместе с кодом стали доступны веса нескольких размеров под разрешительной лицензией репозитория. Благодаря этому модель запускают локально, в облачных сервисах и в сторонних оптимизированных движках.
Whisper обучалась на большом многоязычном наборе аудио с текстовыми парами. Разнообразие помогает работать с акцентами и шумом, но не делает качество одинаковым для всех языков и областей.
Какие задачи поддерживаются
- транскрипция речи на исходном языке;
- определение языка сегмента;
- перевод поддерживаемой речи в английский;
- временные метки сегментов;
- формирование субтитров;
- пакетная обработка архивов.
Диаризация, то есть определение говорящих, не является основной встроенной задачей Whisper. Её обычно добавляет отдельная модель или библиотека.
Как работает модель
Whisper использует encoder-decoder Transformer.
- Аудио приводится к ожидаемому формату.
- Из сигнала строится log-Mel spectrogram.
- Энкодер превращает спектрограмму в скрытое представление.
- Декодер генерирует текстовые токены и специальные метки задачи, языка и времени.
- Обвязка объединяет сегменты и сохраняет субтитры или обычный текст.
Модель работает с окнами ограниченной длительности. Для длинной записи приложение режет аудио, передаёт контекст между окнами и собирает результат. Именно этот слой часто определяет качество таймкодов и повторов.
Размеры моделей
В семействе есть варианты от компактных до крупных. Меньшие требуют меньше памяти и обычно быстрее, крупные чаще устойчивее на сложной речи. Конкретные имена и модификации стоит смотреть в официальном репозитории и документации выбранного runtime.
Выбор по одной таблице WER ненадёжен. Нужен тест на собственных записях, особенно если важны русский язык, профессиональные термины, телефонный канал или несколько спикеров.
Официальный код и производные реализации
Официальная реализация удобна как эталон поведения. whisper.cpp переносит запуск на разные CPU и GPU и предлагает собственные форматы. faster-whisper использует оптимизированный backend и поддерживает эффективную пакетную обработку.
Это не новые обученные модели сами по себе. Результат может различаться из-за квантизации, декодирования, voice activity detection и обработки длинного аудио.
Наглядный пример
Подкаст длится час и содержит двух ведущих, гостя и музыкальные перебивки.
Устойчивый процесс выглядит так:
- привести громкость и формат к единому виду;
- отделить речь от длинных пауз и музыки;
- распознать сегменты с фиксированной моделью и настройками;
- отдельно выполнить диаризацию;
- сопоставить текст со спикерами;
- проверить имена, числа и спорные места по таймкодам;
- экспортировать редакторскую стенограмму и субтитры.
Если пропустить проверку, модель может аккуратно оформить выдуманное имя, а ошибка будет выглядеть убедительнее сырой записи.
Настройки декодирования
На результат влияют язык, задача, temperature, beam search, предыдущий текст и фильтры тишины. Универсального пресета нет.
- Явно заданный язык помогает, когда он известен заранее.
- Контекст предыдущего сегмента поддерживает связность, но способен повторять ошибку.
- VAD сокращает тишину, но может обрезать тихое начало слова.
- Более широкий поиск вариантов повышает вычисления и не всегда исправляет редкие термины.
Менять параметры лучше на сохранённом тестовом наборе с эталонной расшифровкой.
Таймкоды и субтитры
Сегментные таймкоды подходят для чернового монтажа. Словесные метки и точный lip-sync требуют дополнительной проверки: паузы, музыка и перекрывающаяся речь смещают границы.
Для субтитров важны также длина строки, скорость чтения и логическое деление фразы. Автоматический SRT — хорошая основа, но не готовая редактура.
Как оценивать качество
WER сравнивает вставки, удаления и замены слов. CER полезен для языков и задач, где важны отдельные символы. Но средняя метрика не показывает цену конкретной ошибки.
Отдельно считают:
- имена и названия;
- числа, даты и единицы;
- профессиональный словарь;
- правильность языка;
- смещение таймкодов;
- ошибки на шуме и перекрывающейся речи.
Для медицинской, юридической или финансовой записи нужен человеческий контроль независимо от средней метрики.
Приватность и безопасность
Локальный запуск позволяет не отправлять аудио внешнему API, если весь pipeline действительно остаётся внутри контура. При облачной обработке проверяются условия хранения, регион, обучение на данных и доступ поставщика.
Сам файл тоже может содержать персональные данные и метаданные. Доступ, срок хранения и удаление проектируются для исходника, промежуточных сегментов и готовой транскрипции.
Whisper в ComfyUI
Whisper можно подключить через сторонние ноды или внешний сервис и использовать таймкоды в видео-workflow. Эти ноды не входят в базовую модель. Встроенный Manager ComfyUI помогает управлять расширениями, но источник, зависимости и маршрут аудио всё равно проверяются вручную.
Для воспроизводимости сохраняют точный файл весов, runtime, язык, параметры VAD и декодирования.
Частые ошибки
- Считать multilingual одинаково точным для всех языков. Объём и качество данных различаются.
- Приписывать Whisper диаризацию. Обычно это отдельный этап.
- Путать перевод с транскрипцией. Встроенный режим перевода имеет конкретное целевое направление.
- Оценивать скорость по названию видеокарты. Важны backend, размер модели, batch и формат.
- Доверять точным таймкодам без прослушивания. Границы сегментов приблизительны.
- Выбирать крупнейший вариант автоматически. Меньшая модель может быть достаточной и заметно дешевле в эксплуатации.
Частые вопросы
Whisper работает без интернета?
Да, если веса и runtime уже установлены локально и pipeline не обращается к внешним сервисам.
Поддерживает ли русский язык?
Да, многоязычные варианты распознают русский. Качество зависит от записи и словаря, поэтому его проверяют на своих примерах.
Можно ли использовать в реальном времени?
Whisper изначально удобнее для оконной обработки, но сторонние реализации строят streaming из коротких перекрывающихся сегментов. Задержка и стабильность зависят от этой обвязки.
Какая реализация лучше?
Официальная удобна как точка сравнения, оптимизированные — для конкретного оборудования и нагрузки. Лучший вариант определяется одинаковым тестом качества, скорости и памяти.
Главное
Whisper сделал многоязычное распознавание речи доступным для локальных и облачных продуктов. Его сильная сторона — переносимость и зрелая экосистема. Надёжная транскрипция всё равно требует правильной сегментации, отдельной диаризации, проверки критических слов и фиксации точной версии pipeline.