Skip to content

minlebay/speechToText

Repository files navigation

Voice2Text

Приложение для голосового ввода текста в 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-venv

Установка

git 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"

Настройка движков

Whisper (по умолчанию)

Работает из коробки, без дополнительной настройки. При первом запуске скачает модель (~75 МБ для base).

Доступные модели:

Модель RAM Качество
tiny ~40 МБ базовое
base ~75 МБ хорошее
small ~250 МБ отличное
medium ~800 МБ высокое
large-v3 ~3 ГБ максимальное

Gemini

Добавьте в ~/.bashrc:

export GEMINI_API_KEY_TTS="ваш_ключ"

Google Speech-to-Text

  1. Создайте проект в Google Cloud Console
  2. Включите Cloud Speech-to-Text API
  3. Создайте сервисный аккаунт и скачайте JSON-ключ
  4. Добавьте в ~/.bashrc:
export GOOGLE_APPLICATION_CREDENTIALS="/путь/к/service-account.json"

Использование

  1. Запустите voice2text — в трее появится зелёный кружок
  2. Нажмите горячую клавишу (по умолчанию Ctrl+Shift+H) — начнётся запись (красный)
  3. Нажмите горячую клавишу ещё раз — запись остановится, начнётся транскрипция (жёлтый)
  4. Текст будет вставлен в активное окно (или скопирован в буфер обмена)

Состояния индикатора

  • Зелёный — готов к записи
  • Красный — идёт запись
  • Жёлтый — транскрипция

Настройки

Правый клик по иконке в трее → Настройки:

  • Горячая клавиша — комбинация клавиш (формат 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-зависимости

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors