Игорь Градов
Игорь Градов
6 мин
ai

Распознавание речи на CPU без GPU: разница в цене между поколениями процессоров достигает 5 раз

Автор из России протестировал открытые модели распознавания речи на обычном процессоре без видеокарты и выяснил, что главный фактор стоимости не сама модель, а поколение процессора и наличие инструкций AVX2.

Распознавание речи на CPU без GPU: разница в цене между поколениями процессоров достигает 5 раз
Почему это важно

Распознавание речи можно запустить локально на сервере в России, без облака и без GPU, но разница в цене между старым и новым процессором достигает пятикратной, и считать окупаемость по числу ядер в тарифе хостера бессмысленно.

Инженер, который разрабатывает сервис для онлайн-встреч с расшифровкой (121ai.online), искал замену облачному Deepgram. Причины: много часов разговоров, чувствительные данные, которые не хотелось отправлять за рубеж, и требование держать аудио на сервере внутри страны. Он развернул тестовый стенд на двух машинах с процессорами разных поколений и сравнил облачное распознавание речи онлайн с открытыми моделями, работающими только на CPU. Результаты опубликованы с открытым кодом на GitHub и Gitverse.

Что понадобится

  • Сервер с процессором, поддерживающим AVX2 (современные Xeon или аналоги). Без AVX2 один чанк обработки обходится в 2,5 раза дороже
  • Операционная система Linux
  • Python и библиотека onnxruntime (инференс, то есть запуск модели для получения результата)
  • Открытая модель распознавания речи с поддержкой русского языка: T-one или GigaAM-v3
  • Около 30 минут на установку и первый замер

Пошаговая инструкция

  1. Проверьте, поддерживает ли ваш процессор AVX2. Это набор инструкций, который ускоряет математические операции внутри модели. Без него распознавание речи на CPU работает, но обходится в разы дороже по времени. В Linux выполните:
grep avx2 /proc/cpuinfo

Если команда вернула пустой результат, ваш процессор не поддерживает AVX2. Распознавание всё равно запустится, но держать на таком сервере больше пяти дорожек одновременно не получится.

  1. Выберите модель для русского языка. Автор тестировал несколько вариантов и проверил заявленные показатели WER (word error rate, доля ошибочно распознанных слов: чем меньше, тем лучше). Для русской речи подходят:

  2. T-one: WER на колл-центре 8,63%, на прочей телефонии 6,20%, на наборе Common Voice 5,32% (по данным авторов модели)

  3. GigaAM-v3 RNNT: средний WER по десяти наборам 8,3%, на колл-центре 9,5% (по данным авторов модели)
  4. Vosk ru-0.42: WER на openstt calls 36,0%, на YouTube 19,5% (по данным авторов модели)

Модели Whistle (17 МБ), Google AI Edge Foresight и Embedding Gemma Transcribe русский язык не поддерживают. Автор проверил Whistle на пяти русских фразах, и все пять превратились в псевдопольский и псевдонемецкий.

  1. Установите зонд для замера производительности. Автор выложил скрипт acoustic.py, который зависит только от onnxruntime. Он показывает, сколько стоит обработка одного чанка (фрагмента аудио) на вашем конкретном сервере:
pip install onnxruntime
python acoustic.py

Скрипт ставится за минуту и за ещё одну минуту отвечает на главный вопрос: потянет ли ваш сервер нужное число параллельных дорожек.

  1. Выберите режим работы. Автор протестировал два режима:

  2. batch: один вызов модели на все дорожки, onnxruntime с тремя потоками. Подходит, если дорожек немного

  3. threads: каждая дорожка в отдельном рабочем потоке Python, у onnxruntime один поток. Параллельность обеспечивается пулом потоков, потому что акустическая модель отпускает GIL (глобальную блокировку интерпретатора Python)

  4. Оцените ёмкость сервера. Критерий автора: сервер «держит» N дорожек, если 95-й перцентиль времени тика меньше 300 мс и отставание к концу минуты меньше секунды. На машине с AVX2 (8 vCPU, 15 ГБ RAM) получилось до 32 дорожек, на старом Xeon 2013 года без AVX2 (6 vCPU) только 5. Но автор честно оговаривает: методики замеров на двух машинах различались, и реальное число для первой, скорее всего, ниже 32.

  5. Примите решение: свой сервер или облако. Если разговоров мало и данные не чувствительные, облачный API (например, Deepgram или Yandex SpeechKit внутри России) решает задачу одним вызовом. Если часов общения много и аудио не должно покидать страну, локальный сервер с AVX2 и открытой моделью окупается.

Как это выглядит на практике

