Обзор лучших API для транскрибации речи 2025. API.. API. openai.. API. openai. whisper.. API. openai. whisper. транскрибация.
Обзор лучших API для транскрибации речи 2025 - 1

На прошлой неделе мы сравнивали селфхарм селфхост решения для speech-to-text на Apple Silicon процессорах. Но что делать, если вы – бизнес, и вам нужно API для транскрибации? Или что делать, если вы – разработчик, и вам просто хочется сделать пет-проект с транскрибацией? Сейчас посмотрим, какие варианты есть на рынке, и какой из них самый лучший (спойлер – однозначного победителя нет).

Зачем сравнивать?

Возникает вопрос, а зачем сравнивать API? Ведь 100% кто-то это уже до меня делал. И да, действительно, если загуглить сравнение, можно найти сайт Artificial Analysis, на котором есть сравнение всех моделей на свете, в том числе и speech-to-text моделей. Вот пример столбиков с разными провайдерами:

https://artificialanalysis.ai/speech-to-text

С ценой все понятно, со скоростью вроде тоже, но давайте посмотрим, как они замеряют ошибку. Листаем до методологии и видим, что они считают ошибку на датасете Common Voice 16.1, а в этом датасете максимальная длина аудио – 15 секунд. Это значит, что никак не проверяется самое интересное – как каждый провайдер работает с длинными файлами (у Whisper максимальная длина входного файла – 30 секунд). На прошлой неделе мы с вами убедились, что у каждого свои алгоритмы, и даже с одинаковой моделью можно получать разную ошибку, так как у каждого своя имплементация склейки чанков.

Ошибка разных версий Whisper, видно, что все v3 одинаковые (кроме Fireworks)

Ошибка разных версий Whisper, видно, что все v3 одинаковые (кроме Fireworks)

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

Игроки

Встречайте наших игроков!

Команда зарубежных решений:

  • AssemblyAI – судя по всему, самая точная модель и имеет самое большое количество функций, судя по лэндингу;

  • OpenAI API – то, чем все пользуются;

  • Fireworks – удивила высокая скорость и низкая точность, посмотрим, пожертвовали ли они точностью ради скорости;

  • DeepInfra – самый дешевый провайдер Whisper, посмотрим, претендент на победу;

  • fal – очень дешевый провайдер с высокой скоростью, тоже рассчитываю на хороший результат от них.

Выбрал их из списка Artificial Analysis (потому что у них самые приятные цвета столбиков)

Команда российских решений:

  • Yandex SpeechKit (куда ж без него);

  • VseGPT – сервис, который раздает все модели на свете, и в том числе Whisper;

  • Nexara – только транскрибация, только API, посмотрим, хорошо ли у них получилось сделать базу;

  • Шопот – очень богатый на функционал сервис, имеет API, тоже питаю большие надежды к их сервису.

Первые проблемы

Я рассчитывал потратить на тестирование разных сервисов ровно 0 рублей 0 копеек, но к сожалению, не у всех есть free-tier в их API. OpenAI и DeepInfra не дают ни копейки на тестирование API, а случай с VseGPT особенно комичен, потому что они дают бесплатно целых 5 рублей на тестирование API! Спасибо, очень щедро. Не будем учитывать, что минута их Whisper стоит полтора рубля.

На другом конце спектра AssemblyAI, который дает бесплатно целых 50 долларов на тестирование! Вот этого реально достаточно, чтобы проверить все функции их API (а у них их очень много).

Правила игры

На этот раз я собрал бенчмарк из 16 аудиофайлов, основанный на видео с YouTube с авторскими субтитрами. В нем есть аудио на немецком, английском, русском, испанском и французском языках с разной степенью шума и четкости речи. Также, включил в датасет три песни, чтобы посмотреть, сможет ли хоть какая-нибудь модель распознать слова в песнях (спойлер – нет).

Проверять буду Word Error Rate (WER, %) и скорость каждого провайдера (сколько секунд аудио считается за секунду транскрибации). WER обычно считают после нормализации текста (удаления пунктуации и приведения всего текста в нижний регистр), но я так делать не буду. Хочется проверить, насколько хорошо текст читается без дополнительной обработки через LLM. Рассчитываю, что авторские субтитры в видео – эталон пунктуации и качества, и буду замерять WER через них. Да, в них могут быть не только слова, но и описание звуков (например [Music Playing], и это, очевидно, повысит ошибку), но я сравниваю не абсолютную точность моделей, а относительную точность между разными провайдерами.

Если запрос выдает ошибку – ставлю 100% WER и нулевую скорость, никаких компромиссов, API должны работать всегда. Чем выше uptime, тем лучше для бизнеса.

Тесты и первые жертвы

