Frigade выпустила Yap, голосовой ввод для macOS без моделей ИИ для скачивания

Компания Frigade (делает ИИ-ассистента, встраиваемого в чужие продукты) выпустила Yap, бесплатное приложение для голосового ввода на macOS с открытым исходным кодом (лицензия MIT). Пользователь нажимает сочетание клавиш (по умолчанию ⌘⇧D, можно перепривязать хоть на одну клавишу вроде правого Shift), говорит, нажимает ещё раз, и распознанный текст вставляется в то поле ввода, где стоял курсор. История всех диктовок сохраняется локально, чтобы текст можно было скопировать повторно.
Главное отличие Yap от других инструментов диктовки на macOS, оно не скачивает и не держит в памяти собственную модель распознавания речи. Раньше почти все такие приложения либо стоили денег, либо тянули тяжёлые модели вроде Whisper (сотни мегабайт, ощутимая нагрузка на память, на Intel-Mac модели вроде Whisper или Parakeet часто вовсе падали или зависали на десятки секунд), либо были собраны на Electron и держали в памяти целый браузерный движок ради значка в строке меню.
Это стало возможным благодаря macOS 26 (кодовое имя Tahoe): в неё встроили два новых API, SpeechAnalyzer и SpeechTranscriber, которые делают потоковое распознавание речи прямо на устройстве, используя модели, которые поставляет и обслуживает сама операционная система. Приложению не нужно докачивать ничего своего, не нужен ключ API и нет платы за минуты, распознанный текст приходит по мере того, как человек говорит.
Авторы Yap ссылаются на бенчмарк, по которому модель Apple точнее и быстрее того, что она заменяет: на 5559 аудиозаписях из набора LibriSpeech она дала 2,12% ошибок распознавания слов на чистом звуке и 4,56% на зашумлённом, против 3,74% и 7,95% у Whisper Small, и при этом работала примерно втрое быстрее.
Само приложение Yap, около 3000 строк нативного кода на Swift, весит 4 МБ, потребляет около 60 МБ памяти в простое и никогда не обращается к сети: ни аккаунта, ни телеметрии, ни звука, покидающего компьютер. Технически вставка текста устроена так: Yap кладёт распознанный текст в буфер обмена, эмулирует нажатие ⌘V через System Events и затем восстанавливает прежнее содержимое буфера, с задержкой, потому что приложения на Chromium читают буфер обмена асинхронно и не один раз, и слишком быстрое восстановление подсунет им устаревшие данные.
Чтобы печатать в чужие приложения, Yap использует функцию «Универсальный доступ» (Accessibility) и управляет System Events, это запрещено песочницей App Store, поэтому приложение распространяется без песочницы и вне Mac App Store (как и почти все текстовые расширители, менеджеры буфера обмена и инструменты диктовки на macOS). Установить можно через brew install --cask frigadehq/tap/yap или собрать из исходников. Требуется macOS 26 (Tahoe) или новее, на более старых версиях приложение не работает. Разработчики говорят, что сами используют Yap весь рабочий день, в первую очередь чтобы обращаться к ИИ-агентам для написания кода, писать письма и сообщения в Slack.
Ключевые факты
- Frigade выпустила Yap, бесплатное open source (MIT) приложение для голосового ввода на macOS, которое не скачивает и не хранит собственную модель распознавания речи
- Работает через новые API macOS 26 (Tahoe), SpeechAnalyzer и SpeechTranscriber, они делают потоковое распознавание речи на устройстве моделями, которые поставляет сама ОС
- По приведённому бенчмарку на 5559 клипах LibriSpeech модель Apple точнее и втрое быстрее Whisper Small: 2,12%/4,56% ошибок против 3,74%/7,95%
- Само приложение, около 3000 строк на Swift, 4 МБ, около 60 МБ памяти в простое, без сети и телеметрии
- Требует macOS 26+; распространяется вне Mac App Store и без песочницы, потому что использует «Универсальный доступ» и System Events для вставки текста
Почему это важно
macOS 26 добавила в систему два API, SpeechAnalyzer и SpeechTranscriber, которые делают потоковое распознавание речи прямо на устройстве штатными моделями ОС. Раньше разработчикам инструментов диктовки приходилось либо встраивать тяжёлые модели вроде Whisper (сотни мегабайт, заметная нагрузка на память и процессор, проблемы на Intel-Mac), либо тащить целый браузерный движок под Electron. Теперь платформа сама закрывает эту задачу, и небольшая команда смогла сделать быстрое и лёгкое приложение без всей этой инфраструктуры.
Кому это важно
В первую очередь пользователям Mac, которым удобнее надиктовать текст, чем печатать: разработчикам, которые формулируют запросы ИИ-агентам для кода, авторам писем и сообщений в Slack, а также владельцам старых Intel-Mac, где тяжёлые модели вроде Whisper и Parakeet часто падали или работали десятками секунд. Отдельно это интересно тем, кто ценит открытый исходный код и отсутствие сетевых обращений как гарантию приватности голосовых данных.
Как это применить
Установка, одна команда Homebrew: brew install --cask frigadehq/tap/yap (обновление, brew upgrade --cask yap), либо сборка из исходников через install.sh. Приложение бесплатное, распространяется по лицензии MIT, не требует аккаунта или ключа API. Обязательное условие, macOS 26 (Tahoe) или новее; на более старых версиях системы нужных API просто нет, и Yap не запустится.
Можно ли доверять
Материал, авторское описание своего же проекта командой Frigade на GitHub (формат Show HN), а не независимый обзор. Приведённые цифры точности распознавания (2,12%/4,56% против 3,74%/7,95% у Whisper Small на 5559 клипах LibriSpeech) описаны как результат «недавнего бенчмарка» без указания, кто именно и как его проводил, поэтому эти цифры стоит воспринимать как ссылку авторов, а не как проверенный независимый тест. При этом технические детали реализации (буфер обмена, System Events, песочница) описаны подробно и проверяемы по исходному коду проекта.
Риски и подводные камни
Yap работает только на macOS 26 (Tahoe) и новее, владельцы более старых версий системы им воспользоваться не смогут. Для вставки текста в чужие приложения программе нужен доступ к функции «Универсальный доступ» (Accessibility) и управление System Events, из-за чего она распространяется вне Mac App Store и без песочницы, это общий риск для всего класса подобных утилит (текстовые расширители, менеджеры буфера обмена), а не специфика именно Yap. Локальные сборки из исходников подписаны ad-hoc и не имеют устойчивого идентификатора: каждая пересборка воспринимается системой как новое приложение и теряет ранее выданные разрешения, из-за чего вставка текста может незаметно перестать работать. Выбор языка пока жёстко привязан к системной локали, отдельного переключателя языка распознавания нет.
«Мы пользуемся этим весь день в Frigade, в основном чтобы обращаться к ИИ-агентам для написания кода, писать письма и отправлять сообщения в Slack: во всём, что быстрее сказать, чем напечатать.»
— команда Frigade