Опубликовано: · Версия для ИИ (markdown)
Движок распознавания речи (STT) для звонков выбирают не по заявленной «точности вообще», а по тому, как он справляется именно с вашими разговорами: на вашем языке, на телефонном звуке 8 кГц, в вашем бюджете за минуту и с вашими требованиями к тому, куда уходят данные. Универсально «лучшего» движка нет — есть подходящий под задачу. Ниже — шесть критериев, по которым стоит принимать решение, и почему проверять их надо на собственном архиве, а не по чужим бенчмаркам.
Шаг 1. Начните с языка и акцентов
Первый отсекающий критерий — язык. Движок, отличный на английском, может заметно проседать на русском, и наоборот. Если у вас звонки на нескольких языках или с сильными региональными акцентами, ищите мультиязычный движок, а не набор моно-моделей. Для русскоязычной телефонии традиционно сильны локальные движки, для десятков языков — мультиязычные облачные модели.
Важно не путать язык интерфейса и язык распознавания: это разные вещи. Определитесь, на каких языках реально идут ваши звонки, и в каких пропорциях. Если 95% разговоров на одном языке, оптимизируйте под него; если поток смешанный — критична способность движка переключаться между языками внутри разговора и не «сваливаться» в дефолтный.
Шаг 2. Проверьте точность на телефонном звуке 8 кГц
Это главная ловушка. Большинство красивых цифр точности получены на чистом студийном аудио 16 кГц и выше, а телефония — это узкополосный звук 8 кГц, кодеки, шум линии, эхо, наложения речи. Движок, который блистает на подкастах, на реальных звонках может выдавать заметно худший результат. Поэтому проверять точность нужно на записях, максимально похожих на ваши, — с той же телефонией, теми же условиями, тем же жаргоном.
Практичный способ: возьмите десяток типичных звонков, где вы точно знаете, что было сказано, прогоните их через несколько движков и сравните расшифровки глазами. Обращайте внимание не на общий процент, а на то, что критично для вас: правильно ли распознаются имена, номера, суммы, названия продуктов, специфические термины. Ошибка в цифре договора важнее, чем пропущенное «эээ». Не полагайтесь на чужие бенчмарки — ваша акустика уникальна.
Шаг 3. Посчитайте цену за минуту
Движки различаются по стоимости в разы, и на объёме это решающий фактор. Считать надо не абстрактную цену, а стоимость минуты именно вашего сценария: учитывается длительность звонков, число каналов (стерео-запись оператор/клиент удваивает стоимость у движков, которые тарифицируют по каналам) и объём потока в месяц.
Себестоимость движков сильно разнится — от десятых долей цента до нескольких центов за минуту. На платформе операции списываются из остатка по себестоимости движка, без наценки сверху, поэтому цена за минуту у вас — это ровно цена движка; сравнить тарифы удобно на странице тарифов. Дорогой мультиязычный движок оправдан там, где нужна максимальная точность и языков много; для больших однородных объёмов чаще выигрывает недорогой локальный движок под конкретный язык.
Шаг 4. Решите вопрос с диаризацией и каналами
Для анализа звонков мало текста — нужно знать, кто что сказал: где реплики оператора, где клиента. Есть два пути. Если запись стерео и роли разведены по каналам (оператор в одном, клиент в другом), разделение получается точным почти автоматически — это лучший вариант, и его стоит закладывать ещё на этапе настройки телефонии. Если запись моно, роли разделяет диаризация — она разбивает единую дорожку на говорящих.
Учтите, что диаризация — отдельная операция и отдельная строка в стоимости, а её качество на телефонном звуке ниже, чем на чистом. Поэтому по возможности пишите звонки в стерео с разделением по каналам: это и точнее, и дешевле, чем полагаться на диаризацию поверх моно-дорожки. Как устроен слой распознавания и разметки ролей — на странице автоматического анализа звонков.
Шаг 5. Выберите режим: реального времени или пакетная обработка
Не всякую задачу нужно распознавать мгновенно. Если вы анализируете архив или обрабатываете звонки постфактум для метрик и контроля качества, реального времени не требуется — а отложенная пакетная обработка обычно заметно дешевле. У некоторых движков отложенный режим стоит в разы меньше синхронного при том же качестве, и на объёме это ощутимая экономия.
Реальное время (потоковое распознавание) нужно там, где текст требуется прямо во время разговора: суфлёр оператору, живой транскрипт, голосовой агент. Для всего остального — постобработки, аналитики, ретро-разметки архива — выбирайте пакетный режим. Дополнительно снизить счёт помогают вырезание тишины перед распознаванием (короче файл — меньше платите) и кэш повторных расшифровок: одно и то же аудио с теми же параметрами не распознаётся дважды.
Шаг 6. Определите требования к данным (облако или self-hosted)
Последний критерий — не технический, а про доверие и регуляторику. Если по политике компании или требованиям закона аудио звонков не должно покидать ваш периметр, облачный движок не подходит независимо от его точности и цены. В этом случае выбирают self-hosted распознавание: модель работает на вашей инфраструктуре, а данные не уходят наружу.
Для этого сценария подходят движки вроде Whisper или Vosk, запущенные на своих мощностях: их можно поднять локально и распознавать без поминутной оплаты стороннему провайдеру и без отправки аудио в облако. На платформе такой режим реализован через локальный воркер: вы скачиваете и запускаете его у себя, спариваете по коду, и транскрибация с диаризацией идут внутри вашего контура — аудио не покидает периметр. Подробнее о моделях изоляции данных и on-prem-вариантах — на странице безопасности.
Как свести критерии вместе
Отдельного «лучшего» движка не существует, но есть простой способ прийти к решению. Сначала отсеките по жёстким ограничениям: язык (движок обязан хорошо понимать ваши языки) и данные (если нужен self-hosted — облако сразу отпадает). Затем на оставшихся кандидатах проверьте точность на телефонном звуке своего архива и посчитайте цену за минуту вашего реального потока. Наконец, учтите каналы/диаризацию и режим обработки — они дают экономию, которую легко упустить.
Практично не привязываться к одному движку навсегда. Разные сценарии могут требовать разных движков: дорогой и точный — для важных языков или сложных звонков, дешёвый пакетный — для массового потока, self-hosted — для чувствительных данных. Платформа позволяет подключать системные движки, приносить свой ключ к внешнему провайдеру или запускать локальный воркер, поэтому выбор не финальный: его можно менять по мере роста и уточнять на собственных данных.
Что дальше
Выбор движка — это фундамент, но не самоцель: распознанный текст ценен тем, что из него получается. Следующий шаг — превратить расшифровки в метрики, темы и контроль качества по всем звонкам сразу. Если вы сравниваете сам подход — платформу анализа против «просто транскрибации», — посмотрите чем анализ звонков отличается от расшифровки.