В голос-в-текст идёт тихий сдвиг. Пять лет назад всё хорошее жило в облаке. Apple Silicon поменял арифметику — M1 и далее идут с нейронными движками, способными гонять реальные модели речи прямо на устройстве, и зазор между облаком и локалью сократился почти до нуля для большинства задач.

Этот гид — о том, что такое офлайн голос-в-текст на Mac, как устроена технология и какими инструментами имеет смысл пользоваться.

Почему «офлайн» стал жизнеспособным

Раньше распознавание речи было задачей для облака, потому что модели были слишком большими для потребительского железа в реальном времени. Whisper-Large весит ~1.5 GB. Гонять его на разговорной скорости — серьёзный компьют.

Что изменилось:

  • Нейродвижок Apple Silicon даёт ~11–15 TOPS на M1 базовом и до 38 TOPS на M3 Pro и выше. Этого хватает, чтобы крутить Whisper-Medium или Parakeet быстрее, чем в реальном времени.
  • Малые модели стали лучше. Parakeet (RNN-T от NVIDIA) даёт конкурентоспособную точность при доле размера Whisper и работает на ~150x real-time на M-серии.
  • CoreML и Metal созрели, и Whisper.cpp и ему подобные реально используют железо, а не пинают CPU.

Итог: теперь можно диктовать, расшифровывать встречу или обрабатывать часовой файл локально на MacBook Air так, что вентиляторы даже не включаются.

Что реально даёт «офлайн»

Приватность — очевидное. Но ежедневно важны и практические плюсы:

Нет задержек. У облака — round-trip. Даже на быстром соединении это 50–200 мс на запрос. Локальная инференция возвращает результат настолько быстро, насколько модель его выдаёт; на Apple Silicon — обычно меньше 200 мс на короткую фразу.

Работает офлайн. Самолёты, поезда, гостиничный Wi-Fi, защищённые офисы, конференц-сети, режущие трафик. Всё это не важно, если модель у вас на машине.

Без подписки. Облака считают по минутам или месяцам. Локальные приложения — обычно разовая покупка или бесплатно.

Без вендор-лока. Расшифровки лежат в вашей файловой системе. Если контора закроется, ваши данные на месте.

Предсказуемо. Облака меняют цены, отключают API и режут лимиты. Локальное — просто продолжает работать.

Как устроено on-device распознавание на Mac

На Apple Silicon доминируют два семейства моделей:

OpenAI Whisper

Whisper — encoder-decoder трансформер, обученный на 680 000 часов многоязычной речи. Open-weight, размеры от Tiny до Large, 99+ языков.

Размеры и компромиссы на M-серии:

Модель Размер RAM Скорость (M2) WER (англ.)
Tiny 75 MB ~400 MB ~30x ~9%
Base 142 MB ~500 MB ~20x ~7%
Small 466 MB ~1 GB ~10x ~5.5%
Medium 1.5 GB ~2.5 GB ~5x ~4.8%
Large-v3 3 GB ~5 GB ~2x ~4.2%

Большие точнее, но жрут больше памяти и медленнее. Для диктовки Small/Medium — sweet spot. Для встреч и файлов, где важна точность, — Large-v3.

NVIDIA Parakeet

Parakeet — RNN-T модель. Быстрее Whisper при сопоставимой точности, по умолчанию англоязычная, ~150x real-time на M2.

Лучший дефолт для англоязычной диктовки — латентность колоссально выигрывает: модель почти не «слышно». Минус — один язык. Нужен мультиязык — берите Whisper.

В большинстве современных Mac-приложений движок выбирается под задачу.

Что ещё работает локально, кроме расшифровки

Распознавание — половина истории. Полный пайплайн обычно:

  1. Захват аудио — микрофон или системный звук.
  2. Распознавание — Whisper или Parakeet выдают сырой текст.
  3. Пост-обработка — пунктуация, заглавные, чистка слов-паразитов.
  4. Опционально: LLM-очистка — локальная языковая модель переписывает текст в выверенный.
  5. Опционально: перевод — вывод на другом языке.

Шаги 4 и 5 используют небольшие локальные LLM (Gemma 3 4B, Qwen 3 4B, LLaMA 3.2 3B) через llama.cpp или MLX. Каждая ~2–4 GB, работают на разговорной скорости на M-серии. Текст читается как редактированная статья, а не «голая» расшифровка.

Расшифровка встреч добавляет ещё два компонента:

  • Диаризация спикеров — кто и что сказал. Нейронные эмбеддинги голосов, всё локально.
  • Саммаризация — локальный LLM делает резюме с задачами и решениями.

Ничему из этого облако больше не нужно.

Инструменты, которые это делают хорошо

Бесплатно или дёшево:

  • Apple Dictation — в составе macOS, on-device-вариант. Только короткая диктовка.
  • MacWhisper — бесплатный для файлов, €64 Pro для живой диктовки.
  • VoiceInk — open-source, $25–49 разово.
  • FluidVoice — бесплатно, open-source, поддерживает Parakeet.

Платные шире:

  • Vext — $49 разово: диктовка + встречи + перевод, всё локально.
  • Superwhisper — $249 пожизненно, фокус на диктовке с кастомными режимами.
  • Voibe — $198 пожизненно, приватная диктовка.

Различие — в охвате. Спор «локально vs облако» по точности и латентности уже решён в пользу локального. Всё, что ниже верхушки облаков (Otter Premium, Rev), сопоставимо или хуже того, что работает у вас на ноутбуке.

Когда облако ещё выигрывает

Чтоб честно: в специфических случаях у облака есть преимущества.

Командная работа. Otter, Fireflies, Granola — общие библиотеки расшифровок, комментарии, совместный просмотр. Если процесс — несколько людей вокруг одних транскриптов, облако под это и заточено.

Отраслевая точность. Медицина, юр, узкие техдомены — у облаков специализированные модели на отраслевой лексике, которые локальный Whisper/Parakeet без файн-тюна не догонит.

Кроссплатформа. Если вы постоянно между Mac, Windows и iPhone, облако синкает.

Для одиночной работы на Mac это редко важно. Для команд в регулируемых отраслях — может быть.

Настройка локального голос-в-текст

Три шага:

  1. Выберите приложение. Для большинства правильный ответ — MacWhisper (триал), Vext (триал) или Superwhisper (триал). Попробуйте, оцените.
  2. Скачайте модель. Первый запуск тянет 600 MB до 3 GB в зависимости от модели. Дальше — просто работает.
  3. Назначьте горячую клавишу. По умолчанию обычно fn или правый Shift. Выбирайте то, что нажимается не задумываясь.

Это весь setup. Без аккаунтов, API-ключей и тарифов использования.

Практический вывод

Офлайн голос-в-текст на Mac перестал быть компромиссом в 2023 и пересёк границу «реально лучше облака» для большинства сценариев к концу 2024. Латентность ниже, приватность настоящая, цена разовая, не ежемесячная.

Если вы по привычке используете облачную диктовку — стоит попробовать локальную. Тот разрыв, что вы могли помнить пару лет назад, больше отсутствует.