Диктовка для Мака без подписки: наговорил - и текст на месте

Если ваша работа - это письма, задачи и заметки, значительная часть дня уходит на набор текста. Я собрал для Мака диктовку: зажал клавишу, наговорил - текст появился там, где стоит курсор, без сети и без подписки.

Александр МазинАлександр Мазин AI-инженер · автоматизация бизнеса Опубликовано
Красная звуковая волна превращается в строки текста рядом с силуэтом ноутбука

Черновик этой статьи я наговорил голосом. Дорога к этому была такая: задачи агентам, письма, заметки, протоколы - работа почти целиком состоит из текста, а говорю я сильно быстрее, чем печатаю. Нужен был инструмент, который превращает речь в текст в любом приложении - в мессенджере, в редакторе, в терминале.

Готовые варианты не подошли: встроенная диктовка macOS слаба для русского, облачные сервисы означают подписку и зависимость от сети, а большинство утилит работают только в своём окне. Мне нужна была системная вещь: зажал клавишу где угодно - наговорил - текст появился там, где стоит курсор.

Я такую вещь собрал. Называется WhisperKey, живёт в строке меню Мака, и через неё сейчас проходит заметная часть моего ввода.

Что получилось

Механика push-to-talk, как в рации: зажал правый Option - по краям экрана загорается оранжевое свечение и появляется плашка "Говорите..." - говоришь - отпустил. Пауза на распознавание, и текст вставляется в активное приложение, в то поле, где стоял курсор. Работает везде: Telegram, браузер, IDE, терминал.

Под капотом - whisper.cpp, открытая реализация распознавания речи от Георгия Герганова, модель large-v3-turbo. Вся обработка идёт прямо на ноутбуке: тяжёлая часть модели исполняется на Neural Engine - нейропроцессоре, который стоит в каждом Маке на Apple Silicon и у большинства пользователей просто простаивает. Интернет для работы не нужен, подписки нет.

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

Инженерная часть: где были грабли

Дальше идёт инженерный раздел. Если вы не пишете код, листайте к ограничениям - там про то, чего эта диктовка не умеет. А тому, кто соберётся делать системную утилиту под macOS, эти грабли сэкономят время.

  • Разрешения macOS. Глобальный хоткей и синтез вставки требуют разрешения Accessibility, запись - разрешения на микрофон. Главная подлость: при смене подписи приложения macOS молча отзывает Accessibility, и хоткей "просто перестаёт работать". Пришлось учить приложение замечать это и восстанавливать активацию самому.
  • Вставка текста. Надёжнее всего оказался путь через буфер обмена и синтетический Cmd+V.
  • Потоковое распознавание. Whisper обрабатывает звук скользящим окном, поэтому живое превью может "передумывать" слова на ходу. Решение - два прохода: черновой во время речи и точный после отпускания клавиши.
  • Дистрибуция. Установочный образ получился крошечным, примерно 1.8 мегабайта: модель на 1.6 гигабайта скачивается при первом запуске с индикатором прогресса.

Как это было построено

Отдельный пласт этой истории - процесс. Swift не был моим основным языком: я бэкенд- и AI-инженер, а не разработчик под macOS. Приложение построено в паре с AI-агентом: архитектуру, ревью и приёмку держал я, значительную часть кода писал агент, на грабли из списка выше мы наступали вместе. Ядро накрыто тестами, а сборка - от компиляции whisper.cpp до готового образа - собрана в воспроизводимые скрипты.

Ограничения, честно

Абзацы модель не расставляет - для длинных текстов нужна пост-обработка через LLM, диктую я всё же кусками. Превью во время речи не дословное - точен только финальный проход. И это Mac-only история: всё завязано на Apple Silicon.

Если нужна диктовка

Смотрите в сторону whisper.cpp. Открытая модель и нейропроцессор, который уже стоит в вашем ноутбуке, дают качество русского, за которое ещё недавно просили подписку.

Во сколько вам обходится время на текст

500 рублей в часориентир: ставка сотрудника, если считать время на набор текста в деньгах
7 000 - 10 000 рублейориентир: во что обходится день собственника, потраченный на то же самое
0 рублей за облакораспознавание идёт на вашем ноутбуке: ни подписки, ни ухода речи наружу

Посчитайте на своих цифрах: сколько часов в день у вас уходит на письма, задачи и заметки, и какая у вас ставка. Для ориентира - час сотрудника обычно оценивают в 500 рублей, день собственника - в 7 000 - 10 000 рублей. Диктовка сокращает эту статью расходов косвенно: говорить быстрее, чем печатать. А вот следующая цифра точная: речь не уходит в чужое облако, потому что распознавание идёт на вашем ноутбуке - ни ежемесячного счёта за подписку, ни лишнего разговора о том, где лежат записи.

Похожая задача?

Если у вас такая же рутина в тексте - ежедневный набор, перенос данных руками, - опишите задачу в оценщике. Он прикинет объём работ и стоимость такой утилиты под ваш случай.

Оценить задачу

Новые разборы - на почту

Разборы задач автоматизации: что автоматизировать, сколько это стоит и что даёт в цифрах. Одно письмо на статью, без рекламы чужих продуктов.

Александр Мазин

Александр Мазин

AI-инженер. Автоматизирую бизнес под ключ: CRM, интеграции, AI-ассистенты, платформы. Пишу о системах, которые заменяют отдел.