Вы запускаете голосовой ассистент в закрытом контуре: никакого доступа к облаку, данные под NDA, железо — Raspberry Pi 4. Vosk — единственный production-ready toolkit на базе Kaldi, который работает полностью офлайн, занимает от 50 МБ на диске и даёт latency ~200 мс на streaming. Без интернета, без утечек. Vosk поддерживает 20+ языков включая русский, но на каждом втором проекте мы сталкивались с проблемой WER выше ожидаемого — базовая модель не понимает медицинские или юридические термины. Мы внедряли Vosk в медицинские диктофоны, голосовые помощники для «чистых комнат», системы управления конвейером. Каждый раз упирались в два ограничения: точность на специфической лексике и производительность на слабом CPU. Ниже — как мы это обходим. При этом затраты на облачные API могут доходить до сотен тысяч долларов в месяц — переход на Vosk снижает расходы на 60–80%.
Какие проблемы решаем
-
Высокий WER на предметной лексике. Стандартная модель vosk-model-ru-0.42 даёт WER ~12% на новостях, но на медицинских терминах — до 30%. Решение — кастомный словарь с weight-ами и fine-tuning на 1–2 часа целевых записей. На одном проекте мы за день снизили WER с 25% до 14%.
-
Латенси на потоке. Vosk отдаёт partial results каждые 200 мс, но если нагрузка на CPU 100%, фреймворк начинает подвисать. Мы оптимизировали pipeline: вынесли декодинг в отдельный поток, добавили буфер на 2 секунды, использовали VAD для вырезания тишины. В результате p99 latency не превышает 350 мс.
-
Необходимость уникальной модели. Для китайского языка Vosk предлагает не все акценты. На одном проекте с французским диалектом мы обучили адаптированную модель через Kaldi nnet3 — потратили неделю, но получили WER 8% против базовых 22%.
Как Vosk адаптировать под специфическую лексику?
Процесс включает четыре этапа: сбор аудиозаписей (1–2 часа), транскрибирование, создание кастомного словаря с весами, дообучение модели через Kaldi nnet3. На одном из проектов для французского диалекта мы снизили WER с 22% до 8% за неделю.
Почему Vosk лучше для edge-устройств?
Vosk потребляет в 40 раз меньше памяти, чем Whisper-large, и в 10 раз быстрее на Raspberry Pi. Ниже — сравнение доступных моделей для русского языка (данные — Vosk model zoo):
| Модель | Размер | WER (чистая речь) | RAM (итого) | Идеальный сценарий |
|---|---|---|---|---|
| vosk-model-small-ru-0.22 | 45 MB | ~20% | ~80 MB | Raspberry Pi Zero, микроконтроллеры |
| vosk-model-ru-0.42 | 1.5 GB | ~12% | ~1.6 GB | Сервер, одноплатник с 2+ ГБ ОЗУ |
| Кастомная (fine-tune) | от 100 MB | 8–15% | ~500 MB | Нишевая лексика (медицина, юриспруденция) |
Вывод: для low-power edge — small, для точности — full или кастом. Дополнительное сравнение по ресурсам:
| Ресурс | Vosk (small) | Whisper (tiny) | Whisper (base) |
|---|---|---|---|
| RAM | 80 MB | 1 GB | 2.5 GB |
| CPU load (RPi4) | 15% | 60% | 90% |
| Latency | 200 ms | 500 ms | 1.2 s |
Как мы интегрируем Vosk: кейс медицинского диктофона
Один из наших клиентов — медицинский центр, которому требовалось записывать приёмы врачей. Железо — Intel NUC (i5, 8 GB RAM). Мы использовали vosk-model-ru-0.42 с кастомным медицинским словарём. Фрагмент интеграции:
from vosk import Model, KaldiRecognizer import pyaudio model = Model("vosk-model-medical") rec = KaldiRecognizer(model, 16000) rec.SetGrammar(grammar) # медицинские термины p = pyaudio.PyAudio() stream = p.open(format=pyaudio.paInt16, channels=1, rate=16000, input=True, frames_per_buffer=4000) while True: data = stream.read(4000, exception_on_overflow=False) if rec.AcceptWaveform(data): result = json.loads(rec.Result()) print(result["text"]) else: partial = json.loads(rec.PartialResult()) # отображаем промежуточный текст Первый прототип — за 4 дня. Ещё 3 дня ушло на калибровку словаря и стресс-тестирование. На выходе — WER 9% на реальных записях.
Подробнее о кастомном словаре
Мы используем технику добавления терминов с весами: каждому слову назначается коэффициент от 0 до 1, влияющий на вероятность его распознавания. Например, для слова «диагноз» weight=1.5, для «гипертония» weight=1.2. Это позволяет поднять точность без увеличения размера модели.Что входит в работу
- Аудит задачи и подбор модели.
- Интеграция Vosk в ваш код (Python, Java, C#, Go, Node.js).
- Кастомизация словаря и/или fine-tuning модели.
- Оптимизация latency и потребления памяти.
- Тестирование на ваших данных (100+ записей).
- Документация и обучение команды.
- Техподдержка 3 месяца.
Стоимость рассчитывается индивидуально, но в среднем замена облачного API на Vosk экономит 60–80% бюджета на распознавание.
Сроки интеграции Vosk
Базовая интеграция — от 3 до 5 дней. Если требуется кастомная модель или fine-tuning — 2–3 недели. Мы помогаем оценить проект: просто опишите задачу, и за день пришлём план.
Почему выбирают нашу интеграцию?
Опыт — более 10 проектов по голосовым технологиям. Мы даём гарантию на качество распознавания (оговорённый WER) и поддерживаем код после сдачи. Вы остаётесь владельцем всех моделей и скриптов — никакого vendor lock.
Свяжитесь с нами — пришлём тестовую модель под вашу задачу. Закажите пилот — получите прототип за 5 дней.







