Приложение для голосового ввода текста в Linux. Живёт в системном трее, записывает голос по горячей клавише, транскрибирует и вставляет текст в активное окно.
- Глобальная горячая клавиша для начала/остановки записи
- Три движка транскрипции на выбор:
- Whisper (faster-whisper) — локально, офлайн, бесплатно
- Gemini (gemini-2.5-flash) — облако, требует API ключ
- Google Speech-to-Text — облако, требует сервисный аккаунт GCP
- Поддержка смешанной речи (русский + английский)
- Два режима вывода: вставка в активное окно или копирование в буфер обмена
- Настройки через контекстное меню трея
- Linux (X11, KDE/GNOME)
- Python 3.10+
- Системные пакеты:
sudo apt install xdotool portaudio19-dev python3-venvgit clone <repo-url>
cd speechToText
./install.shСкрипт автоматически:
- Создаст виртуальное окружение в
~/.local/share/voice2text/ - Установит все Python-зависимости
- Создаст команду
voice2textв~/.local/bin/ - Создаст
.desktopфайл для меню приложений
voice2textЕсли ~/.local/bin не в PATH, добавьте в ~/.bashrc:
export PATH="$HOME/.local/bin:$PATH"Работает из коробки, без дополнительной настройки. При первом запуске скачает модель (~75 МБ для base).
Доступные модели:
| Модель | RAM | Качество |
|---|---|---|
| tiny | ~40 МБ | базовое |
| base | ~75 МБ | хорошее |
| small | ~250 МБ | отличное |
| medium | ~800 МБ | высокое |
| large-v3 | ~3 ГБ | максимальное |
Добавьте в ~/.bashrc:
export GEMINI_API_KEY_TTS="ваш_ключ"- Создайте проект в Google Cloud Console
- Включите Cloud Speech-to-Text API
- Создайте сервисный аккаунт и скачайте JSON-ключ
- Добавьте в
~/.bashrc:
export GOOGLE_APPLICATION_CREDENTIALS="/путь/к/service-account.json"- Запустите
voice2text— в трее появится зелёный кружок - Нажмите горячую клавишу (по умолчанию
Ctrl+Shift+H) — начнётся запись (красный) - Нажмите горячую клавишу ещё раз — запись остановится, начнётся транскрипция (жёлтый)
- Текст будет вставлен в активное окно (или скопирован в буфер обмена)
- Зелёный — готов к записи
- Красный — идёт запись
- Жёлтый — транскрипция
Правый клик по иконке в трее → Настройки:
- Горячая клавиша — комбинация клавиш (формат pynput, например
<ctrl>+<alt>+h) - Режим вывода —
paste(вставка через Ctrl+V) илиclipboard(только буфер обмена) - Язык — основной язык речи (
ru,enи т.д.) - Движок —
whisper,geminiилиgoogle_stt - Whisper модель — размер модели (только для движка whisper)
| Путь | Описание |
|---|---|
~/.local/share/voice2text/ |
Установленное приложение и venv |
~/.local/bin/voice2text |
Скрипт запуска |
~/.config/voice2text/config.json |
Настройки |
~/.config/voice2text/voice2text.log |
Лог-файл |
./uninstall.shКонфиг в ~/.config/voice2text/ сохраняется.
voice2text/
__init__.py
__main__.py # Точка входа
app.py # UI, системный трей, горячие клавиши
config.py # Загрузка/сохранение конфига, логирование
recorder.py # Запись аудио через sounddevice
transcriber.py # Транскрипция (whisper/gemini/google_stt)
install.sh # Установка
uninstall.sh # Удаление
requirements.txt # Python-зависимости