Soniox v5 Real-Time: распознавание речи для агентов

Soniox обновил потоковую модель распознавания речи. Смотрим, чем v5 Real-Time интересен для голосовых агентов и стоит ли он своих денег против Deepgram, OpenAI и Whisper.

Soniox v5 Real-Time: распознавание речи для агентов
TL;DR: Soniox v5 Real-Time — это API распознавания речи, который превращает живой разговор в текст прямо во время речи: держит 60+ языков (русский в их числе), различает спикеров, переводит на лету и стоит около $0.12 за час аудио. По открытому бенчмарку Pipecat прошлая версия выдавала 1.25% смысловых ошибок при задержке 249 мс. Это одна из самых точных и быстрых моделей на рынке, и при этом самая дешёвая из топовых.

Голосовые агенты упёрлись в скучную, но важную проблему: чтобы ассистент отвечал быстро и по делу, его сначала надо хорошо услышать. Причём не постфактум, когда фраза уже закончилась, а пока человек ещё говорит: с акцентом, в шумном кафе, перебивая сам себя и вставляя английские слова посреди русской фразы. Soniox 16 июня выкатил v5 Real-Time и заявляет, что именно эту задачу и решает. Я залез в доки, бенчмарки и прайсинг, чтобы понять, насколько это правда и кому оно вообще нужно.

Что такое Soniox v5 Real-Time и зачем он нужен

Soniox — это speech AI платформа: одна модель, которая делает распознавание речи, перевод и (отдельно) синтез голоса. v5 Real-Time — свежая версия их потоковой STT-модели stt-rt-v5. Она пришла через неделю после v5 Async (это вариант для записанных файлов) и заменяет прошлую stt-rt-v4.

Ключевое слово здесь — real-time. Это не «батчевая транскрипция, только побыстрее». Потоковая модель не может дождаться конца записи и проанализировать разговор целиком. Ей надо параллельно слушать, отделять спикеров, определять язык, выдавать стабильный текст, переводить и понимать, где человек закончил мысль. Всё это за сотни миллисекунд, пока собеседник ещё не закрыл рот. Поэтому архитектуру, обучение и инференс Soniox строили под стриминг с нуля.

Зачем это тебе. Если ты делаешь голосового агента, живые субтитры, диктовку, заметки со встреч, медицинскую расшифровку приёма или поддержку в колл-центре, тебе нужен движок, который слышит точно и быстро. v5 Real-Time целится ровно в эти сценарии.

Как это работает: токены и финализация

Под капотом всё идёт через WebSocket. Ты открываешь соединение, шлёшь конфиг и аудио, а в ответ получаешь поток токенов, маленьких кусочков текста. У каждого токена есть флаг is_final:

  • is_final: false — черновой токен. Появляется мгновенно, но может измениться или исчезнуть, когда подъедет ещё звук.
  • is_final: true — подтверждённый токен. Зафиксирован и больше никогда не поменяется.

Звучит как мелочь, но это удобно на практике: ты сразу показываешь пользователю «сырой» текст для отзывчивости, а потом аккуратно заменяешь его на финальный, когда модель уверена. Чтобы финализировать быстрее, есть два пути: endpoint detection (модель сама ловит, что человек договорил) и ручная финализация (шлёшь finalize и забираешь всё накопленное). Подробности в доках по real-time транскрипции.

Быстрый старт: первый стрим на Python

Регистрируешься на console.soniox.com, берёшь API-ключ, ставишь SDK. Минимальный пример выглядит так:

pip install soniox
export SONIOX_API_KEY=<твой_ключ>
from soniox import SonioxClient
from soniox.types import RealtimeSTTConfig
from soniox.utils import render_tokens, start_audio_thread, throttle_audio

client = SonioxClient()

config = RealtimeSTTConfig(
    model="stt-rt-v5",
    language_hints=["ru", "en"],          # подсказки по языкам повышают точность
    enable_language_identification=True,  # помечать язык каждого токена
    enable_speaker_diarization=True,      # помечать спикера каждого токена
    enable_endpoint_detection=True,       # ловить конец реплики
)

with client.realtime.stt.connect(config=config) as session:
    start_audio_thread(session, throttle_audio("audio.mp3", delay_seconds=0.1))
    final_tokens = []
    for event in session.receive_events():
        non_final = [t for t in event.tokens if not t.is_final]
        final_tokens += [t for t in event.tokens if t.is_final]
        print(render_tokens(final_tokens, non_final))

Вот и всё, по сути. Хочешь живой перевод, добавляешь блок translation в тот же запрос, и Soniox начинает переводить прямо в потоке. Один API-ключ, один WebSocket, никакой склейки из двух сервисов. Полные примеры (включая Node SDK и сырой WebSocket без SDK) лежат в документации.

Что умеет Soniox v5: главные возможности

Диаризация: кто что сказал, прямо в потоке

Самое заметное обновление v5 — переделанная диаризация в реальном времени. Включаешь enable_speaker_diarization, и у каждого токена появляется поле speaker. Модель отделяет говорящих по ходу разговора, а не реконструирует структуру после записи.

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