Начнем сразу с грустного, с дисквалификаций некоторых провайдеров из конкурса.

  1. fal (wizper) – в нем, к сожалению, нет автоматического определения языка, что для меня неприемлемо, так как типичный пользователь API не сможет определять язык у себя на обычном бэкенде, для этого понадобятся дополнительные мощности.

  2. VseGPT (stt-openai/whisper-1) – положил на аккаунт 500 рублей (спасибо богатому free-tier), и получил то же самое в ответ от сервера. Все запросы, к сожалению, возвращали 500 Internal Server Error, и протестировать я их не смог.

  3. Yandex SpeechKit – … оставим, пожалуй, для отдельной рубрики.

Какие проблемы у других:

  1. OpenAI API – обязательно нужно иметь сервер за границей (либо пользоваться запрещенными технологиями) и отправлять файлы размером до 25 МБ. Это ограничение не позволило посчитать три файла из бенчмарка, поэтому пришлось поставить им минус. Делить большие файлы на бэкенде очень сложно (что делать на стыке чанков?), и эта проблема перекладывается с API на бэкендера. А он уже, к примеру, не сможет использовать эвристики из статьи OpenAI, потому что для них нужны логиты, которые по API, естественно, не отправляются.

  2. DeepInfra – тоже, к сожалению, не оправдал моих ожиданий и такой маленькой ценой за API (на весь бенчмарк ушло всего 6 центов) вы платите надежностью. 6 запросов из 16 вернули ошибку транскрибации.

  3. Шопот – с ними вообще сложная история, я на них рассчитывал, а они… Во-первых, один запрос вернул какую-то странную внутреннюю ошибку. Во-вторых, у них интересно построен API – вы отправляете запрос, и либо регулярно проверяете эндпоинт на готовность транскрибации, либо используете вебхук. Это, с какой-то стороны, хорошее решение, так как транскрибация может занимать долгое время, и держать подключение открытым долго не рекомендуется. Но, с другой стороны, это усложняет работу бэкендера и нужно прикручивать работу с вебхуками. В итоге, для себя я поставил ожидание ответа в течение двух минут, и если ответ не пришел, ставлю минус. Поэтому у Шопота не считал скорость транскрибации, так как все аудио считаются 120 секунд. В моем бенчмарке самое длинное аудио 3811 секунд длиной, и при ограничении в 2 минуты должно считаться примерно 30–35 минут в минуту. И из-за того, что их сервис на порядок дороже остальных, хотелось бы такую скорость транскрибации получить.

Яндекс – услышим одно, напишем другое

API их я использовать не стал, решил просто провести тест через их UI на SpeechKit Playground. Начал с первого видео – оно у меня на французском языке. Через некоторое время получил ответ, забил в свой python скрипт, который считает WER, и вижу ошибку в 174% 🤨. Сразу подумал, что это может я не все скопировал, проверил еще раз, снова то же самое. Начал смотреть в текст, а там…

Простите меня за Comic Sans, очень уж он нравится мне

Простите меня за Comic Sans, очень уж он нравится мне

Разными цветами я пометил пары абсолютно одинаковых строчек. Так и хочется спросить, а как они в казино могут быть в таком кривом порядке разложены? Строчки повторяются без какого-либо алгоритма, просто в случайном порядке. И так для остальных записей тоже! Дисквалификацию свою они заслужили, пользоваться не рекомендую. Однако, решил все-таки эту запись в ручном режиме очистить от повторений и получил ошибку в 57% (пунктуации-то нет!). Неплохо, но средняя ошибка по другим сервисам на этой записи – примерно 37%.

TL;DR Результаты – Fireworks и Nexara молодцы

Сравнение цены и Word Error Rate на графике, зеленый квадрат - оптимальная цена / качество

Сравнение цены и Word Error Rate на графике, зеленый квадрат – оптимальная цена / качество

Если не интересуют дальнейшие подробности, результат на графике. Сразу в глаза бросается Шопот, они на порядок дороже всех конкурентов, но зато у них есть разделение на спикеров и обработка через LLM (не уверен, насколько обработка через LLM полезна, она, как видите, не сильно понижает ошибку, но цену поднимает прилично).

Также меня очень удивило, что AssemblyAI показал такой плохой результат. Ниже попытаемся разобраться, почему.

Теперь давайте взглянем на сравнение скорости и Word Error Rate:

Сравнение WER и скорости, все, что в зеленом квадрате - круто

Сравнение WER и скорости, все, что в зеленом квадрате – круто

Как видите, Шопота нет, так как на все запросы я поставил ожидание в 120 секунд, и скорость у него не замерял. Fireworks Large-v3 Turbo работает оочень быстро с отменной точностью. Хорошая работа, отличный API. Их слоган “Fastest inference for generative AI” действительно не врет.

Сравнение количества ошибок

Сравнение количества ошибок

Заштрихованный столбик означает, что у API были другие проблемы, в случае с OpenAI – это ограничение в 25 МБ, а в случае с Шопотом – медленная транскрибация файла и таймаут.

Больше результатов

Давайте взглянем на каждую запись отдельно и посмотрим, какие есть нюансы работы с каждым API. Начнем с ошибки.

Обзор лучших API для транскрибации речи 2025 - 8

И закончим сравнением скорости.

Прошу прощения, если шрифт слишком мелкий, я старался