Автор взял звонок в браузере: два участника, у каждого свой микрофон, на сервер приходят две отдельные дорожки. Диаризация (определение, кто говорит) не нужна, роль говорящего известна по номеру дорожки. Требование: фраза появляется не позже чем через 2 секунды после того, как её договорили (p95). На сервере с современным Xeon и AVX2 модель T-one укладывается в этот лимит при обработке нескольких десятков дорожек одновременно. На старом Xeon 2013 года тот же код держит только 5 дорожек, потому что стоимость одного чанка акустической модели на старом ядре в 2,5 раза выше.

Частые ошибки

Считать ёмкость по числу ядер в тарифе хостера. Автор прямо пишет: это бессмысленно. Два сервера с одинаковым числом vCPU, но на разных поколениях процессоров дают разницу в производительности распознавания до пяти раз. Спрашивайте не «сколько ядер», а «какой процессор и есть ли AVX2».

Сравнивать WER разных моделей из разных таблиц. Цифры WER получены на разных наборах записей. WER 8,6% у T-one на колл-центре и WER 8,3% у GigaAM нельзя напрямую ставить рядом и делать вывод, что GigaAM точнее. Корректное сравнение требует одного и того же набора записей.

Надеяться на модели без русского языка. Whistle, Google Foresight и Embedding Gemma Transcribe пока работают только с английским. Не тратьте время на их настройку для русской речи.

Включать телеметрию по умолчанию. В модели Whistle телеметрия включена изначально. Если вы разворачиваете распознавание локально ради приватности, проверяйте, не отправляет ли инструмент данные наружу.

Что делать с этим прямо сейчас?

Авторам Дзена с подкастами или видео. Если вы расшифровываете свои записи для текстовых версий, локальная модель T-one или GigaAM на арендованном сервере с AVX2 может заменить платную подписку на облачный сервис. Качество на русском языке у этих моделей уже конкурентоспособно.

Маркетологам и владельцам бизнесов. Если ваш колл-центр записывает звонки и вы платите за распознавание речи онлайн, посчитайте стоимость через скрипт acoustic.py на вашем сервере. При большом объёме часов свой сервер может оказаться дешевле, а данные останутся внутри компании.

Предпринимателям в России. Аудио, которое не должно покидать страну, это не только вопрос приватности, но и требование законодательства для некоторых отраслей. Из облачных вариантов внутри РФ автор рекомендует присмотреться к Yandex SpeechKit. Из открытых моделей, которые можно развернуть на своём сервере, T-one и GigaAM поддерживают русский язык и работают без GPU.

Мнение редакции dzen.guru

Главная ценность этого разбора не в том, какая модель лучше, а в практическом открытии: железо важнее модели. Я вижу, как многие авторы и предприниматели выбирают сервер по числу ядер и объёму памяти, а потом удивляются, что распознавание тормозит. Один вопрос хостеру «есть ли AVX2?» может сэкономить половину бюджета на инфраструктуру.

Честная оговорка: автор тестировал на конкретных задачах (звонки один на один, колл-центр на 8 кГц). Если у вас другой формат аудио, подкаст в студийном качестве или запись конференции с несколькими спикерами, результаты могут отличаться. WER на ваших данных нужно мерить отдельно. Код стенда открыт, и это, пожалуй, самое полезное: можно не верить чужим цифрам, а проверить на своих.

Попробуйте нейросети для работы с контентом

Узнайте, как использовать ИИ-инструменты для создания и расшифровки контента на dzen.guru

Перейти к инструментам
Поделиться:TelegramVK
Игорь Градов
Игорь Градов

Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».

Комментарии

Читайте также

Все 179 ответов ИИ были SURE: четыре из них содержали баги
ai

Все 179 ответов ИИ были SURE: четыре из них содержали баги

Почему это важно Эксперимент показал: встроенная самооценка уверенности у языковых моделей пока не работает как фильтр качества кода. Ни одна из трёх моделей…

5 мин
Нейросеть для генерации изображений уместили в 512 КБ: ESP32 рисует лица за 5,4 секунды
ai

Нейросеть для генерации изображений уместили в 512 КБ: ESP32 рисует лица за 5,4 секунды

Инженер-любитель из России собрал с нуля нейросеть для генерации изображений, которая работает прямо на микроконтроллере ESP32-S3 с 512 КБ оперативной памяти,…

5 мин
Классификация товаров для 15 млн SKU: три человека за месяц навели порядок в хаосе
ai

Классификация товаров для 15 млн SKU: три человека за месяц навели порядок в хаосе

Почему это важно Российские металлотрейдеры работают с миллионами товарных позиций, записанных вразнобой, с опечатками и без стандартов, и до сих пор не могли…

5 мин