Telegram-бот для распознавания текста из изображений и PDF-файлов с поддержкой AI-обработки и преобразования в аудио.
- OCR-распознавание — извлечение текста из изображений (JPG, PNG) и PDF-файлов
- Поддержка языков — русский и английский
- AI-обработка текста — интеграция с GPT для:
- Краткого пересказа
- Перевода на английский
- Объяснения смысла текста
- Структурирования по смыслу
- Text-to-Speech — преобразование текста в аудио (MP3) через Google TTS
- Умная предобработка — автоматическое улучшение качества изображений для лучшего распознавания
- Хранение истории — SQLite база для управления загруженными файлами
git clone https://github.com/maxim_vdonsk/text-recognition-bot.git
cd text-recognition-botpip install -r requirements.txtСоздайте файл .env в корне проекта:
TELEGRAM_BOT_TOKEN=ваш_токен_ботаКак получить токен: Создайте бота через @BotFather в Telegram и получите API-токен.
Ubuntu/Debian:
sudo apt update && sudo apt install tesseract-ocrmacOS:
brew install tesseractWindows:
Скачайте установщик с официального сайта или используйте Chocolatey:
choco install tesseractpython main.py- Запустите бота командой
/start - Отправьте изображение или PDF-файл (макс. 50 МБ)
- Выберите действие из меню:
| Кнопка | Описание |
|---|---|
| Распознать | Базовое распознавание текста |
| Распознать как фотографию | Улучшенное распознавание для фото с текстом |
| Распознать с помощью ChatGPT | AI-обработка текста |
После распознавания через GPT доступны дополнительные опции:
- Краткий пересказ — сжатое изложение содержания
- Перевод на английский — перевод распознанного текста
- Объясни текст — подробное объяснение смысла
- Собрать по смыслу — структурирование текста
Любой текст можно преобразовать в речь через кнопку Перевести в аудио.
text-recognition-bot/
├── main.py # Основной код бота
├── requirements.txt # Python-зависимости
├── .env # Переменные окружения (токен)
├── files/ # Загруженные файлы и аудио (создаётся автоматически)
├── files.db # SQLite база данных (создаётся автоматически)
└── README.md # Документация
| Библиотека | Назначение |
|---|---|
python-telegram-bot |
Telegram Bot API |
pytesseract |
Обёртка для Tesseract OCR |
PyMuPDF |
Работа с PDF-файлами |
opencv-python |
Предобработка изображений |
gTTS |
Text-to-Speech |
g4f |
Бесплатный доступ к GPT |
python-dotenv |
Управление переменными окружения |
- Максимальный размер фото: 10 МБ
- Максимальный размер документа: 50 МБ
- Поддерживаемые форматы: JPG, PNG, PDF
В функции recognize_text_from_file измените параметр lang:
pytesseract.image_to_string(processed, lang="rus+eng") # русский + английскийВ функции handle_recognition можно изменить модель GPT:
msg = await g4f_client.chat.completions.create(
model="gpt-4", # доступные: gpt-3.5-turbo, gpt-4, и др.
...
)MAX_PHOTO_SIZE = 10 * 1024 * 1024 # 10 МБ
MAX_DOCUMENT_SIZE = 50 * 1024 * 1024 # 50 МБ- Отправьте скриншот
- Нажмите Распознать как фотографию
- Получите текст + опцию сохранения в аудио
- Отправьте PDF-файл
- Нажмите Распознать с помощью ChatGPT
- Выберите Краткий пересказ для саммари
| Проблема | Решение |
|---|---|
Tesseract is not installed |
Установите Tesseract OCR (см. шаг 4) |
No module named 'fitz' |
pip install PyMuPDF |
| Бот не отвечает | Проверьте токен в .env и интернет-соединение |
| Плохое качество распознавания | Используйте Распознать как фотографию |
MIT License — свободное использование с указанием автора.
Pull Request'ы приветствуются! Для серьёзных изменений сначала создайте Issue.
- Автор: maxim_vdonsk
- Issues: GitHub Issues