Я перепробовал все приложения для голосового ввода на macOS. Стандартную диктовку Apple, платные решения с подписками, open-source проекты. И каждый раз натыкался на одну и ту же проблему: ты говоришь, а потом обнаруживаешь, что часть текста потерялась. Или что приложение зависло. Или что нужен интернет, а его нет. Поэтому я написал своё.

Dictator — бесплатное macOS-приложение для диктовки. Зажимаешь клавишу, говоришь, отпускаешь — текст вставляется туда, где стоит курсор. В любом приложении. Работает офлайн. Без подписок. Скачать можно здесь.

Проблема: диктуешь — а текст теряется

Голосовой ввод на Mac звучит просто. На практике — минное поле.

Стандартная диктовка macOS периодически «отваливается» посередине длинного текста. Ты этого не видишь — индикатор записи горит, ты продолжаешь говорить. А потом смотришь: половины нет. Десять минут работы — в мусорку.

Платные приложения работают стабильнее, но каждое требует подписку $10-15 в месяц за то, что по сути — обёртка над тем же Whisper API. И все они зависят от интернета: пропало соединение → пропала транскрипция.

Я перепробовал штук десять разных решений и понял: ни одно не решает задачу полностью. Либо ненадёжно, либо дорого, либо неудобно.

Два критерия: надёжность и скорость

Когда я начал проектировать Dictator, первым делом определил два принципа, которые важнее всего остального:

Надёжность. Если ты нажал кнопку и начал говорить — текст должен быть распознан. Неважно, есть интернет или нет. Неважно, заснул ли Mac и проснулся. Неважно, переключились ли Bluetooth-наушники. Текст. Должен. Быть.

Скорость. Между тем как ты отпустил клавишу, и тем как текст появился — должны пройти секунды, а не десятки секунд. Иначе диктовка теряет смысл: быстрее было бы напечатать.

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

Решение: параллельные движки

Ключевая идея, до которой я дошёл не сразу — параллельный запуск двух движков распознавания.

В Dictator три режима транскрипции:

  • Cloud — Groq API (Whisper large-v3-turbo). Быстро и точно, работает через встроенный прокси без регистрации
  • Local — WhisperKit на Apple Silicon. Полностью офлайн, модели скачиваются один раз
  • Parallel — запускаются оба одновременно. Кто первый ответил — тот и выиграл

Parallel-режим — это то, что делает Dictator по-настоящему надёжным. Есть интернет — победит облако (оно быстрее). Интернет пропал — результат всё равно будет, от локальной модели. Приложение само определяет доступность сети через NetworkMonitor и адаптирует стратегию.

Настройки транскрипции Dictator — выбор движка и приоритет микрофонов
Приоритет микрофонов и выбор движка транскрипции: облако, локально или суперрежим

Совет: для ещё большей скорости получи бесплатный API-ключ на groq.com. С персональным ключом запросы идут напрямую, без прокси — и ответ приходит ещё быстрее.

Real-time транскрипция: видишь текст, пока говоришь

Одна из вещей, которая бесила в других приложениях — ты не знаешь, слышит ли тебя система. Говоришь в пустоту, а обратная связь — только после окончания записи.

В Dictator, пока ты говоришь, текст уже появляется в прозрачном оверлее поверх экрана. Локальная модель WhisperKit обрабатывает аудио инкрементально: накопленный текст + «хвост» из новых сэмплов. Ты видишь, что происходит. Если что-то пошло не так — нажимаешь Escape и запись отменяется.

Это не просто UX-фишка — это часть философии надёжности. Когда ты видишь результат в реальном времени, ты уверен, что система работает.

AI чистит текст за тебя

Сырая транскрипция — это поток слов. «Ну вот значит я тут подумал что надо бы как бы сделать ну это самое». Dictator пропускает текст через LLM (llama-3.3-70b), который расставляет пунктуацию, убирает слова-паразиты и форматирует результат.

На выходе — чистый текст, готовый к отправке. Если для задачи нужна «сырая» запись — AI-обработку можно отключить одним переключателем.

Настройки AI-обработки Dictator — Groq API ключ
Groq API ключ и настройки обработки текста — убирает слова-паразиты, расставляет пунктуацию

Работает в любом приложении

Dictator не создаёт своё текстовое поле, куда нужно диктовать, а потом копировать. Он вставляет текст прямо в активное приложение — туда, где стоит курсор. Telegram, Slack, VS Code, браузер, почта, Pages, Word.

Технически это работает через симуляцию Cmd+V. Dictator временно кладёт текст в буфер обмена, вставляет, а потом восстанавливает исходное содержимое буфера. Для тебя это выглядит так: отпустил клавишу → текст появился. Буфер обмена не тронут.

Пресеты: свой словарь для каждого контекста

Я диктую тексты про бизнес, технологии, продукты. «Битрикс24», «Систематика», «CRM», «API» — Whisper без подсказок превращает это в кашу. Пресеты решают проблему:

  • Словарь для Whisper — список терминов, которые модель должна знать
  • Инструкции для LLM — как форматировать текст (формальный стиль, код, медицинская запись)

Создаёшь пресет один раз — потом переключаешься между ними по задаче. У меня три: «Бизнес», «Код», «Личное».

Настройка пресета Dictator — словарь терминов и инструкции
Пресет с бизнес-терминологией: Битрикс24, Claude, Systemmatica — Whisper распознаёт точнее

Технические детали для любопытных

  • Аудио: 16kHz моно 16-bit PCM WAV, конвертация через vDSP (Accelerate framework)
  • VAD: если нажал клавишу случайно — текст не будет вставлен
  • Защита от галлюцинаций: если Whisper выдаёт текст, совпадающий с промптом — результат отбрасывается
  • Sleep/wake: запись отменяется при засыпании, движок пересоздаётся после пробуждения
  • Микрофоны: приоритетный список, автопереключение при подключении/отключении устройств
  • Обновления: автоматические через Sparkle, без App Store

Бесплатно — и почему

Dictator — полностью бесплатное приложение. Без подписок, без рекламы, без ограничений. Все функции доступны сразу.

Я сделал его в первую очередь для себя — потому что существующие решения не устраивали. А потом решил отдать бесплатно, потому что инструмент для набора текста не должен стоить денег. Если приложение стало частью твоей работы и хочется поблагодарить — можно через CloudTips в настройках. Но это совершенно необязательно.

Попробуй Dictator

  • macOS, Apple Silicon
  • Бесплатно, без подписок
  • Работает офлайн
  • Скачать →