Короткий аудиофрагмент из Common Voice и двухчасовое совещание с перебиваниями, шумом кондиционера и названиями продуктов проверяют систему распознавания речи по-разному. Поэтому место модели в публичном бенчмарке еще не отвечает на главный вопрос бизнеса: сколько времени уйдет на получение пригодного текста из реальной записи.
Для транскрибации звонков, лекций, интервью и субтитров важна не только точность распознавания слов. На итог влияют сегментация длинного файла, работа с тишиной, пунктуация, диаризация спикеров, устойчивость API, поддержка форматов и качество склейки результата.
Ниже сравним OpenAI Whisper Large v3, Microsoft VibeVoice-ASR, Yandex SpeechKit и Google Cloud Speech-to-Text с Chirp 3. Лучшей модели для всех сценариев нет. Для русскоязычных длинных записей сильный движок нужно оценивать вместе с инфраструктурой и постобработкой.
Что умеют модели и где начинаются ограничения
1. OpenAI Whisper Large v3 и Large v3 Turbo
Whisper построен как encoder-decoder Transformer. Исходное семейство обучалось на 680 000 часах многоязычного аудио. Версия Large v3 получила значительно больший обучающий набор: 1 млн часов с неполной разметкой и 4 млн часов псевдоразмеченного аудио. Large v3 Turbo сокращает число слоев декодера с 32 до 4, поэтому работает заметно быстрее ценой небольшого снижения качества.
Сильная сторона Whisper для русского языка проявляется на сложной речи: разговорной лексике, смешении русских и английских терминов, неидеальной дикции и фоне. Модель сразу генерирует текст со знаками препинания и обычно дает более читаемый черновик, чем классические ASR-системы без развитой языковой части.
Но у архитектуры есть ограничение: базовое окно Whisper рассчитано примерно на 30 секунд аудио. Длинный файл все равно обрабатывается последовательно. Библиотека или провайдер режет запись на сегменты, переносит контекст и затем собирает результат.
Именно здесь две системы на одной модели могут показать разное качество. Ошибки появляются не только внутри сегмента, но и на границах: пропавшее слово, повтор фразы, неверный таймкод, потерянный спикер. На тишине или музыке Whisper способен генерировать правдоподобный, но отсутствующий в записи текст. Для production-сценария нужны VAD, контроль повторов, фильтрация пустых сегментов и логика восстановления контекста.
У официального OpenAI API в 2026 году есть и новые модели транскрибации, включая GPT-4o Transcribe и вариант с диаризацией. При этом загрузка файла через стандартные speech-to-text endpoints по-прежнему ограничена 25 МБ. Большие записи приходится сжимать или делить до отправки.
2. Microsoft VibeVoice-ASR
VibeVoice-ASR появился в открытом доступе в январе 2026 года. В официальном репозитории текущая модель обозначена как VibeVoice-ASR-7B. Она принимает до 60 минут непрерывного аудио в пределах контекста 64K и за один проход формирует структурированный результат: кто говорил, когда и что сказал.
Модель объединяет распознавание, таймкоды и диаризацию. Поддерживаются пользовательские hotwords: имена, бренды, аббревиатуры и термины можно передать как контекст. Для технических интервью и корпоративных встреч это полезнее, чем попытка исправлять каждое название после транскрибации.
В официальном тесте MLC-Challenge для русского языка VibeVoice-ASR показал WER 12,40%. Эта цифра характеризует конкретный датасет и протокол. Сравнивать ее напрямую с результатами Whisper, Yandex или Google из других тестов нельзя.
Практическая цена часового контекста заключается в требованиях к развертыванию. Нужны Python, CUDA, FFmpeg, совместимое окружение и NVIDIA GPU. Репозиторий Microsoft предлагает запуск через NVIDIA PyTorch Container. Сторонние сборки снижают порог входа, но не снимают задачи обновления зависимостей, мониторинга памяти и масштабирования очереди.
VibeVoice интересен разработчикам, которым нужен открытый long-form ASR с диаризацией и возможностью дообучения. Для обычного пользователя это пока не готовый облачный продукт. Microsoft прямо рекомендует дополнительное тестирование и разработку перед коммерческим применением.
3. Yandex SpeechKit
SpeechKit изначально ориентирован на русский язык и российские сценарии. Сервис поддерживает потоковое, синхронное и асинхронное распознавание. В актуальной документации синхронный режим рассчитан на короткие файлы до 30 секунд, асинхронный принимает записи длительностью до 4 часов и размером до 1 ГБ.
Утверждение, что Yandex не расставляет пунктуацию, в 2026 году устарело. Режим литературного текста добавляет заглавные буквы и знаки препинания. Есть нормализация чисел и дат, определение дикторов, дообучение и обработка результата с помощью LLM.
Слабое место SpeechKit не в отсутствии базовых функций, а в количестве режимов, параметров и ограничений. Разработчику нужно выбрать API, способ загрузки, формат, модель, нормализацию и схему получения результата. Для длинных файлов применяется асинхронная обработка, поэтому интеграция включает создание операции, проверку статуса и получение транскрипта.
Опубликованный на Habr тест 2025 года показал неудачный результат SpeechKit Playground на части файлов, включая повторы строк. Это полезный сигнал, но не универсальная оценка всей платформы: автор использовал собственный набор из 16 записей, а ошибки запроса включал в WER. Перед внедрением SpeechKit нужно тестировать на звонках и записях именно вашего домена.
4. Google Cloud Speech-to-Text с Chirp 3
Сравнивать Whisper с абстрактным Google Speech в 2026 году некорректно. Актуальная многоязычная модель Google называется Chirp 3. Она поддерживает русский язык, потоковое и пакетное распознавание, автоматическую пунктуацию, адаптацию под фразы и автоматическое определение языка.
Для длинного аудио используется BatchRecognize. В документации Chirp 3 указан типовой диапазон от одной минуты до одного часа. Русский доступен для транскрибации, но диаризация Chirp 3 на момент проверки перечислена только для ограниченного набора языков, без ru-RU.
Google удобен компаниям, которые уже работают в Google Cloud и готовы хранить аудио в облачной инфраструктуре проекта. Сильные стороны здесь не сводятся к качеству отдельной модели: IAM, региональные endpoints, журналирование, квоты и масштабирование входят в общую платформу.
Заявлять, что Google всегда хуже Whisper на русском, без единого контролируемого теста нельзя. На чистой диктовке разница может быть небольшой, а на телефонной записи с отраслевой лексикой порядок моделей способен измениться.
Техническое сравнение STT-моделей для русского языка
Таблица показывает, почему вопрос о лучшей модели распознавания речи нельзя закрыть одной цифрой WER. Сначала определите сценарий: звонки, интервью, субтитры, поток или архив. Затем соберите тестовый набор хотя бы из 20–50 своих файлов и посчитайте не только ошибки слов, но и стоимость ручной правки.
| Критерий | Whisper Large v3 | VibeVoice-ASR-7B | Yandex SpeechKit | Google Chirp 3 |
|---|---|---|---|---|
| Русский язык | Сильный универсальный вариант | Поддерживается, есть официальный результат на MLC-Challenge | Один из основных языков платформы | Поддерживается в Chirp 3 |
| Публичный сопоставимый WER | Нет единого числа для реальных длинных записей | 12,40% на русском MLC-Challenge | Нет открытого результата на том же тесте | Нет открытого результата на том же тесте |
| Контекст одного прохода | Около 30 секунд | До 60 минут | Зависит от режима API | Зависит от метода, для long-form используется batch |
| Пунктуация | Генерируется моделью | Генерируется моделью | Есть литературный текст и нормализация | Есть автоматическая пунктуация |
| Диаризация | Требуется отдельный модуль или специальный API | Встроена | Есть, но с ограничениями режима | Есть не для всех языков, русский в списке Chirp 3 не указан |
| Реальное время | Не нативный режим open-source Whisper | Нет | Есть | Есть |
| Self-hosted | Да | Да | Нет, кроме отдельных корпоративных вариантов | Нет |
| Сложность собственного внедрения | Высокая для длинных файлов | Очень высокая | Средняя | Средняя |
| Главный риск | Склейка, галлюцинации, GPU | GPU, окружение, зрелость | Режимы API и проверка качества на своем домене | Облачная сложность, квоты и региональные ограничения |
Попробуйте сравнить качество распознавания на своем аудио бесплатно
Боль бэкендера: почему поднять свой Whisper сложнее, чем кажется
Склейка чанков
Разделить аудио через FFmpeg несложно. Сложно разделить его так, чтобы фраза не оборвалась на полуслове. Обычно сегменты делают с перекрытием. После распознавания нужно найти повторяющийся участок текста, удалить дубль и сохранить таймкоды.
На одном чистом монологе эвристика работает. На совещании с короткими репликами, паузами и перебиваниями она начинает ошибаться. Чем больше правил добавляется, тем сильнее проект превращается из вызова модели в отдельную ASR-платформу.
Галлюцинации на тишине
Музыка, длинная пауза, шум зала и тихая речь могут запустить ложную генерацию. Whisper иногда повторяет последнюю фразу или создает типовые подписи, которых не было в аудио.
Production-конвейер использует VAD, минимальную длительность речи, пороги уверенности, контроль компрессии текста и поиск повторяющихся последовательностей. После этого все равно нужен журнал проблемных сегментов для повторной обработки.
Форматы и лимиты
Пользователь загружает не только MP3. На вход приходят WAV, M4A, OGG, FLAC, MP4, AVI, записи телефонии с двумя каналами и файлы с нестандартной частотой дискретизации. Их нужно проверить, извлечь аудиодорожку, привести к ожидаемому формату и не потерять метаданные времени.
Лимит OpenAI в 25 МБ добавляет еще один слой: сжатие, нарезку, очередь запросов и сборку результата. Размер файла при этом не равен длительности. 25 МБ могут содержать короткий WAV или длинный MP3 с низким битрейтом.
GPU и неравномерная нагрузка
Собственный сервер выгоден при предсказуемом постоянном потоке. При редких загрузках видеокарта простаивает. При резком наплыве файлов возникает очередь, пользователи ждут, а команде приходится добавлять воркеры и следить за памятью.
К стоимости GPU прибавляются хранение файлов, мониторинг, повторные задания, обновление CUDA, безопасность, резервирование и поддержка форматов. Бесплатная модель не означает бесплатный сервис.
Практический вывод: использовать модель или готовую систему
Для исследовательского проекта разумно поднять Whisper или VibeVoice локально. Вы получите контроль над кодом, данными и параметрами. Для продукта важнее другой вопрос: кто отвечает за длинные файлы, сбои, диаризацию, форматы и качество текста на стыках.
Speech2Text закрывает этот уровень как готовый сервис. В его технологическом стеке указан Whisper, а пользователь получает не сырой вывод модели, а обработанный результат со знаками препинания, абзацами, таймкодами и разделением по спикерам.
Через браузер можно загрузить аудио или видео без указанного на сайте ограничения по размеру и длительности. Сервис поддерживает популярные форматы, ссылки на видео, экспорт субтитров и создание саммари. Для чувствительных данных стоит заранее проверить актуальную политику хранения и корпоративные условия: на сайте заявлено шифрование при передаче и удаление файлов и расшифровок после удаления пользователем.
Для разработчиков есть страница интеграции Speech2Text. На ней указаны webhook API, очереди задач, массовая обработка, диаризация и выдача результатов в TXT, JSON, RAW, XML и других форматах.
Практическая выгода API состоит не в магическом улучшении одной нейросети. Команда получает готовый конвейер:
- прием аудио и видео разных форматов;
- обработку длинных записей;
- разделение по спикерам;
- асинхронные задания и webhook;
- экспорт в нужном формате;
- оплату в рублях и поддержку без зарубежной карты.
Такой вариант особенно полезен, когда транскрибация является частью CRM, медиаплатформы, архива звонков или внутренней аналитики, а не самостоятельным ML-экспериментом.
Пример интеграции Speech2Text API на Python
Ниже показана базовая отправка файла. Ключ храните в переменной окружения, а не в исходном коде. Актуальные параметры подключения нужно брать из документации, доступной для вашей интеграции.
import os
from pathlib import Path
import requests
API_URL = "https://speech2text.ru/api/recognitions/task/file"
API_KEY = os.environ["SPEECH2TEXT_API_KEY"]
AUDIO_PATH = Path("meeting_recording.mp3")
headers = {
"Authorization": f"Bearer {API_KEY}",
"Accept": "application/json",
}
data = {
"lang": "ru",
"speakers": "2",
}
with AUDIO_PATH.open("rb") as audio_file:
files = {
"file": (AUDIO_PATH.name, audio_file, "audio/mpeg"),
}
response = requests.post(
API_URL,
headers=headers,
data=data,
files=files,
timeout=60,
)
response.raise_for_status()
task = response.json()
print("Задание создано")
print("ID:", task["id"])
print("Статус:", task["status"]["description"])
API возвращает идентификатор задания. Дальше приложение проверяет статус или получает уведомление через webhook, затем запрашивает результат в нужном формате. Такая схема не держит HTTP-соединение открытым все время обработки длинной записи.
Заключение
Whisper, VibeVoice, Yandex и Google решают разные части одной задачи. Whisper дает сильное качество базовой транскрибации, VibeVoice сохраняет часовой контекст, Yandex предлагает развитый набор режимов для русского языка, Google встраивает STT в масштабируемую облачную платформу.
На практике качество определяет весь конвейер: подготовка аудио, VAD, склейка сегментов, диаризация, пунктуация, контроль повторов и обработка ошибок. Поэтому бизнесу часто выгоднее тестировать не голую модель, а готовый результат на своих файлах.
Загрузите несколько типичных записей в Speech2Text, сравните текст с эталоном и посчитайте время ручной правки. Для автоматизации звонков, встреч или медиатеки используйте API и начинайте с пилотного набора, который отражает реальные шумы, спикеров и терминологию.
Источники для проверки характеристик
- OpenAI Whisper и обучающий набор;
- модель Whisper Large v3;
- документация OpenAI Speech-to-Text;
- официальный репозиторий Microsoft VibeVoice;
- документация Yandex SpeechKit;
- документация Google Chirp 3.