Skip to content

Soragy-bot/Voice2Chat

Repository files navigation

🎙️ Voice2Chat

Превратите свой голос в текст одним нажатием кнопки

Python Windows License Offline

Голосовой ассистент для чата — записывает речь, распознаёт через локальную модель Whisper и автоматически отправляет текст в чат или копирует в буфер обмена.

🛡️ 100% приватно — всё работает оффлайн, без передачи данных в облако

✨ Особенности🚀 Быстрый старт⚙️ Настройка📖 Документация🤝 Вклад


📋 Содержание


✨ Основные возможности

🎯 Удобное управление

  • Гибкая настройка записи — кнопка мыши, клавиша или горячая клавиша
  • Автоматическая отправка в активное окно чата
  • Горячие клавиши для быстрого переключения режимов
  • Работа в фоне — сворачивание в системный трей

🤖 Умное распознавание

  • Локальная модель Whisper — работает без интернета
  • Поддержка 99+ языков (русский, английский и др.)
  • Выбор размера модели — от tiny до large
  • Высокая точность распознавания речи

💬 Два режима работы

  • Режим чата — автоматическая вставка и отправка
  • Режим буфера — копирование в clipboard с уведомлением
  • Мгновенное переключение по горячей клавише (F8)

⚡ Производительность

  • Низкая задержка — быстрая обработка аудио
  • Минимальное использование ресурсов
  • Работает с любой раскладкой клавиатуры
  • Не требует переключения языка

🚀 Быстрый старт

📥 Установка для пользователей

Вариант 1: Готовый установщик (рекомендуется) ⭐

  1. Скачайте установщик Voice2Chat-Setup-x.x.x.exe из папки installer/ (после сборки)
  2. Запустите установщик и следуйте инструкциям
  3. Выберите папку установки (по умолчанию C:\Program Files\Voice2Chat)
  4. Опционально создайте ярлык на рабочем столе
  5. Запустите приложение из меню Пуск или с рабочего стола

💡 Примечание: Установщик требует прав администратора для установки в Program Files. После установки приложение можно запускать без прав администратора.

Вариант 2: Из исходников

# Клонируйте репозиторий
git clone https://github.com/Soragy-bot/voice2chat.git
cd voice2chat

# Установите зависимости
pip install -r requirements.txt

# Запустите приложение
python main.py

🎯 Первый запуск

  1. Выберите модель Whisper при первом запуске (tiny/base/small/medium/turbo). По умолчанию в экране выбора выбрана модель medium для лучшего баланса точности и скорости.
  2. Настройте микрофон — выберите устройство ввода
  3. Выберите приложение — укажите, куда отправлять текст
  4. Настройте бинд записи — выберите кнопку мыши, клавишу или горячую клавишу
  5. Настройте горячие клавиши (опционально)
  6. Готово! Нажмите и удерживайте настроенный бинд записи и говорите 🎤

⚙️ Настройка

🖥️ Графический интерфейс (GUI)

Приложение предоставляет удобный графический интерфейс для настройки всех параметров:

Параметр Описание По умолчанию
Микрофон Выбор устройства ввода Автоматически
Запись (record_bind) Кнопка мыши (x1/x2) или клавиша/горячая клавиша x2 (боковая кнопка мыши)
Клавиша открытия чата Клавиша для открытия чата T
Клавиша отправки Клавиша для отправки сообщения Enter
Переключение режима Горячая клавиша F8
Язык Язык распознавания ru (русский)
Модель Whisper Размер модели tiny (выбирается при первом запуске)
Начальный режим Chat или Clipboard chat
Уведомления Системные уведомления Включено

📝 Ручная настройка (settings.json)

Настройки сохраняются в файле settings.json в папке AppData\Local\Voice2Chat\:

{
    "record_bind": "x2",
    "chat_open_bind": "t",
    "send_bind": "enter",
    "mode_toggle_bind": "f8",
    "language": "ru",
    "model_size": "tiny",
    "initial_mode": "chat",
    "enable_notifications": true,
    "input_device": null,
    "chat_app": ""
}

📊 Размеры моделей Whisper

Модель Размер Скорость Точность Рекомендация
tiny ~74 MB ⚡⚡⚡ Очень быстро ⭐⭐ Низкая точность Для быстрого старта
base ~141 MB ⚡⚡ Быстро ⭐⭐⭐ Средняя точность Сбалансированный вариант
small ~463 MB ⚡ Средне ⭐⭐⭐⭐ Хорошая точность Рекомендуется
medium ~1420 MB 🐌 Медленно ⭐⭐⭐⭐⭐ Высокая точность Для высокой точности
turbo ~1500 MB 🐌 Медленно ⭐⭐⭐⭐⭐ Высокая точность Максимальная точность

💡 Совет: Начните с модели tiny или base для быстрой проверки, затем переключитесь на small или medium для лучшего качества. Модель turbo обеспечивает максимальную точность, но требует больше ресурсов.


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

📱 Основной рабочий процесс

┌─────────────────────────────────────────────────────────────┐
│                    Рабочий процесс                          │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  1. Нажмите и удерживайте бинд записи                       │
│     (кнопка мыши X1/X2, клавиша или горячая клавиша)        │
│           ↓                                                 │
│  2. Говорите в микрофон                                     │
│           ↓                                                 │
│  3. Отпустите бинд записи                                   │
│           ↓                                                 │
│  4. Ожидание распознавания речи...                          │
│           ↓                                                 │
│  5. Режим Chat:     │  Режим Clipboard:                     │
│     • Вставка текста│  • Копирование в буфер                │
│     • Нажатие Enter │  • Системное уведомление              │
│                                                             │
└─────────────────────────────────────────────────────────────┘

⌨️ Управление и горячие клавиши

Действие По умолчанию Настройка Тип
Запись Боковая кнопка мыши (X2) Настраивается в GUI Кнопка мыши / Клавиша / Горячая клавиша
Открыть чат T Настраивается в GUI Клавиша
Отправить Enter Настраивается в GUI Клавиша
Переключить режим F8 Настраивается в GUI Горячая клавиша

💡 Важно: Запись можно настроить на кнопку мыши (X1, X2, left, right, middle), обычную клавишу или горячую клавишу (комбинацию). Это позволяет выбрать наиболее удобный способ управления в зависимости от ваших предпочтений.

🎯 Режимы работы

💬 Режим Chat

  1. Нажмите и удерживайте бинд записи (настроенный в параметрах)
  2. Говорите в микрофон
  3. Отпустите бинд записи
  4. Текст автоматически вставится в активное окно и отправится

📋 Режим Clipboard

  1. Нажмите и удерживайте бинд записи (настроенный в параметрах)
  2. Говорите в микрофон
  3. Отпустите бинд записи
  4. Текст скопируется в буфер обмена
  5. Появится системное уведомление

🔄 Переключение режимов

Нажмите F8 (или настроенную клавишу) для мгновенного переключения между режимами Chat и Clipboard.


🛠️ Установка

📋 Требования

  • ОС: Windows 10 или новее
  • Python: 3.8 или новее (для установки из исходников)
  • Микрофон: Любое устройство ввода звука
  • Память: ~500 MB свободного места (для моделей)

📦 Зависимости

Все зависимости автоматически устанавливаются при установке:

faster-whisper    # Распознавание речи (Whisper)
sounddevice       # Запись аудио
pyperclip         # Работа с буфером обмена
pynput            # Обработка ввода (мышь/клавиатура)
numpy             # Математические операции
winotify          # Системные уведомления Windows
pystray           # Иконка в системном трее
Pillow            # Обработка изображений

🔨 Сборка для разработчиков

Для сборки исполняемого файла exe см. подробную инструкцию в BUILD.md

Быстрый старт:

# 1. Установите зависимости приложения
pip install -r requirements.txt

# 2. Установите зависимости для сборки
pip install -r requirements-build.txt

# 3. Соберите исполняемый файл
python build.py

Или используйте batch файл (Windows):

build.bat

Результат сборки будет в папке release/Voice2Chat/ (режим onedir - папка с exe файлом и зависимостями).

Для создания установщика:

# Автоматическое создание установщика (требуется Inno Setup)
python build.py --installer

# Или используйте batch файл
build_installer.bat

Установщик будет создан в папке installer/. Подробные инструкции см. в BUILD.md.


📖 Документация

📁 Структура проекта

Voice2Chat/
├── 📄 main.py                 # Точка входа приложения
├── 📄 settings.json           # Файл настроек (создается автоматически в AppData\Local\Voice2Chat\)
├── 📄 requirements.txt        # Зависимости Python
├── 📄 requirements-build.txt  # Зависимости для сборки
├── 📄 BUILD.md                # Инструкция по сборке
├── 📄 Voice2Chat.spec         # Конфигурация PyInstaller
├── 📄 setup.iss               # Конфигурация Inno Setup для установщика
├── 📄 build.py                # Скрипт сборки приложения
├── 📄 build.bat               # Batch файл для сборки (Windows)
├── 📄 build_installer.bat     # Batch файл для создания установщика
│
├── 📁 core/                   # Основная логика
│   ├── audio.py              # Управление записью аудио
│   ├── transcription.py      # Распознавание речи (Whisper)
│   ├── text_sender.py        # Отправка текста в чат/буфер
│   ├── input_listener.py     # Обработка ввода (мышь/клавиатура)
│   └── mode_manager.py       # Управление режимами работы
│
├── 📁 ui/                     # Пользовательский интерфейс
│   ├── gui.py                # Главный класс GUI
│   ├── view/                 # Представления (MVP)
│   ├── presenter/            # Презентеры (MVP)
│   ├── services/             # Сервисы
│   └── components/           # UI компоненты
│
├── 📁 models/                 # Модели данных
│   ├── app_model.py
│   ├── device_model.py
│   └── settings_model.py
│
├── 📁 utils/                  # Утилиты
│   ├── helpers.py            # Вспомогательные функции
│   ├── keyboard_windows.py   # Работа с клавиатурой (Windows API)
│   ├── settings.py           # Работа с настройками
│   ├── logger.py             # Логирование
│   ├── icon_utils.py         # Работа с иконками
│   ├── app_paths.py          # Определение путей приложения
│   ├── process_utils.py      # Утилиты для работы с процессами
│   └── window_manager.py     # Управление окнами
│
└── 📁 assets/                 # Ресурсы
    ├── app_icon.ico          # Иконка приложения
    └── silero_vad_v6.onnx    # Модель VAD для фильтрации тишины

