ScribeAir — голосовой ввод текстаv1.3.1
Push-to-talk и голосовая активация для Windows. Офлайн-распознавание речи через GigaAM (3.3% WER), Whisper и Vosk. Wake word — скажите «запись» для старта, «стоп» для завершения. Прогрессивная транскрипция в реальном времени, автозамена IT-терминов (питон→Python), вставка текста в любое приложение.
Скриншоты
Документация
ScribeAir
Офлайн голосовой ввод для Windows — push-to-talk и голосовая активация
Говорите — текст появится в позиции курсора. Зажмите горячую клавишу или скажите «запись». Работает в любом приложении.
Скачать | Возможности | Бенчмарки | Установка | English
GigaAM достигает 3.3% WER на русском языке (CPU) — превосходит все модели Whisper, включая RTX 4090 GPU. Полностью офлайн после первой загрузки моделей. Бесплатно и с открытым исходным кодом.
Почему ScribeAir?
- Офлайн — работает без интернета (голосовой ввод Windows, Google, Dragon требуют облако)
- Лучшее качество для русского — 3.3% WER vs ~25% Windows, ~10% Google, ~8% Dragon
- Бесплатно и с открытым кодом — MIT лицензия (Dragon стоит $300+, Google берёт за каждый запрос)
- Настраиваемый — 3 ASR-движка на выбор (GigaAM, Whisper, Vosk)
- Приватный — 100% локально, ваша речь никогда не покидает компьютер
Скачать
Готовые EXE-файлы для Windows доступны в Releases — Python не требуется.
Распакуйте ZIP и запустите ScribeAir.exe. Модели загрузятся автоматически при первом запуске.
Возможности
- Push-to-talk запись с настраиваемыми горячими клавишами (LShift+RShift, Win+Shift и др.)
- Голосовая активация — скажите «запись» / «record» для начала, «стоп» / «stop» для завершения
- 3 ASR-движка: Whisper (GPU/CPU), GigaAM (ONNX, оптимизирован для русского), Vosk (легковесный)
- Прогрессивная транскрипция — промежуточные результаты в реальном времени во время записи
- Замена IT-терминов — автоматическая конвертация питон→Python, гугл→Google (81 термин с морфологией)
- Оверлей с прогрессом транскрипции в реальном времени
- Потоковый пайплайн с Silero VAD для мгновенного определения голоса
- Полностью офлайн после первоначальной загрузки моделей
- Мультиязычность: русский, английский, автоопределение, смешанный RU+EN, перевод RU→EN
- Коррекция текста T5 для исправления ошибок распознавания
- Интерфейс в системном трее с полным меню настроек
- GPU-ускорение через NVIDIA CUDA (автооткат на CPU)
- Два варианта сборки — CUDA (~4.9 ГБ) и CPU-only (~800 МБ)
- Пользовательский словарь для специфичных терминов
- Автозапуск с Windows
Архитектура
Wake Word (OWW) ──→ Запись ──→ Прогрессивный GigaAM (предпросмотр)
или Хоткей │ │
▼ ▼ «стоп/stop»
Silero VAD → ASR-движок → Замена терминов → Буфер обмена
├── GigaAM (русский, CPU)
├── Whisper (мультиязычный, GPU/CPU)
└── Vosk (легковесный, CPU)
Качество распознавания
Результаты на русских аудиокнигах (подробные бенчмарки):
Движок Модель WER Снижение Задержка
───────── ───────────────── ────── ────────── ──────────
GigaAM v3-e2e-rnnt 3.3% 90.0% 0.66с (CPU)
GigaAM v3-rnnt 3.3% 90.0% 0.82с (CPU)
GigaAM v3-e2e-ctc 4.2% 87.2% 1.08с (CPU)
Whisper large-v3-turbo 7.9% 75.7% 0.44с (GPU)
Whisper large-v3 8.8% 72.9% 2.30с (GPU)
Whisper medium 10.7% 67.2% 1.75с (GPU)
Vosk small-ru 13.0% 60.0% 0.75с (CPU)
Whisper base (baseline) 32.6% — 0.42с (CPU)
Главный вывод: GigaAM на CPU (3.3% WER) превосходит Whisper large-v3-turbo на RTX 4090 GPU (7.9% WER) для русского языка.
Установка
Из исходников
Требования: Windows 10/11, Python 3.10+, 8 ГБ RAM, микрофон.
git clone https://github.com/borisovai/scribe-air.git
cd scribe-air
python -m venv venv
venv\Scripts\Activate.ps1
pip install -r requirements.txt
venv\Scripts\python.exe src\main.py
Модели загрузятся автоматически при первом запуске (~240 МБ для GigaAM, ~1.6 ГБ для Whisper).
Рекомендуемые требования (для GPU):
- NVIDIA GPU с 6+ ГБ VRAM
- CUDA 12.x
Использование
- Запустите приложение — иконка микрофона появится в системном трее
- Дождитесь загрузки модели (иконка сменится с синей на серую)
- Начните запись любым способом:
- Горячая клавиша — зажмите LShift + RShift (настраивается), отпустите для завершения
- Голосом — скажите «запись» / «record» для начала, «стоп» / «stop» для завершения
- Говорите в микрофон
- Текст будет вставлен в позицию курсора
Голосовая активация (Wake Word)
Включите «Wake Word» в меню трея для работы без рук — хоткей не нужен, полностью голосовое управление.
Меню трея (правый клик)
- Язык — Автоопределение, Русский, Английский, RU+EN Смешанный, RU→EN Перевод
- Модель — Tiny, Small, Medium, Large v3, Large v3 Turbo
- ASR-движок — Auto, Whisper, GigaAM, Vosk
- Модель GigaAM — v2-ctc, v3-rnnt, v3-e2e-rnnt и др.
- Горячая клавиша — Комбинация для push-to-talk
- Аудиоустройство — Выбор входного микрофона
- Wake Word — Вкл/выкл голосовой активации (скажите «запись»/«record» для начала)
- Замена IT-терминов — Вкл/выкл автоматической конвертации кириллица→латиница
- Коррекция текста (T5) — Вкл/выкл коррекции T5
- Запуск с Windows — Вкл/выкл автозапуска
- Показать/Скрыть консоль — Открыть консоль с логами
Конфигурация
Настройки хранятся в %APPDATA%\ScribeAir\config.json:
{
"language_mode": "auto",
"model": "large-v3-turbo",
"device": "cuda",
"hotkey": "shift+shift",
"asr_backend": "auto",
"gigaam_model": "v3-e2e-rnnt",
"llm_correction_enabled": true,
"custom_vocabulary": ["Kubernetes", "PostgreSQL"]
}
Режимы ASR-движка
-
auto— По умолчанию: GigaAM для русского на CPU, Whisper на GPU (3.3–7.9% WER, 0.4–0.8с) -
whisper— Английский или GPU-ускоренное распознавание (7.9% WER, 0.44с на GPU) -
gigaam— Русский на CPU, лучшее качество (3.3% WER, 0.66с) -
vosk— Минимальная задержка, короткие фразы (13% WER, 0.7с)
Сборка EXE
# Собрать оба варианта
venv\Scripts\python.exe build.py
# Только CPU или CUDA
venv\Scripts\python.exe build.py cpu
venv\Scripts\python.exe build.py cuda
- CUDA (~4.9 ГБ) — Полная GPU-поддержка, включает NVIDIA DLL
- CPU (~800 МБ) — Только CPU, без зависимостей CUDA
AI-модели не включены в сборку — загружаются автоматически при первом запуске и кешируются в %APPDATA%\ScribeAir\models\.
Структура проекта
scribe-air/
├── src/
│ ├── main.py # Точка входа
│ ├── config.py # Управление конфигурацией
│ ├── hotkey.py # Глобальные горячие клавиши
│ ├── recorder.py # Запись аудио (sounddevice)
│ ├── transcriber.py # Транскрипция Whisper
│ ├── gigaam_transcriber.py # Транскрипция GigaAM (ONNX)
│ ├── vosk_transcriber.py # Транскрипция Vosk
│ ├── streaming_pipeline.py # Потоковый VAD + транскрипция
│ ├── wakeword_listener.py # Обнаружение слов-активаторов (openWakeWord)
│ ├── term_replacer.py # Замена IT-терминов (кириллица → латиница)
│ ├── audio_processor.py # Предобработка аудио
│ ├── text_corrector_t5.py # Коррекция текста T5
│ ├── model_downloader.py # Загрузка моделей с фоллбэком
│ ├── inserter.py # Вставка текста через буфер обмена
│ ├── overlay.py # Плавающее окно транскрипции
│ ├── tray.py # Интерфейс системного трея
│ └── autostart.py # Автозапуск Windows
├── wakeword_data/models/ # ONNX-модели для слов-активаторов
├── tests/ # Тесты (pytest)
├── docs/guides/ # Руководства
├── assets/icon.ico # Иконка приложения
├── requirements.txt # Зависимости
├── voice_app.spec # Конфигурация PyInstaller
└── build.py # Скрипт сборки
Решение проблем
-
Модель не загружается — Проверьте интернет-соединение. Первая загрузка ~240 МБ–1.6 ГБ с HuggingFace. Модели кешируются в
%APPDATA%\ScribeAir\models\ - Нет звука — Проверьте микрофон в настройках звука Windows. Выберите устройство в меню трея «Аудиоустройство»
-
GPU не используется — Установите CUDA 12.x, обновите драйверы NVIDIA. Установите
"device": "cuda"в конфиге. Используйте CUDA-сборку - Текст не вставляется — Убедитесь, что курсор в текстовом поле. Попробуйте сначала в Блокноте
-
Отладка — Правый клик по иконке в трее → «Показать консоль». Лог:
%APPDATA%\ScribeAir\scribe_air.log
Тестирование
pip install -r requirements-dev.txt
pytest tests/ -v
Участие в разработке
Мы рады вашим вкладам! См. CONTRIBUTING.md.
Лицензия
MIT License. См. LICENSE.
Благодарности
- GigaAM — ASR-модель для русского языка (Сбер, 700K часов обучения)
- faster-whisper — Оптимизированная реализация Whisper
- onnx-asr — ONNX-инференс для ASR
- Vosk — Легковесное офлайн-распознавание речи
- Silero VAD — Нейросетевое определение голоса
- bond005/ruT5-ASR-large — T5 коррекция русского текста