Нативное menu bar-приложение на Swift + AppKit для голосового ввода в macOS: зажимаешь выбранный хоткей (по умолчанию ⌘ + ⌃), говоришь, отпускаешь — готовый текст вставляется в активное приложение.
Добавь к хоткею ⌥ — получишь перевод через локальный Apple Translation. Добавь ⇧ — распознанная фраза попадёт в текущий список дел вместо вставки.
Главные возможности:
- hold-to-talk с глобальным хоткеем;
- локальные Whisper, NVIDIA Parakeet TDT v3, GigaAM v3 E2E RNNT и облачный Groq;
- live-текст во время записи в режимах FluidAudio и GigaAM;
- Apple Translation без облачных API;
- текущий список дел с плавающей шайбой поверх окон.
- Автоматически удаляются явные звуки-паразиты: «э-э», «эээ», «а-а-а», «эм», «ммм», включая варианты с разным регистром и дефисами. Локальный фильтр без LLM и дополнительных сетевых запросов.
- Очистка работает для всех движков перед вставкой, историей, переводом и добавлением в дела; также в live-тексте FluidAudio и GigaAM.
- Обычные слова «ну», «вот», «как бы», одиночные «а» и латинское A сохраняются. Если после очистки ничего не осталось, вставка и создание задачи не выполняются, буфер не меняется.
- Ограничение: фильтр видит текст, а не интонацию. Намеренно продиктованное междометие или совпадающая аббревиатура также могут быть удалены. Регистр оставшихся слов не переписывается; ошибки самого распознавания фильтр не исправляет.
Скачать VoiceCapture 3.6.1 для macOS (Apple Silicon) · Описание релиза
- GigaAM v3 E2E RNNT — дополнительный локальный движок русского распознавания со встроенной пунктуацией, регистром и нормализацией текста. Без Python, API-ключей и LLM-корректора.
- Выбор и скачивание модели (~425 MB) в настройках. Требуется Apple Silicon + macOS 15+; прежние движки продолжают работать на macOS 14.
- Длинная диктовка без искусственного лимита 25/30 секунд: внутренние фрагменты по паузам, контекстное перекрытие и объединение целых слов по времени. Если VAD недоступен, используется деление по энергии без удаления аудио.
- Предварительный текст обновляется во время записи, окончательный проход — после отпускания хоткея. Работают обычная вставка, перевод через ⌥ и список дел через ⇧.
Скачать VoiceCapture 3.6.0 для macOS (Apple Silicon) · Описание релиза
- Открой Настройки… → Распознавание → GigaAM v3 E2E RNNT (русский — live).
- Нажми Скачать, дождись компиляции модели, затем Сохранить.
- Диктуй обычным хоткеем. Для сравнения переключись обратно на FluidAudio (Parakeet v3 — live).
Распознавание локальное; интернет нужен для первой загрузки GigaAM и вспомогательной Silero VAD. GigaAM хранится в подпапке gigaam-v3-e2e-rnnt каталога моделей VoiceCapture. Язык и Whisper prompt на неё не влияют.
Используется сторонняя Core ML-конвертация smkrv официальной GigaAM, MIT, на CPU + GPU. Версия артефактов закреплена. Модели и личные настройки не включены в ZIP приложения.
Ограничения: GigaAM рассчитана на русский язык; пунктуация и слова на стыках могут ошибаться. Live — повторные проходы, не настоящий streaming; на длинной записи частота обновлений зависит от длительности и нагрузки. Предварительный текст может отличаться от итогового. Нет гарантии превосходства над Parakeet на конкретном голосе.
Проверено на синтезированной русской речи: 187 секунд с 12 контрольными пунктами и сохранённым концом записи, а также 118 секунд непрерывного текста без заданных пауз. Это техническая проверка, не пользовательская проверка микрофона или сравнительный WER-бенчмарк.
Для локальной обработки файлов без микрофона и автовставки:
.build/release/VoiceCapture --gigaam-download
.build/release/VoiceCapture --gigaam-file /path/to/audio.wav- Добавлен обход проблемы с буквой «ё» в FluidAudio / Parakeet TDT v3: служебный маркер
<unk>заменяется на «ё»/«Ё» в live-тексте и итоговой диктовке. Например: «Ч-то» → «Чё-то». - Это эвристика:
<unk>означает неизвестный токен, а не исключительно «ё». В других языках или для иных отсутствующих символов замена может быть ошибочной. Whisper и Groq не затронуты. - В релиз также входят все возможности 3.5.0: голосовой список дел и плавающая шайба.
Скачать VoiceCapture 3.5.1 для macOS (Apple Silicon) · Описание релиза
- Текущий список дел голосом. Зажми обычный хоткей записи и дополнительно ⇧ Shift — распознанный текст попадёт в список дел вместо вставки в активное приложение. В оверлее появляется зелёный бейдж
📝. - Плавающая шайба поверх окон: при наведении показывает текущие дела. Список можно перетаскивать; позиция шайбы сохраняется.
- Галочка зачеркивает задачу и удаляет её через 5 секунд. В течение этого времени галочку можно снять и отменить удаление. Текст задачи редактируется по клику, Enter сохраняет, Esc отменяет.
- В настройках появился переключатель «Список дел (⇧ + хоткей записи)». Выключение скрывает шайбу и отключает режим задач; включение применяется после сохранения.
⇧зарезервирован под список дел и больше не назначается модификатором основного хоткея.
- Перевод на лету через Apple Translation. Зажми хоткей вместе с ⌥ — русская речь распознаётся и сразу переводится локальным движком Apple.
- В оверлее вместо красного индикатора появляется бейдж целевого языка (
EN,DE,UK…). - Новая настройка «Перевод (⌥)»: 12 языков.
- Перевод требует macOS 15+. На macOS 14 приложение работает без перевода.
⌥зарезервирован под перевод и не назначается модификатором основного хоткея.
- Собери приложение или скачай готовый релиз. Готовая сборка рассчитана на Apple Silicon и macOS 14+; перевод требует macOS 15+.
- Запусти
VoiceCapture.app. - Предоставь доступ к микрофону и Accessibility / Универсальному доступу.
- Выбери движок в Настройки…, скачай нужную локальную модель.
- Зажми
⌘⌃, продиктуй текст и отпусти — он вставится в активное приложение.
- Включи Настройки… → Список дел (⇧ + хоткей записи) и сохрани. Шайба появится поверх окон.
- Зажми основной хоткей записи и дополнительно
⇧, продиктуй задачу и отпусти клавиши. - Наведи мышь на шайбу, чтобы открыть список. Перетащи шайбу в удобное место — оно сохранится.
- Отметь задачу: она будет зачёркнута ещё 5 секунд. Сними галочку в этот момент, чтобы отменить удаление.
- Нажми на текст задачи для редактирования;
Enterсохраняет,Escотменяет.
Настройка выключает и шайбу, и режим добавления задач. Уже сохранённые задачи не удаляются и снова появятся при включении функции.
Задачи хранятся локально в:
~/Library/Application Support/VoiceCapture/todos.json
- Выбери язык в Настройки… → Перевод (⌥).
- Зажми обычный хоткей записи и дополнительно
⌥. - Говори по-русски и отпусти клавиши.
Перевод выполняется локально. При первом переводе macOS может предложить скачать языковой пакет.
Файл настроек:
~/Library/Application Support/VoiceCapture/settings.json
Основные параметры:
backend:local|fluidAudio|gigaAM|groq|both;localModel: файл выбранной Whisper-модели;language:ru|en|auto;initialPrompt: prompt для Whisper/Groq;groqApiKey,groqModel;autoPaste;todoEnabled: включает шайбу и добавление задач через⇧вместе с хоткеем;microphoneUID: CoreAudio UID выбранного микрофона;hotkeyRequiresCommand/Control/Option/Shift: модификаторы hold-to-talk хоткея;translationTarget: целевой язык перевода;localStartDelayдля совместного режима.
- Открой Настройки….
- В строке «Хоткей записи» нажми «Изменить».
- Зажми нужную комбинацию из
⌘и⌃и отпусти. - Нажми «Сохранить».
⌥ зарезервирован под перевод, ⇧ — под список дел и в основной хоткей не назначаются.
Whisper-модель можно скачать из настроек или скриптом:
./download_model.sh large-v3-turboДоступны tiny, base, small, medium, large-v3, large-v3-turbo.
FluidAudio / Parakeet TDT v3 скачивается из настроек и рассчитан на Apple Silicon.
Для сборки нужен Xcode toolchain:
DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer ./build_app.sh
open dist/VoiceCapture.appОбычный CommandLineTools может завершиться ошибкой plugin for module 'SwiftUIMacros' not found; в этом случае используй DEVELOPER_DIR, как в команде выше.
- Микрофон — нужен для записи.
- Accessibility / Универсальный доступ — нужен для глобального хоткея и авто-вставки.
После пересборки macOS иногда требует выключить и снова включить VoiceCapture в списке Accessibility.
Проверь комбинацию в Настройки… → Хоткей записи, разрешение Accessibility и перезапусти приложение.
Проверь, что включён пункт Настройки… → Список дел (⇧ + хоткей записи). Для добавления задачи удерживай ⇧ вместе с основным хоткеем до конца записи.
Проверь Accessibility. Распознанный текст всё равно остаётся в буфере обмена и истории.
Нужна macOS 15.0 или новее. Удерживай ⌥ вместе с основным хоткеем до самого отпускания.
Готовый .app создаётся в dist/VoiceCapture.app. Для релиза можно упаковать его в zip:
cd dist
zip -r ../VoiceCapture-3.5.1-macOS-arm64.zip VoiceCapture.appМодели в репозиторий не включаются и скачиваются отдельно.
Проект использует whisper.cpp и FluidAudio согласно их лицензиям. Apple Translation является системным API macOS.
Старый Python/PyQt6-проект находится в соседней папке ../voice2.0 и не относится к этому приложению.
Репозиторий: github.com/oiv-an/voice-capture-mac
Автор: Ivan Olyansky.