Whisper на телефоне: как запустить распознавание локально
23 сентября 2026 · гайд разработчика · 6 минут чтения
Полностью офлайновый распознаватель речи на телефоне — задача решённая, спасибо whisper.cpp: C/C++ порту Whisper, который крутится на ARM-процессорах без каких-либо облаков. Разберём, что для этого нужно и где проходит граница разумного.
Инструмент: whisper.cpp
Это переписанный на C/C++ инференс Whisper с оптимизациями под мобильные чипы: квантованные модели, поддержка NEON (векторные инструкции ARM). Модель конвертируется в собственный формат GGML/GGUF и кладётся прямо в приложение. Есть готовые Android-обёртки и JNI-биндинги — руками писать низкоуровневый код не придётся.
Выбор модели: честная таблица компромиссов
- tiny (75 МБ) — молниеносная, русский понимает «на троечку»: короткие чёткие команды да, разговорная речь — с ошибками;
- base (142 МБ) — рабочий минимум для команд;
- small (466 МБ) — приличное качество русской речи, но уже ощутимая нагрузка и время инференса на средних телефонах;
- medium и large — на телефоне превращаются в диагноз: минуты на фразу или сильно прогретый флагман.
Реальная скорость
На флагманах tiny-модель распознаёт фразу быстрее реального времени (xRTF заметно больше 1), на средних телефонах — около реального времени. То есть фразу из пяти секунд tiny переварит за 2–4 секунды. Сравни с облачным turbo: 0,17–0,22 с на тот же запрос — разница в десять раз, и это фундаментальное ограничение железа, а не софта.
Кому это подходит
- Сценарий «только команды, офлайн навсегда» — tiny/base хватает (вся картина офлайна);
- Эксперименты и приватность по максимуму — идеально;
- Живой быстрый диалог — не твой вариант: задержка убьёт темп. Вот почему Амалия держит VAD локально, а Whisper — в облаке: гибрид, который успевает.
Собери гибрид сам по гайду сборки ассистента — или возьми готовый: APK Амалии и исходники.