🐛 Отладка

Для запуска приложения в режиме отладки:

python main.py --debug

или

python main.py -d

Логи сохраняются в папке AppData\Local\Voice2Chat\logs\app.log.

❓ Часто задаваемые вопросы

Как настроить бинд записи?

Откройте GUI приложения, перейдите во вкладку "Настройки" и настройте параметр "Запись (record_bind)". Вы можете выбрать:

  • Кнопку мыши: X1, X2, left, right, middle
  • Клавишу: любую клавишу (например, Space, F1, и т.д.)
  • Горячую клавишу: комбинацию клавиш (например, Ctrl+Shift+R)

Запись будет активироваться при удержании выбранного бинда.

Модель не скачивается. Что делать?

Убедитесь, что у вас есть подключение к интернету. Модели скачиваются при первом запуске и сохраняются в папке AppData\Local\Voice2Chat\whisper_models\. Если проблема persists, проверьте логи в папке AppData\Local\Voice2Chat\logs\.

Как изменить язык распознавания?

В GUI приложения перейдите во вкладку "Настройки" и выберите нужный язык из списка. Поддерживается 99+ языков.

Приложение не отправляет текст в игру. Почему?

Убедитесь, что:

  1. Выбран правильный режим (Chat)
  2. Указано правильное приложение в настройках
  3. Игра активна (окно в фокусе) при отправке
  4. Настроены правильные клавиши для открытия чата и отправки
Как полностью удалить приложение?
  1. Удалите приложение через "Программы и компоненты" (если использовали установщик)
  2. Удалите папку с данными пользователя: %LOCALAPPDATA%\Voice2Chat\
    • Эта папка содержит настройки, логи и модели Whisper
  3. (Опционально) Если приложение было установлено портативно, удалите папку с exe файлом

🔒 Приватность и безопасность

🛡️ Безопасность данных

  • 100% оффлайн — все данные обрабатываются локально
  • Нет отправки данных — аудио и текст никогда не покидают ваш компьютер
  • Нет регистрации — не требуется создание аккаунта
  • Нет телеметрии — приложение не собирает статистику использования
  • Открытый исходный код — вы можете проверить весь код

🔐 Что хранится локально

Все данные пользователя сохраняются в папке AppData\Local\Voice2Chat\:

  • Настройки приложения (settings.json)
  • Логи работы (logs/app.log)
  • Модели Whisper (whisper_models/)
  • Временные файлы аудио (удаляются после обработки)

💡 Примечание: Данные сохраняются в папке пользователя, а не в папке установки приложения. Это обеспечивает правильные права доступа без необходимости запуска от имени администратора.

🔒 Гарантия приватности: Все данные остаются на вашем компьютере. Мы не имеем доступа к вашим записям, текстам или настройкам.


🤝 Вклад в проект

Мы приветствуем вклад в развитие проекта! Вот как вы можете помочь:

🐛 Сообщить об ошибке

Если вы нашли ошибку, пожалуйста:

  1. Проверьте, не была ли она уже сообщена в Issues
  2. Создайте новое Issue с подробным описанием проблемы
  3. Приложите логи из папки logs/ (если возможно)

💡 Предложить улучшение

  1. Создайте Issue с описанием вашей идеи
  2. Обсудите предложение с сообществом
  3. Дождитесь обратной связи от разработчиков

🔧 Внести код

  1. Fork репозитория
  2. Создайте ветку для вашей функции (git checkout -b feature/AmazingFeature)
  3. Закоммитьте изменения (git commit -m 'Add some AmazingFeature')
  4. Запушьте в ветку (git push origin feature/AmazingFeature)
  5. Откройте Pull Request

📝 Улучшить документацию

Помогите улучшить документацию:

  • Исправьте опечатки
  • Добавьте примеры использования
  • Переведите документацию на другие языки
  • Добавьте скриншоты

📝 Лицензия

Этот проект распространяется под лицензией MIT. См. файл LICENSE.md для подробностей.


🙏 Благодарности

  • OpenAI Whisper — за модель распознавания речи
  • faster-whisper — за быструю реализацию Whisper
  • Всем контрибьюторам проекта

⭐ Если проект был полезен, поставьте звезду!

⬆ Наверх

Сделано с ❤️ для сообщества

About

Voice2Chat — это лёгкое и удобное приложение для распознавания речи в реальном времени с помощью модели Whisper и автоматической отправки текста в чат или сохранения его в буфер обмена.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors