Skip to content

SKipyatkov/lecture_bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎓 Lecture Bot — распознаватель лекций

Telegram-бот, который автоматически преобразует голосовые сообщения и аудиофайлы в текст, используя офлайн-модель Vosk.
Идеально подходит для студентов, преподавателей и всех, кто хочет быстро получить текстовую расшифровку лекций и записей — быстро и без внешних API.


✨ Возможности

  • 🎙 Распознаёт голосовые сообщения Telegram
  • 🎧 Поддерживает аудиофайлы (MP3, WAV, OGG и др.)
  • 🧠 Работает полностью офлайн, интернет нужен только для работы Telegram
  • 🗣 Поддержка русского и английского языка
  • ⚙️ Простая установка и настройка
  • 💾 Минимальные зависимости
  • 🔒 Не передаёт данные на внешние серверы

🧩 Используемые технологии

Компонент Назначение
Python 3.10+ Основной язык разработки
Vosk Локальное распознавание речи
FFmpeg Конвертация аудио в нужный формат
Telegram Bot API (aiogram / telebot) Работа с Telegram
SQLite Хранение истории и пользовательских данных (при необходимости)

⚙️ Установка и запуск

1. Клонирование проекта

git clone https://github.com/SKipyatkov/lecture_bot.git
cd lecture_bot

2. Создание виртуального окружения

python -m venv venv
source venv/bin/activate   # Linux/macOS
# или
venv\Scripts\activate      # Windows

3. Установка зависимостей

pip install -r requirements.txt

4. Загрузка модели Vosk

Скачайте русскую офлайн-модель с официального сайта Vosk
(например: vosk-model-small-ru-0.22)
и поместите её в папку model/:

lecture_bot/
└── model/
    └── vosk-model-small-ru-0.22/

5. Настройка конфигурации

Создайте файл .env или config.yaml и добавьте ваш Telegram токен и путь к модели:

TELEGRAM_TOKEN=123456789:ABCDEF...
VOSK_MODEL_PATH=model/vosk-model-small-ru-0.22

6. Запуск бота

python main.py

После запуска бот будет слушать ваши голосовые сообщения и отправлять обратно текстовую расшифровку.


💬 Команды

Команда Описание
/start Приветственное сообщение
/help Список команд
/settings Настройки
/language Выбор языка для распознования
/batch Команда для пакетной обработки
/voice Команда для озвучивания текста
/about Информация о проекте
/status Проверка статуса модели / загрузки
/admin Включение админ-панели (при наличии админ-пароля)
(по умолчанию) Отправьте голосовое сообщение — бот ответит текстом

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

lecture_bot/
├── bot/                    # Основная папка запуска
    └── core/
        └── __init__.py
        └── cache_manager.py
        └── config.py
        └── database.py
        └── processing_queue.py
    └── processors/
        └── __init__.py
        └── audio_processor.py
        └── plugin_system.py
        └── text_enhancer.py
        └── vosk_recognizer.py
    └── services/
        └── __init__.py
        └── ab_testing.py
        └── bacup_service.py
        └── voice_synthesizer.py
    └── utils/
        └── __init__.py
        └── file_utils.py
        └── system_check.py
    └── web/
        └── __init__.py
        └── admin_api.py (в процессе разработки)
    └── main.py               
├── config.yaml / .env      # Конфигурация
├── models/                 # Модель Vosk
├── database.db             # Данные или база (если используется)
├── requirements.txt
└── README.md

🧪 Тестирование

(Если добавлены тесты)

pytest tests/

🚀 Развёртывание (опционально)

Бота можно запускать:

  • Через systemd на Linux-сервере
  • В контейнере Docker
  • С помощью Supervisor для авто-рестарта
  • Или просто как локальное приложение Python

Пример команды для systemd:

sudo systemctl enable lecture_bot
sudo systemctl start lecture_bot

🤝 Как внести вклад

Буду рад вашим улучшениям и идеям!

  1. Сделайте форк репозитория
  2. Создайте ветку feature/ваша-фича
  3. Внесите изменения и создайте Pull Request
  4. Напишите краткое описание нововведений

Пожалуйста, придерживайтесь PEP8 и понятных сообщений коммитов.


👨‍💻 Автор

SKipyatkov
🔗 GitHub 🔗 Telegram


❤️ Проект создан для упрощения работы с голосовыми заметками и лекциями.
Если бот оказался полезен — поставьте ⭐ на GitHub!

About

Telegram bot for converting voice messages to text using Vosk offline

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages