Telegram-бот, который автоматически преобразует голосовые сообщения и аудиофайлы в текст, используя офлайн-модель Vosk.
Идеально подходит для студентов, преподавателей и всех, кто хочет быстро получить текстовую расшифровку лекций и записей — быстро и без внешних API.
- 🎙 Распознаёт голосовые сообщения Telegram
- 🎧 Поддерживает аудиофайлы (MP3, WAV, OGG и др.)
- 🧠 Работает полностью офлайн, интернет нужен только для работы Telegram
- 🗣 Поддержка русского и английского языка
- ⚙️ Простая установка и настройка
- 💾 Минимальные зависимости
- 🔒 Не передаёт данные на внешние серверы
| Компонент | Назначение |
|---|---|
| Python 3.10+ | Основной язык разработки |
| Vosk | Локальное распознавание речи |
| FFmpeg | Конвертация аудио в нужный формат |
| Telegram Bot API (aiogram / telebot) | Работа с Telegram |
| SQLite | Хранение истории и пользовательских данных (при необходимости) |
git clone https://github.com/SKipyatkov/lecture_bot.git
cd lecture_botpython -m venv venv
source venv/bin/activate # Linux/macOS
# или
venv\Scripts\activate # Windowspip install -r requirements.txtСкачайте русскую офлайн-модель с официального сайта Vosk
(например: vosk-model-small-ru-0.22)
и поместите её в папку model/:
lecture_bot/
└── model/
└── vosk-model-small-ru-0.22/
Создайте файл .env или config.yaml и добавьте ваш Telegram токен и путь к модели:
TELEGRAM_TOKEN=123456789:ABCDEF...
VOSK_MODEL_PATH=model/vosk-model-small-ru-0.22python 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Буду рад вашим улучшениям и идеям!
- Сделайте форк репозитория
- Создайте ветку
feature/ваша-фича - Внесите изменения и создайте Pull Request
- Напишите краткое описание нововведений
Пожалуйста, придерживайтесь PEP8 и понятных сообщений коммитов.
SKipyatkov
🔗 GitHub
🔗 Telegram
❤️ Проект создан для упрощения работы с голосовыми заметками и лекциями.
Если бот оказался полезен — поставьте ⭐ на GitHub!