Нативное local-first приложение для Windows: включите диктовку глобальной горячей клавишей — локальная расшифровка вставится в активное поле ввода.
Последний release · Архитектура · Приватность · Проверка
v0.5.1 · CI · Windows 10/11 x64 · MIT
Устанавливаемый local-first MVP. Полный путь реализован и проверен:
Ctrl+Shift+Space down
→ захват foreground HWND
→ WASAPI-запись в память
→ Ctrl+Shift+Space up
→ локальный GigaAM worker
→ direct native insertion или guarded clipboard paste в исходное окно
Комбинация Ctrl + Shift + K работает в toggle-режиме: первое нажатие начинает запись, второе завершает её. Если клавиатура поддерживает переназначение клавиш, удобную дополнительную кнопку можно настроить на это сочетание в программе её производителя.
Установщик включает self-contained .NET runtime, GigaAM и native ASR runtime: после установки распознавание не требует интернета. Установщик пока не подписан коммерческим сертификатом.
- WPF tray-приложение без Electron и локального web-сервера;
- глобальная комбинация
Ctrl + Shift + Space; - toggle-комбинация
Ctrl + Shift + Kдля записи без удержания клавиш; - компактный overlay
200×64сWS_EX_NOACTIVATE: «Слушаю» с живой линией микрофона и «Распознаю» с progress-анимацией, 85% Acrylic-подложкой и читаемым tint-only fallback; - единый знак Voice Input для executable, системного tray и installer во всех Windows-размерах от 16 до 256 px;
- захват default microphone через WASAPI;
- преобразование в mono float32 PCM 16 kHz полностью в памяти;
- разбиение длинной записи на сегменты около 20 секунд по самым тихим окнам;
- GigaAM-v3 E2E RNNT Q4 через
transcribe.cpp; - отдельный ASR worker: падение native runtime не должно ронять tray-процесс;
- CPU backend по умолчанию — на тестовой машине он оказался быстрее встроенной AMD Vulkan-графики;
- автоматическая загрузка pinned runtime и модели с SHA-256-проверкой;
- защита от параллельных hotkey-сессий;
- защита от запуска второго экземпляра приложения;
Escотменяет активную диктовку и гарантированно отбрасывает поздний результат ASR;- отмена вставки, если foreground window изменилось во время диктовки;
- прямая вставка в native Edit/RichEdit и clipboard fallback для Chromium/WPF-подобных контролов;
- буфер обмена восстанавливается после paste, но только если его не успел изменить пользователь или другое приложение;
- unit-тесты и отдельные Windows E2E harnesses для аудио, ASR и вставки.
- Откройте последний GitHub Release.
- Скачайте
VoiceInput-Setup-0.5.1.exe. - Запустите установщик. Windows SmartScreen может показать предупреждение для неподписанного издателя.
Установщик рассчитан на Windows 10/11 x64, не требует прав администратора и по умолчанию добавляет Voice Input в автозапуск. Модель и runtime уже входят в пакет. Обычный запуск проходит тихо: приложение показывает системное уведомление только при ошибке, требующей внимания. Текущий статус и сочетания клавиш доступны в tray menu.
Требования:
- Windows 10/11 x64;
- .NET 10 SDK;
- интернет при первом запуске.
dotnet run --project src/VoiceInput.App -c ReleaseПервый запуск загрузит примерно 200 MiB:
transcribe.cppCPU/Vulkan runtime 0.1.3;gigaam-v3-e2e-rnnt-Q4_K_M.gguf.
Файлы сохраняются в %LOCALAPPDATA%\VoiceInput. После подготовки модели распознавание работает офлайн.
- Поставьте курсор в обычное поле ввода.
- Удерживайте
Ctrl + Shift + Space. - Говорите.
- Отпустите клавиши.
- Дождитесь локального распознавания и вставки.
Во время записи горизонтальная линия в overlay превращается в движущиеся полосы в такт речи. При тишине индикатор возвращается к ровной линии. На Windows 11 при доступных системных эффектах подложка мягко размывает содержимое за карточкой; Windows 10, High Contrast, отключённая прозрачность или недоступный compositor автоматически включают непрозрачный fallback.
Для записи без удержания клавиш:
- Нажмите
Ctrl + Shift + K, чтобы начать запись. - Говорите, не удерживая кнопку.
- Нажмите
Ctrl + Shift + Kповторно, чтобы завершить запись и вставить текст.
Если клавиатура поддерживает переназначение клавиш, удобную дополнительную кнопку можно настроить на Ctrl + Shift + K в программе её производителя.
Нажмите Esc в любой момент активной диктовки, чтобы отменить её без вставки текста.
Завершение приложения — через пункт «Выход» в tray menu.
dotnet format VoiceInput.sln --verify-no-changes --no-restore
dotnet build VoiceInput.sln -c Release
dotnet test VoiceInput.sln -c Release --no-buildПроверка реального default microphone без сохранения аудио:
dotnet run --project tests/VoiceInput.Audio.E2E -c ReleaseASR E2E harness принимает пути к worker, runtime, модели и float32 PCM fixture. Он прогоняет production workflow record → segment → worker → transcript → insertion sink.
- микрофонный звук хранится только в памяти текущей сессии;
- аудио не сохраняется на диск и не отправляется в сеть;
- модель и native runtime загружаются только при подготовке;
- история расшифровок не ведётся;
- отдельная диагностическая запись включается только через явную переменную
VOICE_INPUT_DIAGNOSTIC_LOGи не содержит аудио или текста расшифровки.
- нет автообновления и code signing;
- используется default recording device — выбора микрофона в UI пока нет;
- нет отдельного UI Automation adapter для нестандартных защищённых контролов;
- elevated-приложения могут блокировать вставку из обычного процесса;
- горячие клавиши пока фиксированы и не переназначаются в интерфейсе приложения.
- Архитектурное видение
- Принципы знака Quiet Pulse
- Исследование локальных ASR-моделей
- Визуальная схема
MIT. Список используемых open-source компонентов: THIRD_PARTY_NOTICES.md.

