Skip to content

Repository files navigation

SuperDictate

Установить за минуту

Нужен Mac с Apple Silicon (M1 или новее) и macOS 14+.

  1. Откройте приложение Terminal.
  2. Вставьте эту команду и нажмите Enter:
curl -fsSL https://raw.githubusercontent.com/shlgd/SuperDictate/v0.2.43/install.sh | /usr/bin/arch -arm64 /bin/bash
  1. В открывшемся SuperDictate нажмите Разрешить для Микрофона, Универсального доступа и Мониторинга ввода.
  2. Дождитесь статуса Работает, нажмите правый Command и говорите. Нажмите правый Command ещё раз, чтобы вставить текст.

Установщик сразу скачивает с GitHub и проверяет локальную модель распознавания, показывая прогресс в Terminal. Поэтому после открытия приложения остаётся только выдать три разрешения и дождаться подготовки Neural Engine. Модель занимает около 460 МБ; для установки лучше иметь не менее 2 ГБ свободного места. После установки интернет для диктовки не нужен.

SuperDictate — быстрая локальная диктовка для macOS. Аудио и расшифровка не отправляются в облачный API. Единственное исключение — необязательная AI-чистка текста: она выключена по умолчанию и, если вы её включите, отправляет готовый текст на выбранный вами сервер (см. ниже).

Обновиться

Если в SuperDictate уже есть кнопка Обновить: откройте приложение из папки Applications и нажмите эту кнопку. Приложение само скачает и проверит новую версию, заменит старую и запустится заново.

Если SuperDictate был установлен до появления кнопки обновления: ничего не удаляйте. Откройте Terminal и ещё раз выполните ту же команду:

curl -fsSL https://raw.githubusercontent.com/shlgd/SuperDictate/main/install.sh | /usr/bin/arch -arm64 /bin/bash

Команда заменяет только /Applications/SuperDictate.app. История, настройки и уже загруженная модель остаются на месте. После этого следующие обновления можно устанавливать прямо из приложения.

Последнюю опубликованную версию также всегда можно увидеть на странице GitHub Releases.

Горячие клавиши

  • Правый Command — начать диктовку; повторное нажатие завершает запись.
  • В настройках можно выбрать, что делает повторное нажатие: просто вставляет текст или вставляет текст и затем нажимает Enter.
  • Правый Option + правый Command — альтернативно завершить активную запись. Он выполняет противоположное действие: если основной хоткей нажимает Enter, этот завершит без Enter, и наоборот. Альтернативный хоткей можно выключить.
  • Правый Shift + правый Command — открыть или закрыть быструю историю.
  • История показывает по 5 записей; стрелки листают до 100 последних транскрипций. Нажатие на запись копирует её и закрывает панель.
  • Кнопка импорта аудио в истории принимает один или несколько аудиофайлов, показывает прогресс и сохраняет готовые .txt на Рабочий стол или в выбранную в настройках папку.
  • Все три сочетания можно изменить независимо. Поддерживаются одиночные клавиши, функциональные клавиши, обычные сочетания и сочетания только из модификаторов, например Option + Command.
  • Левая и правая основные клавиши различаются: сочетание с правым Command не сработает от левого Command.
  • Пока открыто окно записи нового сочетания, глобальная диктовка временно приостанавливается. Нажатые клавиши только записывают новый хоткей и ничего не запускают.
  • Откройте SuperDictate из Applications, чтобы проверить службу, разрешения и обновления. Настройки открываются кнопкой-шестерёнкой.

Панель управления

Основная панель компактна: в ней видны состояние фоновой службы, недостающие разрешения и доступное обновление. Кнопки управления службой находятся справа от её статуса; при наведении macOS показывает пояснение к каждой кнопке.

Шестерёнка открывает отдельное окно с тремя сочетаниями, поведением завершения, выбором микрофона, папкой экспорта аудиофайлов, размером капсулы, цветами и фоном индикатора. Переключатель RU / EN мгновенно меняет язык обеих панелей. Изменения сначала остаются черновиком; кнопка Сохранить и перезапустить применяет их вместе и перезапускает только фоновую службу. История и модель при этом не удаляются.

