🧠NAS как ИИ-сервер
🎙️
Фаза 2 · STTГодится

Распознавание речи

Нужно для двух вещей. Первая — голосовые команды: «включи свет на кухне», коротко, и ответ нужен быстро. Вторая — расшифровка записей: лекции, голосовые, созвоны, где важна точность. Сравнили 16 вариантов моделей и рантаймов на CPU и iGPU.

Берём whisper-large-v3-turbo (int8, OpenVINO, iGPU) для записей, Vosk 0.42 для голосовых команд
Сухие цифры и методика →

Тестовые фразы взяли из FLEURS: это предложения из Википедии, которые разные люди читают вслух. Имён и чисел там много, так что задачка не из лёгких. Всего 100 фраз, около 20 минут речи. Ещё сделали версию с шумом и пару пятиминутных «лекций», склеенных из этих же фраз.

4.3%ошибок в словах у whisper-turbo
2.5 сна фразу в 11 секунд
35 сна запись в 5 минут
0.5 сна фразу у Vosk

Как модели слышат

Прежде чем смотреть на графики, послушай сам. Под каждой записью — что услышала каждая модель. Подсвечены слова, которые разошлись с оригиналом.

чистая запись · 7 с

«Первоначально он был госпитализирован в госпитале Джеймса Педжета в Грейт-Ярмуте.»

whisper-turbo (OVMS)Первоначально он был госпитализирован в госпитале Джеймса Педжета в Грейд-Ярмуте.
Parakeet v3Первоначально он был госпитализирован в госпитале Джеймса Пэджета в Грейд Ярмоте.
Vosk 0.42первоначально он был госпитализирован в госпитале джеймса педжета в грэйд ярмуте
Qwen3-ASR 1.7BПервоначально он был госпитализирован в госпитале Джеймса Педжета в Грейт-Ярмуте.
Qwen3-ASR 0.6BПервоначально он был госпитализирован в госпитале Джеймса Педжета в Грейт Ярмуте.
BorealisПервоначально он был госпитализирован в госпитале Джеймса Педжета в Грейд-Ярмоте.
whisper-smallПервоначально он был госпитализирован в госпитале James Page at the Great Armour.

чистая запись · 12 с

«Он также атаковал все, что входило в воду; даже гигантский динозавр, такой как тиранозавр, не сравнился бы с ним.»

whisper-turbo (OVMS)Он также атаковал все, что входило в воду. Даже гигантский динозавр, такой как тираннозавр, не сравнился бы с ним.
Parakeet v3Он также атаковал все, что входило в воду. Даже гигантский динозавр, такой как тиранозавр, не сравнился бы с ним.
Vosk 0.42он также атаковал все что входило в воду даже гигантский динозавр такой как тираннозавр не сравнился бы с ним
Qwen3-ASR 1.7BОн также атаковал все, что входило в воду. Даже гигантский динозавр, такой как тираннозавр, не сравнился бы с ним.
Qwen3-ASR 0.6BОн также атаковал все, что входило в воду, даже гигантский динозавр, такой как Тироназавр, не сравнился бы с ним.
BorealisОн альтаграфически молчал и стал с кем-то в ходу, даже гигантский динозавр — такой как тираннозавра, не сравнился бы с ним.

с шумом · 11 с

«Тигриный рык не похож на полнозвучный рык льва, а больше напоминает выкрикивание предложений из неразборчивых слов.»

whisper-turbo (OVMS)Тигриный рык не похож на полнозвучный рык льва, а больше напоминает выкрикивание предложений из неразборчивых слов.
Parakeet v3Тигриный рык не похож на полнозвучный рык льва, а больше напоминает выкрикивание предложений из неразборчивых слов.
Vosk 0.42тигриный рык не похож на полнозвучный рык льва а больше напоминает выкрикивание предложений из неразборчивых слов
Qwen3-ASR 1.7BТигриный рык не похож на полнозвучный рык льва, а больше напоминает выкрикивание предложений из неразборчивого слога.
Qwen3-ASR 0.6BТигриный рыб не похож на полносущий рыболова, а больше напоминает выкрикивание предложений и разборчивых слов.
BorealisТигриный рык не похож на полнозвучное «рыг льва», а боч напоминает выкрикивание предложений из неразборчивых слов.

с шумом · 5 с

«Важно различать глаголы и дополнения.»

whisper-turbo (OVMS)Важно различать глаголы и дополнения.
Parakeet v3Важно различать глаголы и дополнения двух идеал.
Vosk 0.42важно различать глаголы и дополнения
Qwen3-ASR 1.7BВажно различать глаголы и дополнения.
Qwen3-ASR 0.6BВажно развлечь алкогола и дополнение.
BorealisВажно различать глаголы и дополнение.

Почти все ошибки у сильных моделей — в именах собственных и в записи чисел. «Педжет» или «Пэджет», «шопинг» или «шоппинг» — для поиска по расшифровке это неважно. А вот «альтаграфически молчал» вместо «также атаковал» — уже проблема.

Точность против скорости

Ниже и левее — лучше. 100 фраз FLEURS, чистая речь. Разница меньше ~1.5 п.п. — это шум выборки: на 1974 словах один процент — около 20 слов.

По точности лидеры почти вровень. У whisper-turbo в любом рантайме 4.1–4.5% ошибок, у Qwen3-ASR 1.7B — 4.8%, у Parakeet — 5.4%. Разница между ними — пара десятков слов из двух тысяч. Решает скорость и то, на чём модель работает.

Рантайм важнее модели

Это главный урок фазы. Одна и та же модель whisper-large-v3-turbo с одинаковой точностью работает в 3.3 раза быстрее через OpenVINO, чем через whisper.cpp, на том же самом iGPU. На CPU разница тоже двукратная.

Одна и та же модель whisper-large-v3-turbo с одинаковым качеством (4.1–4.3% WER). Разница только в том, кто её крутит.

А если шумно?

Шум ухудшает всех в 2–2.5 раза, но по-разному. Whisper держится лучше остальных: около 10% ошибок на фоне «кухни с телевизором». Маленький Qwen3-ASR 0.6B в шуме разваливается — 21%, а в примере выше у него «тигриный рыб» и «рыболов».

Шум — это наложенный «бубнёж» других дикторов плюс розовый шум, примерно как разговор на кухне при включённом телевизоре.

На пятиминутных записях у Parakeet проблема: 12.5% ошибок против ~6% у whisper и Qwen3-ASR 1.7B. Длинное аудио режется на куски, и на стыках модель теряется.

Кто есть кто

Whisper всегда слушает 30 секунд

Whisper кодирует аудио окнами по 30 секунд, даже если фраза длится две. Поэтому короткая команда стоит ему те же ~2.5 секунды, что и длинная фраза. Vosk и Parakeet работают пропорционально длине, и на командах отрываются ещё сильнее.

Не взлетело

Чего мы не проверили

Запросы шли по одному. Как модели поведут себя, когда тот же iGPU занят индексацией Immich или LLM, — отдельный вопрос. В голосовом ассистенте мы проверили только связку STT + LLM: они друг другу не мешают.