Модуль позволяет записывать звуковые вопросы с микрофона или компьютера, преобразовывать их в текст с помощью модели распознавания речи Vosk и отправлять текстовые запросы в YandexGPT AI для получения ответов.
Проект поддерживает два интерфейса на выбор:
- Файл запуска:
interface_AI_qt.py
- Современный дизайн с темной темой
- Улучшенная производительность и отзывчивость
- Лучшая поддержка горячих клавиш
- Форматирование кода с подсветкой синтаксиса
- Более компактный и элегантный интерфейс
- Файл запуска:
interface_AI.py
- Проверенная стабильность
- Меньше зависимостей
- Классический внешний вид
- Запись звука с микрофона - запись аудио с подключенного микрофона
- Запись звука с компьютера - запись системного звука через Stereo Mix
- Распознавание речи - преобразование речи в текст с помощью модели Vosk
- Live-транскрипция - отображение распознанного текста в реальном времени по мере обработки
- Текстовый ввод - возможность отправки текстовых запросов напрямую
- Интеграция с YandexGPT - получение ответов от AI-модели
- Выбор модели YandexGPT - 3 различные модели для разных задач
- Выбор помощника - 6 различных типов AI-помощников для разных задач
- Сохранение истории - автоматическое сохранение всех диалогов в файл
- Графический интерфейс - удобный GUI на базе PyQt6 или tkinter
- Горячие клавиши - быстрый доступ к функциям
- Экспорт диалогов - сохранение истории в отдельные файлы
- 🚀 Оптимизированная загрузка модели Vosk - ускоренная инициализация приложения
- 🎨 Форматирование кода - подсветка синтаксиса в ответах AI (PyQt6 версия)
Новая функция Live-транскрипция позволяет видеть распознанный текст в реальном времени:
- Запись аудио - записываете голос как обычно
- Live-отображение - во время распознавания видите промежуточные результаты
- Финальный результат - получаете окончательный текст с подсветкой
- 🎯 Распознавание... - процесс идет, текст голубой
- ✅ Финальный текст - процесс завершен, текст белый
- 🎯 Распознанный текст - готово к использованию
- Мгновенная обратная связь - видите, что система вас понимает
- Контроль качества - можете повторить запись, если распознавание плохое
- Улучшенный UX - нет ощущения "зависшего" интерфейса
- Отладка - легче понять, где возникают проблемы с распознаванием
Приложение поддерживает 3 различные модели YandexGPT:
- Описание: Быстрая и экономичная модель для простых задач
- Максимум токенов: 4000
- Применение: Простые вопросы, краткие ответы, быстрые задачи
- Описание: Базовая модель для большинства задач
- Максимум токенов: 8000
- Применение: Стандартные задачи, развернутые ответы, анализ текста
- Описание: Продвинутая модель с улучшенными возможностями
- Максимум токенов: 8000
- Применение: Сложные задачи, творческие проекты, глубокий анализ
Приложение поддерживает 6 различных типов AI-помощников:
Специализируется на программировании и разработке:
- Знание множества языков программирования (Python, JavaScript, Java, C++, C#, Go, Rust)
- Опыт с фреймворками (Django, Flask, React, Vue, Spring, .NET)
- Понимание архитектур (микросервисы, монолиты, облачные решения)
- Знание баз данных (SQL, NoSQL, Redis, MongoDB)
- DevOps и CI/CD (Docker, Kubernetes, Git, Jenkins)
- Помощь с отладкой, рефакторингом и оптимизацией кода
Образовательный помощник для изучения различных предметов:
- Математика, физика, химия, биология
- История, литература, философия
- Иностранные языки
- Экономика, психология, социология
- Адаптация объяснений под уровень ученика
- Помощь с домашними заданиями и подготовкой к экзаменам
Помощник в написании и редактировании текстов:
- Статьи, эссе, рефераты, дипломные работы
- Художественная литература и поэзия
- Техническая документация
- Маркетинговые материалы
- Проверка грамматики и стиля
- Помощь с сюжетами и персонажами
Помощник в анализе данных и проведении исследований:
- Статистический анализ и визуализация данных
- Машинное обучение и прогнозирование
- Качественные и количественные исследования
- Бизнес-анализ и стратегическое планирование
- Работа с Python, R, SQL, Excel, Tableau
- Критическое мышление и решение сложных проблем
Помощник в творческих проектах и генерации идей:
- Графический дизайн и веб-дизайн
- Иллюстрация, анимация, фотография
- Сценарии для фильмов и игр
- Музыкальные идеи и театральные постановки
- Инновации и изобретения
- Маркетинговые кампании и брендинг
Универсальный AI-помощник для различных задач:
- Обширные знания в различных областях
- Адаптация под собеседника
- Решение повседневных задач
- Помощь в изучении новых тем
- Поддержка и мотивация
-
Python 3.7+ - убедитесь, что у вас установлен Python. Скачайте последнюю версию с официального сайта.
-
Настройка звука Windows - во вкладке "Запись" параметров звука включите "Стерео микшер" для записи системного звука.
Для новых пользователей создан автоматический скрипт инициализации:
python setup_project.py
Этот скрипт:
- Проверяет версию Python
- Создает файл
.env
изenv.example
- Создает необходимые папки
- Проверяет наличие модели Vosk
- Показывает следующие шаги
- Создание виртуального окружения:
python -m venv venv
- Активация виртуального окружения:
# Windows
.\venv\Scripts\activate
# Linux/Mac
source venv/bin/activate
- Установка зависимостей:
pip install -r requirements.txt
- Создание файла .env:
# Скопируйте файл env.example в .env
cp env.example .env
- Заполнение credentials в .env:
# ID папки в Yandex Cloud (обязательно)
YANDEX_FOLDER_ID=your_folder_id_here
# IAM токен для авторизации (один из способов)
YANDEX_IAM_TOKEN=your_iam_token_here
# API ключ для авторизации (альтернатива IAM токену)
YANDEX_API_KEY=your_api_key_here
# Путь к модели Vosk для распознавания речи
VOSK_MODEL_PATH=./vosk-model-ru-0.42
.env
содержит секретные данные и НЕ должен попадать в репозиторий!
-
Скачивание модели: Скачайте русскоязычную модель Vosk с официального сайта
-
Распаковка: Распакуйте архив в корень проекта
-
Проверка пути: Убедитесь, что путь к модели указан правильно в файле
.env
-
Регистрация: Зарегистрируйтесь на Yandex Cloud
-
Получение credentials: Получите
iam_token
илиapi_key
иfolder_id
-
Настройка: Замените значения в файле
.env
python interface_AI_qt.py
Особенности PyQt6 версии:
- Современный темный интерфейс
- Улучшенная производительность
- Форматирование кода с подсветкой синтаксиса
- Более компактный дизайн
- Лучшая поддержка горячих клавиш
python interface_AI.py
Особенности Tkinter версии:
- Классический интерфейс
- Меньше зависимостей
- Проверенная стабильность
После запуска появится окно с интерфейсом:
- Нажмите кнопку "🤖 Сменить помощника" или используйте горячую клавишу Ctrl+P
- Выберите нужную модель YandexGPT из выпадающего списка
- Выберите нужный тип помощника из второго выпадающего списка
- Просмотрите описание возможностей выбранного помощника
- Нажмите "✅ Применить" для смены модели и помощника
Доступные модели:
- YandexGPT Lite - для быстрых и простых задач
- YandexGPT - базовая модель для большинства задач
- YandexGPT Plus - продвинутая модель для сложных задач
- "🎤 Запись с микрофона" - запись с микрофона
- "💻 Запись с компьютера" - запись системного звука
Как использовать:
- Нажмите кнопку для начала записи
- Во время записи кнопка станет красной и изменит текст на "⏹️ Остановить запись"
- Говорите или воспроизводите звук
- Нажмите ту же кнопку повторно для остановки записи
- Дождитесь обработки и получения ответа от AI
Дополнительно:
- Кнопка "❌ Отменить запись" позволяет отменить запись без обработки
- Статус записи отображается над кнопками: "🔴 ЗАПИСЬ..."
- Введите текст в нижнее текстовое поле
- Нажмите "📤 Отправить текст" для отправки запроса
PyQt6 версия:
- Ctrl+R - запись с микрофона
- Ctrl+C - запись с компьютера
- Ctrl+S - отправка текста
- Escape - отмена записи
- Ctrl+E - экспорт диалога
- Ctrl+P - смена помощника
- Ctrl+L - очистка чата
Tkinter версия:
- Ctrl+R - запись с микрофона
- Ctrl+C - запись с компьютера
- Ctrl+S - отправка текста
- Escape - отмена записи
- Ctrl+E - экспорт диалога
- Ctrl+P - смена помощника
- "🗑️ Очистить" - очистка истории диалога
- "💾 Экспорт диалога" - экспорт диалога в файл
- "Сбросить диалог" в окне выбора помощника - полный сброс истории
- Все диалоги автоматически сохраняются в файл
outputs/responses.txt
- Ответы отображаются в основном текстовом поле интерфейса
- Текущая модель и помощник отображаются в заголовке окна и в статусной строке
- В статусной строке показывается: "Помощник: [название]" и "Модель: [название]"
ChatYandexGPT/
├── interface_AI.py # Основной файл запуска Tkinter версии
├── interface_AI_qt.py # 🆕 Основной файл запуска PyQt6 версии
├── yandexchat_bot.py # Класс для работы с YandexGPT и коллекция промптов
├── env.example # Пример файла с переменными окружения
├── .env # Файл с credentials (не в репозитории)
├── setup_project.py # Скрипт автоматической инициализации
├── yandexGPT_console_test.py # Консольная версия для тестирования
├── requirements.txt # Зависимости Python
├── README.md # Документация
├── src/ # Исходный код приложения
│ ├── qt_gui/ # 🆕 Исходный код для PyQt6 интерфейса
│ ├── __init__.py # Инициализация пакета
│ ├── env_loader.py # Загрузка переменных окружения
│ ├── config.py # Конфигурация приложения
│ ├── settings.py # Управление настройками
│ ├── audio_recorder.py # Запись аудио
│ ├── audio_processor.py # Обработка аудио
│ ├── speech_recognizer.py # Распознавание речи (с оптимизацией)
│ ├── conversation_manager.py # Управление диалогами
│ ├── gui.py # Графический интерфейс Tkinter
│ ├── prompt_manager.py # Управление выбором промптов (Tkinter)
│ └── utils.py # Утилиты
├── yandexgptbot_lib/ # Библиотека и файлы сборки
│ ├── __init__.py # Инициализация библиотеки
│ ├── bot.py # Основной класс бота
│ ├── audio.py # Аудио компоненты (с оптимизацией)
│ ├── prompts.py # Коллекция промптов
│ ├── conversation.py # Управление диалогами
│ ├── config.py # Конфигурация
│ ├── settings.py # Настройки
│ ├── cli.py # CLI интерфейс
│ ├── README.md # Документация библиотеки
│ └── package/ # 🆕 Файлы для сборки
│ ├── setup.py # Конфигурация пакета
│ ├── package_builder.py # Скрипт сборки
│ ├── MANIFEST.in # Список файлов для дистрибутива
│ ├── README.md # Документация по сборке
│ └── README_LIBRARY.md # Документация библиотеки
├── examples/ # Примеры использования библиотеки
├── outputs/ # Папка для сохранения результатов
│ └── responses.txt # История диалогов
└── vosk-model-ru-0.42/ # Модель распознавания речи
Приложение построено по модульному принципу с четким разделением ответственности:
- Config - централизованная конфигурация
- Settings - управление настройками пользователя
- AudioRecorder - запись аудио с различных источников
- AudioProcessor - обработка и нормализация аудио
- SpeechRecognizer - распознавание речи с помощью Vosk (оптимизированное)
- ConversationManager - управление историей диалогов
- PromptManager - управление выбором и сменой промптов
- GUI - графический интерфейс пользователя (Tkinter)
- ModernGUI - 🆕 современный графический интерфейс (PyQt6)
- Utils - вспомогательные функции
- EnvLoader - загрузка переменных окружения
Для сборки библиотеки yandexgptbot-lib
используйте файлы в папке yandexgptbot_lib/package/
:
cd yandexgptbot_lib/package
python package_builder.py
Подробная документация по сборке находится в yandexgptbot_lib/package/README.md
.
Если приложение не запускается из-за отсутствия credentials:
- Скопируйте
env.example
в.env
- Заполните необходимые переменные окружения
- Убедитесь, что файл
.env
находится в корне проекта
Если кнопка "Record from Computer" не работает:
- Проверьте, что Stereo Mix включен в настройках звука Windows
- Убедитесь, что устройство называется "Стерео микшер" или "Stereo Mix"
- Проверьте, что модель скачана и распакована в правильную папку
- Убедитесь, что путь в переменной
VOSK_MODEL_PATH
указан корректно - Попробуйте использовать оптимизированную загрузку (см. раздел выше)
- Проверьте правильность credentials в файле
.env
- Убедитесь, что у вас есть доступ к сервису YandexGPT
Если модель Vosk загружается медленно:
- Используйте SSD - скорость диска критически важна
- Предварительная загрузка - используйте
preload_vosk_model()
- Кэширование - используйте
get_global_recognizer()
- Ленивая загрузка - создавайте распознаватель с
preload_model=False
Если PyQt6 версия не запускается:
- Убедитесь, что PyQt6 установлен:
pip install PyQt6
- Проверьте совместимость с вашей версией Python
- Попробуйте Tkinter версию как альтернативу
- Аудио формат: 16-bit PCM, 16kHz, моно
- Распознавание речи: Vosk с русскоязычной моделью (оптимизированная загрузка)
- AI модель: YandexGPT через LangChain
- Интерфейс: PyQt6 (рекомендуется) или tkinter
- Потоки: Многопоточная обработка для записи, UI и загрузки модели
- Логирование: Подробные логи в файл app.log
- Промпты: 6 предустановленных типов помощников с возможностью расширения
- Безопасность: Credentials хранятся в переменных окружения
- Производительность: Оптимизированная загрузка модели Vosk с кэшированием
- Форматирование: Подсветка синтаксиса кода в ответах AI (PyQt6 версия)