60+ языков и перевод на лету

Soniox распознаёт 60+ языков одной моделью, и русский там есть (как и украинский, белорусский, казахский). Определение языка работает нативно: модель сама ловит переключение языков посреди разговора и заявленно лучше держит сильный акцент. Это не косметика. Большинство говорящих по-английски в мире — не носители, и движок, который понимает только чистый американский английский, в продакшене разваливается.

🌍
Для русскоязычных продуктов сочетание редкое: русский, украинский и казахский распознаются из коробки, а перевод идёт между любой парой из 60+ языков прямо в потоке. Живой переводчик созвона RU↔EN собирается на одном API, без отдельного сервиса перевода.

Поверх распознавания идёт перевод. Soniox делает речь-в-текст и перевод одновременно в одном потоке: 60+ языков, 3600 языковых пар, режим one-way (всё в один целевой язык) или two-way (два языка туда-обратно для живого двуязычного диалога). Качество перевода в v5 подтянули на именах, числах, местоимениях и доменных терминах, то есть ровно на тех местах, где машинный перевод обычно и спотыкается. Для русскоязычного продукта это значит, что можно собрать, например, живой переводчик созвона RU↔EN без отдельного переводческого сервиса.

Semantic endpointing для голосовых агентов

Для голосового агента понимать, когда человек закончил говорить, не менее важно, чем понимать что. Ответишь слишком рано, перебьёшь человека на полуслове. Среагируешь слишком поздно, и агент выглядит тормозным. Soniox использует семантический endpointing: смотрит на паузы, интонацию и контекст, а не просто на тишину.

В v5 добавили параметр endpoint_sensitivity. Чем выше значение, тем чаще модель считает реплику законченной и финализирует раньше (удобно для командных систем). Чем ниже, тем дольше она ждёт, не обрывая на полуслове (удобно для диктовки). Именно такой ручки обычно и не хватает, когда подгоняешь чужой STT под свой UX.

Цифры, имена и контекст

Номера телефонов, коды, email, трек-номера, account ID. В разговоре это часто самое важное, и одна неверная цифра ломает всю автоматизацию. v5 заметно подтянули по этой «alphanumeric» части: модель аккуратнее ловит и форматирует структурные штуки.

Второй приём — инъекция контекста. При открытии соединения можно передать модели подсказки: домен, имена участников, список терминов, кусок справочного текста и даже предпочтительные переводы конкретных слов. Причём это не пост-обработка регулярками, а контекст внутри самой модели во время распознавания. На практике это спасает на редких именах, аббревиатурах и продуктовых названиях, которые ни одна модель не знает заранее.

Soniox против Deepgram, AssemblyAI, OpenAI и Whisper

Тут самое интересное. Есть открытый Pipecat STT benchmark (июнь 2026): 1000 реальных сэмплов, ground truth размечен Gemini и проверен людьми, датасет лежит на Hugging Face, результат воспроизводим. Метрики заточены под голосовых агентов: semantic WER (только ошибки, меняющие смысл для LLM) и TTFS (задержка от конца речи до финального сегмента).

Soniox даёт открыто сравнить себя с OpenAI, Google, Azure, AssemblyAI, Deepgram и Speechmatics на одном и том же аудио

Вот ключевые строки, отсортированные по точности (меньше WER — лучше):

Провайдер Модель $/час Semantic WER Идеальных Задержка (медиана / P95)
Azure $1.00 1.21% 82.9% 1016 / 1345 мс
Soniox stt-rt-v4 $0.12 1.25% 84.1% 249 / 281 мс
Speechmatics $0.56 1.40% 83.2% 495 / 676 мс
Deepgram nova-3 $0.55 1.71% 76.5% 247 / 298 мс
AssemblyAI u3-rt-pro $0.57 1.74% 83.9% 335 / 534 мс
ElevenLabs scribe_v2_realtime $0.39 3.16% 81.3% 281 / 348 мс
OpenAI gpt-4o-transcribe ~$0.36 3.24% 75.9% 637 / 965 мс

Картина читается так. По чистой точности Azure впереди на 0.04%, то есть в пределах погрешности, но при этом он в 4 раза медленнее (1016 мс против 249) и в 8 раз дороже. Soniox единственный, кто одновременно держит топовую точность, низкую задержку с очень ровным P95 и самую низкую цену. Deepgram nova-3 чуть быстрее по медиане (247 мс), но заметно хуже по ошибкам и доле идеальных расшифровок, и дороже в 4-5 раз. У AssemblyAI приличная точность, но задержка скачет (P95 534 мс, для живого диалога это уже заметно). OpenAI gpt-4o-transcribe тут откровенно отстаёт и по точности, и по скорости, хотя у OpenAI недавно появилась отдельная gpt-4o-transcribe-diarize, которой в этом тесте нет.

Whisper в таблице нет, и это закономерно. Оригинальный Whisper от OpenAI вообще не потоковый: он работает 30-секундными окнами, диаризации из коробки нет (нужен отдельный pyannote), а перевод умеет только в английский. Чтобы заставить его стримить, берут обвязки вроде whisper-streaming, и даже в академической версии задержка около 3.3 секунды. Для офлайн-расшифровки на своём железе и ради приватности Whisper по-прежнему отличный и бесплатный вариант. Для живого голосового агента уже нет.

Два честных дисклеймера. Во-первых, бенчмарк гоняли на stt-rt-v4, а статья про v5 — Soniox обещает, что v5 точнее, но независимых цифр именно по v5 пока нет. Во-вторых, тест англоязычный, так что мультиязычность и русский в нём напрямую не измерены. Сам бенчмарк открытый и сделан Pipecat, но витрину с табличкой публикует Soniox, так что щепотка скепсиса не помешает. Хорошая новость: у них есть Compare, где можно прогнать своё аудио через всех провайдеров сразу и посмотреть на свой кейс.

Сколько стоит Soniox

Прайсинг токенный, но в пересчёте на часы выходит просто. Real-time стриминг — примерно $0.12 за час аудио, async по файлам — около $0.10. Перевод не тарифицируется отдельно: он идёт как выходные текстовые токены в той же цене. Для ориентира: час аудио это ~30 000 входных аудио-токенов по $2.00 за миллион, а час речи на выходе ~15 000 текстовых токенов по $4.00 за миллион.

По меркам рынка это дёшево. Soniox объясняет низкую цену тем, что построил весь стек сам, от моделей до инференса, и заточил его под стриминг, поэтому то же железо обрабатывает больше аудио. Звучит как стандартный маркетинг, но цифры в бенчмарке его в целом подтверждают: дешевле топовых конкурентов в разы при сопоставимой точности. Есть ещё TTS (синтез речи) примерно за $0.70 за час сгенерированной речи, если вдруг нужен голос на выходе.

🎙️
Если делаешь голосовые продукты или просто следишь за speech AI, я разбираю свежие релизы и инструменты по горячим следам. Подписывайся в телеге.

Вердикт: кому брать, а кому нет

Мне Soniox v5 Real-Time нравится, и вот почему. Это редкий случай, когда продукт не заставляет выбирать между точностью, скоростью и ценой: по открытому бенчмарку он держит все три сразу. Встроенный перевод 60+ языков и диаризация в одном API-вызове закрывают как раз те задачи, ради которых обычно склеивают три сервиса. А endpoint_sensitivity и инъекция контекста показывают, что делали инструмент люди, которые сами строили голосовые продукты.

Кому однозначно стоит смотреть: всем, кто делает голосовых агентов, живые субтитры, многоязычные созвоны, диктовку или расшифровку встреч и звонков. Особенно если важны не-английские языки и перевод на лету: здесь Soniox выглядит сильнее, чем OpenAI или Deepgram. И особенно если считаете деньги на объёме: $0.12 за час против $0.55+ у конкурентов на масштабе превращается в заметную разницу.

Кому не сюда. Если нужен полностью локальный, self-hosted движок ради приватности или работы без интернета, то Soniox не про это: он облачный, бери Whisper на своём GPU. Если ты уже глубоко в экосистеме OpenAI или Deepgram и тебя устраивает качество, мигрировать ради процентов WER смысла мало. И помни про честную оговорку: публичные цифры пока по v4 и по английскому, так что перед продакшеном прогони свой реальный звук через Compare и проверь на своих языках. Но как стартовая точка для голосового продукта в 2026-м — это один из самых сильных вариантов, что я видел.

Soniox: real-time speech AI
Распознавание речи, перевод и синтез на 60+ языках в одном API. Модель v5 Real-Time, около $0.12 за час аудио.

Попробовать Soniox v5 Real-Time

FAQ

Soniox понимает русский? Да. Русский входит в список 60+ языков и доступен и для транскрипции, и для перевода в любой другой поддерживаемый язык. Там же украинский, белорусский и казахский. Независимых замеров точности именно по русскому пока нет, так что проверяй на своём аудио.

Чем v5 Real-Time отличается от Whisper? Whisper не потоковый и без диаризации из коробки, зато его можно поднять локально бесплатно. Soniox — облачное API, заточенное под живой звук: диаризация, определение языка, перевод и endpointing работают в реальном времени. Для голосового агента Soniox удобнее, для офлайн-расшифровки на своём железе дешевле Whisper.

Нужно ли переписывать код при переходе с v4? Нет. v5 полностью совместим с существующим Real-Time API, достаточно поменять имя модели на stt-rt-v5. Старую stt-rt-v4 отключат 30 июня 2026, после чего запросы к ней автоматически пойдут на v5 без изменений в коде.

Можно ли переводить речь на лету? Да, перевод встроен в распознавание. Добавляешь блок translation в тот же запрос и получаешь перевод прямо в потоке, без отдельного сервиса. Поддерживаются режимы one-way и two-way, всего 3600 языковых пар.

Что ещё почитать