Мы говорим со скоростью примерно 130–160 слов в минуту, а печатаем — в лучшем случае 60–70. Разница более чем в два раза.

В последние годы работа за компьютером сильно сместилась в сторону текста: мы пишем подробные контекстные промпты для AI-ассистентов в Cursor или Claude, описываем архитектурные решения, ставим задачи и постоянно общаемся в рабочих чатах. Казалось бы, надиктовывать такие объемы голосом логичнее и быстрее.

Но любой разработчик, который пробовал стандартный голосовой ввод, быстро бросает эту затею по двум причинам:

  1. Он не понимает контекст разработки. Обычный STT путает регистры, не знает camelCase, коверкает технические термины и превращает названия библиотек в случайные бытовые слова.
  2. Лишние действия. Большинство сторонних утилит требуют открыть окно, нажать кнопку записи, подождать, нажать «Скопировать», переключиться обратно в редактор и вставить текст. Если для простой операции нужно сделать пять лишних движений мышью, привычка не приживается.

Чтобы решить обе эти проблемы, я написал Nyx Vox. Это легковесная утилита на Rust и Tauri, которой я пользуюсь каждый день.


В этой статье:


Как устроен процесс

Главное требование к инструменту было простым: процесс ввода должен быть незаметным и не требовать мыши.

graph LR
    A["Нажал хоткей"] --> B["Говоришь (руки свободны)"]
    B --> C["VAD (тишина 3–15 сек) ИЛИ повторный клик"]
    C --> D["Текст уже в поле ввода"]

Механика работы:

  1. Вы находитесь в любой программе: в редакторе кода, в терминале, в чате или в браузере.
  2. Нажимаете горячую клавишу — удерживать её не нужно, руки остаются свободными. Вы просто говорите в комфортном темпе. На экране появляется компактный индикатор звука.
  3. Запись останавливается сама через умный VAD (Voice Activity Detection): когда вы договорили фразу, система фиксирует тишину (интервал настраивается от 3 до 15 секунд) и завершает ввод. Либо можно нажать клавишу повторно, если хотите вставить текст немедленно.
  4. Через 300–500 миллисекунд готовый текст вставляется прямо туда, где стоял курсор.

Под капотом цепочка выглядит так:

  • Аудиопоток захватывается через библиотеку cpal с небольшим кольцевым буфером на старте, чтобы не терялись первые слоги.
  • Звук передается в модель Whisper (в облачном режиме через Groq это занимает около полусекунды).
  • Распознанный текст передается в языковую модель для нормализации.
  • Приложение эмулирует системную вставку (Cmd+V на macOS или Ctrl+V на Windows) в то окно, которое было активно перед началом записи.

Редактирование без искажения смысла

Обычные диктовки часто пытаются перефразировать речь или вставить синонимы. Для кода и технических инструкций это недопустимо.

В Nyx Vox языковая модель работает в строгом режиме нормализации:

  • Слова автора не меняются. Модель не сокращает текст, не придумывает продолжений и не заменяет термины.
  • Убирается мусор. Вырезаются паузы, запинки и слова-паразиты («э-э-э», «ну», затянутые гласные).
  • Синтаксис и пунктуация. Расставляются знаки препинания, текст делится на понятные абзацы, а технические названия (PostgreSQL, Docker, TypeScript, GraphQL, REST API) пишутся в правильном регистре.

Вы наговариваете сырую мысль так, как она идет из головы, а в редактор попадает чистый текст без опечаток.


Где это экономит время каждый день

Я держу Nyx Vox запущенным постоянно. Вот три сценария, где он полностью заменил мне ручной набор:

  • Промпты для Cursor и Claude. Чтобы модель выдала нужный результат с первой попытки, ей нужно подробно описать контекст: какие файлы трогать, какие методы вызывать, где проверить ошибки. Печатать такой абзац руками — это полторы-две минуты. Сказать голосом — 15 секунд.
  • Ответы в Telegram и Slack. На вопрос коллеги можно ответить сразу из IDE, не переключая окна и не беря в руки мышь. Нажал клавишу, продиктовал пару предложений — VAD сам завершит запись и вставит ответ.
  • Заметки и документация. Когда во время проектирования в голове складывается структура модуля или схема API, проще всего открыть пустой файл в Obsidian и проговорить логику вслух.

Приватность и локальный режим

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

  1. Скоростной (облачный): Распознавание идет через Groq LPU Whisper. Это дает задержку около 500 мс. В качестве постредактора можно подключить свой ключ от Gemini, DeepSeek, Qwen или GigaChat.
  2. Локальный (оффлайн): Инференс Whisper запускается прямо на вашем компьютере. На Mac используется аппаратное ускорение Metal. Ни один байт звука или текста не уходит в сеть, всё обрабатывается локально.

Все API-ключи шифруются аппаратно (AES-256-GCM) и хранятся исключительно на вашем устройстве.


Версия для Windows и Open Source

Изначально я делал Nyx Vox под свой рабочий MacBook. Но поскольку проект написан на Rust и Tauri 2, системные вызовы удалось изолировать, и недавно в проекте появилась версия для Windows.

Сборка под Windows работает по тем же принципам: перехват глобальных клавиш, определение активного окна через Win32 API и эмуляция вставки через enigo.

Код проекта полностью открыт:


Обратная связь

Для любого опенсорсного инструмента самое ценное — это отзывы тех, кто пробует его в реальной работе.

Если вы часто работаете с кодом, формулируете длинные задачи или просто хотите тратить меньше времени на печать — скачайте сборку под свою систему, попробуйте поработать с ней день-два и напишите в Issues на GitHub. Любые замечания по горячим клавишам, задержкам или распознаванию помогут сделать инструмент удобнее для всех.