Прошу прощения, если шрифт слишком мелкий, я старался

Не у каждой записи есть все 6 столбиков, так как если запрос отвалилися, скорость у него я посчитать не смог.

AssemblyAI (оранжевый):

Начнем с них, так как у них самая высокая средняя ошибка. Заметим, что ошибка либо очень низкая, либо очень высокая. То есть модель так-то хорошо справляется с работой, но иногда все мимо. Взглянем в тексты, и увидим печальную картину – AssemblyAI иногда не угадывает язык и вся транскрибация сразу же становится неправильной :-( По скорости сервис тоже неплох (гораздо быстрее OpenAI Whisper), и имеет очень много функций, но такая простая функция как определение языка испортила им все результаты.

Fireworks (large-v3 и turbo) (коричневый и розовый):

Все отлично, но в песнях (записи №10-№12) ошибка 100%. Если взглянуть в текст ответа, можно заметить, что он пустой. А пустой он из-за Voice Activity Detection модели. Voice Activity Detection (VAD) – это такая модель, которая выделяет из аудио фрагменты, где слышит голос, который можно транскрибировать. Это очень хорошее решение, которое ускоряет вычисления (turbo модель на 14 записи выдает просто космический результат по скорости – в видео было много фрагментов без голоса), но иногда VAD может посчитать еле слышный голос просто шумом и проигнорировать кусок текста. Это мы и видим в случае с песнями – все песни он считает просто шумом и возвращает пустую строку, так как, видимо, для модели VAD сказал, что везде шум.

OpenAI Whisper (красный):

Про них сказать нечего, просто хорошо работают. Единственные файлы, где 100% ошибка – это где файл не влез в 25 МБ.

DeepInfra (голубой):

Хороший быстрый сервис, но, к сожалению, 6 записей из 16 вернули ошибку.

Nexara (лаймовый):

Тоже все отлично, как у Fireworks, но они немного помедленнее их Turbo модели и, видимо, не используют VAD, так как в песнях что-то пытаются угадать. Именно благодаря хоть каким-то правильным словам в песнях Nexara и получила самую низкую среднюю ошибку по всем тестам.

Сервис приятно удивил, так как он буквально недавно появился на Радаре, и от него я не ожидал чего-то из ряда вон выходящего.

Shopot (синий):

Все неплохо, ошибка на уровне с конкурентами, VAD можно включать / выключать в API (выключение может понизить ошибку в некоторых случаях), все удобно. Единственное, что один запрос у них вернул ошибку, и в целом API медленный.

И, кому удобно, может посмотреть на результаты в табличке:

Провайдер

Среднее WER

Средняя скорость

% успешных запросов

Цена (₽ / 1000 мин)

DeepInfra Whisper v3 Large

0.59

56.3

62.5

39.6

Fireworks Large-v3 Turbo

0.42

149.9

100

80

Fireworks Large-v3

0.41

89.6

100

132

Nexara

0.38

110.7

100

360

OpenAI Whisper API

0.54

24.4

81.2%*

528

AssemblyAI

0.79

51

100

542

Shopot

0.52

NaN

81.2%*

2000

* – в процент ошибок входят таймауты (у Шопота) и превышение ограничения в 25 МБ (у OpenAI). У Шопота NaN в скорости, так как я не использовал вебхуки. Fireworks и Nexara выделены жирным, так как они имеют самую низкую ошибку.

Итог

Почти всеми протестированными API сервисами можно пользоваться, но конкретного победителя среди них нет. Где-то очень мало функций (как у Nexara, Fireworks или DeepInfra), и они просто возвращают стену текста без возможности разделения на говорящих. Где-то низкая скорость, где-то низкая точность, где-то низкая надежность. А у кого-то просто ничего не работает. (привет Яндекс и Deepgram)

И чем тогда пользоваться?

На самой первой лекции по ML в университете мне рассказали про понятие “No Free Lunch” – не существует такого алгоритма в машинном обучении, который решал бы все задачи хорошо. Всегда какой-то алгоритм лучше другого в чем-то, и нет одного однозначного победителя. И в случае сравнения API, так как мы работаем с ML моделями, я предлагаю использовать такой же подход. Я уверен, что для какого-то нишевого применения AssemblyAI будет выдавать минимальную ошибку и радовать пользователя, я уверен, что кто-то сможет найти применение высокой скорости Fireworks. И я уверен, что много кому будет удобнее работать с вебхуками, чем держать подключение, как в случае с Шопотом (если бы еще запросы не отваливались, было бы вообще круто). Когда делаете выбор, тестируйте сами и не верьте ноунеймам из интернета :-)

А если не хочу API?

Если вам просто нужно быстренько прогнать пару аудио и получить ответ, есть много бесплатных сервисов, например:

Либо, если вы хотите локально, можете прочитать мою прошлую статью.

Ссылка на репозиторий с тестами: ссылка

Буду рад поучаствовать в обсуждении в комментариях, пишите свой опыт работы с любым API по транскрибации речи :-)

Автор: bobastia

Источник

Rambler's Top100