Панель можно полностью закрыть. Отдельная фоновая служба продолжит работать и автоматически запустится после следующего входа в macOS.

AI-чистка текста (по желанию)

По умолчанию диктовка полностью локальна. Дополнительно можно включить AI-чистку: после распознавания текст отправляется на OpenAI-совместимый сервер, который исправляет пунктуацию, грамматику и очевидные ошибки распознавания. Функция выключена по умолчанию и работает только с вашим собственным ключом.

Настройка:

  1. Получите ключ у любого OpenAI-совместимого провайдера (по умолчанию — Groq, бесплатный ключ на console.groq.com; также подойдут OpenAI, DeepSeek, OpenCode Zen, OpenRouter).
  2. Откройте Настройки → раздел AI-чистка текста, вставьте ключ и нажмите Сохранить ключ. Ключ хранится только в Связке ключей macOS.
  3. При необходимости измените базовый URL и модель (по умолчанию — https://api.groq.com/openai/v1 и openai/gpt-oss-20b), включите переключатель и нажмите Сохранить. Для Groq запрос настроен на низкую задержку. Кнопка Проверить подключение проверяет ключ, адрес и доступность выбранной модели.

Важно: продиктованный текст отправляется выбранному провайдеру, и бесплатные тарифы некоторых провайдеров (например, OpenCode Zen) могут сохранять его для улучшения модели — перед личной диктовкой проверьте политику данных. Если сервер недоступен или ответил ошибкой, вставляется исходный локальный текст — диктовка никогда не теряется.

Зачем нужны разрешения

macOS не разрешает приложению выдать их самому:

  • Microphone — записывать голос во время активной диктовки.
  • Accessibility — находить активное поле и вставлять готовый текст.
  • Input Monitoring — видеть глобальную горячую клавишу.

Если после выдачи разрешений статус не стал Ready, откройте SuperDictate и нажмите Restart у фоновой службы. Если приложение не появилось в системном списке, нажмите Try Again у соответствующего разрешения.

Что делает установщик

Установщик:

  1. Загружает SuperDictate.zip и закреплённую модель SuperDictate-Model-v3.zip из GitHub Releases.
  2. Показывает прогресс обеих загрузок прямо в Terminal. Если проверенная модель уже установлена, повторно её не скачивает.
  3. Проверяет закреплённые SHA-256, содержимое модели, версию, bundle ID, архитектуру arm64, подпись и microphone-entitlements.
  4. Атомарно устанавливает модель, безопасно заменяет /Applications/SuperDictate.app и открывает панель.

Xcode и Command Line Tools для обычной установки не нужны. История, настройки и уже загруженная модель при обновлении сохраняются.

Подробнее об обновлении

Если установлена v0.2.26 или новее

  1. Откройте SuperDictate из папки Applications.
  2. В нижней строке панель сама покажет новую версию.
  3. Нажмите Обновить.

Архив скачается, пройдёт проверку SHA-256, bundle ID, версии и подписи, после чего приложение заменит себя и откроется заново. История, настройки и модель сохраняются. Предыдущая версия автоматически восстанавливается при ошибке.

Если установлена v0.2.25 или старее

В этих версиях кнопки ещё нет. Один раз повторите установочную команду ниже. Она обновит приложение без удаления истории, настроек и модели. Все следующие обновления можно будет устанавливать кнопкой в панели.

Эта же команда остаётся запасным способом для любой версии:

curl -fsSL https://raw.githubusercontent.com/shlgd/SuperDictate/v0.2.43/install.sh | /usr/bin/arch -arm64 /bin/bash

Приложение само не устанавливает обновления в фоне: запуск обновления всегда нужно подтвердить кнопкой.

Сборка из исходников

Самый простой способ

Команда скачает открытый исходный код, соберёт его локально и установит результат в /Applications:

curl -fsSL https://raw.githubusercontent.com/shlgd/SuperDictate/v0.2.43/install.sh | SUPERDICTATE_BUILD_FROM_SOURCE=1 /usr/bin/arch -arm64 /bin/bash

Понадобятся бесплатные Apple Command Line Tools. Если их нет, установщик откроет стандартный диалог установки; после его завершения запустите команду ещё раз. Первая чистая сборка обычно занимает несколько минут.

По умолчанию сборка из исходников скачивает точный коммит исходного кода релиза и проверяет его через GitHub. Для разработки можно передать свои SUPERDICTATE_REF и SUPERDICTATE_SOURCE_COMMIT; без совпадения коммита установщик не запустит скачанный scripts/build-app.sh.

Ручная сборка для разработки

xcode-select --install
git clone https://github.com/shlgd/SuperDictate.git
cd SuperDictate
swift run -c debug --package-path swift Parakey --self-test all
./scripts/build-app.sh ./dist/SuperDictate.app
open ./dist/SuperDictate.app

По умолчанию локальная сборка подписывается ad-hoc. Чтобы использовать свой сертификат, передайте его имя:

SIGN_IDENTITY="Apple Development: Your Name (TEAMID)" ./scripts/build-app.sh ./dist/SuperDictate.app

Не перемещайте и не удаляйте dist/SuperDictate.app, пока фоновая служба запущена из этой сборки. Для обычного использования предпочтительнее команда с SUPERDICTATE_BUILD_FROM_SOURCE=1, которая ставит приложение в /Applications.

Проверки перед pull request

bash -n install.sh uninstall.sh scripts/build-app.sh
plutil -lint swift/Info.plist entitlements.plist
swift run -c debug --package-path swift Parakey --self-test all
./scripts/build-app.sh ./dist/SuperDictate.app
codesign --verify --deep --strict ./dist/SuperDictate.app

GitHub Actions повторяет самотесты, собирает bundle, прогоняет установщик на чистом macOS runner и проверяет удаление.

Ограничения

  • Поддерживаются только Apple Silicon и macOS 14 или новее. Intel Mac, Windows и Linux пока не поддерживаются.
  • Публичная сборка подписана ad-hoc и не нотарифицирована Apple. Установка через команду выше проверена, но ZIP, скачанный вручную через браузер, может вызвать предупреждение Gatekeeper.
  • Из-за отсутствия стабильной Developer ID подписи macOS иногда повторно запрашивает разрешения после обновления. Нотаризация требует платного аккаунта Apple Developer.
  • Установка требует доступа к GitHub Releases, откуда одной командой загружаются приложение и модель. Первый запуск модели уже не зависит от Hugging Face. Панель проверяет обновления при открытии; фоновая автопроверка, если включена, обращается к публичному GitHub API раз в шесть часов.
  • Одна запись автоматически завершается через 20 минут. При аварийном завершении незаконченная запись сохраняется для восстановления истории.
  • Защищённые поля паролей и приложения, которые скрывают Accessibility-данные, могут не отдавать координаты каретки. Это влияет на положение анимации, но не всегда мешает вставке текста.
  • Ориентир по ресурсам на текущей сборке: около 460 МБ на диске для модели, примерно 100–150 МБ памяти в простое и до 500 МБ во время загрузки/работы модели. Значения зависят от macOS и длины записи.

Данные и приватность

  • История и настройки: ~/Library/Application Support/SuperDictate.
  • Модель FluidAudio: ~/Library/Application Support/FluidAudio/Models.
  • LaunchAgent: ~/Library/LaunchAgents/com.local.superdictate.agent.plist.
  • Логи: ~/Library/Logs/SuperDictate*.
  • Ключ API для AI-чистки: только в Связке ключей macOS.
  • Аналитики, аккаунтов и телеметрии нет.

Подробнее: PRIVACY.md.

Удаление

curl -fsSL https://raw.githubusercontent.com/shlgd/SuperDictate/v0.2.43/uninstall.sh | bash

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

Происхождение и лицензия

SuperDictate основан на открытом проекте Parakey Richard Courtman. Исходный и изменённый код распространяется по лицензии MIT. См. LICENSE и NOTICE.md. Атрибуция модели, распространяемой отдельным release asset, находится в MODEL_ATTRIBUTION.md.

About

Fast, private, local dictation for Apple Silicon Macs.

Topics

Resources

Contributing

Security policy

Stars

164 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages