Skip to content

maxim-vdonsk/Text-Recognition-Bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

Text Recognition Bot

Telegram-бот для распознавания текста из изображений и PDF-файлов с поддержкой AI-обработки и преобразования в аудио.

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

  • OCR-распознавание — извлечение текста из изображений (JPG, PNG) и PDF-файлов
  • Поддержка языков — русский и английский
  • AI-обработка текста — интеграция с GPT для:
    • Краткого пересказа
    • Перевода на английский
    • Объяснения смысла текста
    • Структурирования по смыслу
  • Text-to-Speech — преобразование текста в аудио (MP3) через Google TTS
  • Умная предобработка — автоматическое улучшение качества изображений для лучшего распознавания
  • Хранение истории — SQLite база для управления загруженными файлами

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

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

git clone https://github.com/maxim_vdonsk/text-recognition-bot.git
cd text-recognition-bot

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

pip install -r requirements.txt

3. Настройка переменных окружения

Создайте файл .env в корне проекта:

TELEGRAM_BOT_TOKEN=ваш_токен_бота

Как получить токен: Создайте бота через @BotFather в Telegram и получите API-токен.

4. Установка Tesseract OCR

Ubuntu/Debian:

sudo apt update && sudo apt install tesseract-ocr

macOS:

brew install tesseract

Windows:
Скачайте установщик с официального сайта или используйте Chocolatey:

choco install tesseract

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

python main.py

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

  1. Запустите бота командой /start
  2. Отправьте изображение или PDF-файл (макс. 50 МБ)
  3. Выберите действие из меню:
Кнопка Описание
Распознать Базовое распознавание текста
Распознать как фотографию Улучшенное распознавание для фото с текстом
Распознать с помощью ChatGPT AI-обработка текста

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")  # русский + английский

Настройка AI-моделей

В функции 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 МБ

📝 Примеры использования

Распознавание скриншота документа

  1. Отправьте скриншот
  2. Нажмите Распознать как фотографию
  3. Получите текст + опцию сохранения в аудио

Обработка PDF-документа

  1. Отправьте PDF-файл
  2. Нажмите Распознать с помощью ChatGPT
  3. Выберите Краткий пересказ для саммари

🐛 Решение проблем

Проблема Решение
Tesseract is not installed Установите Tesseract OCR (см. шаг 4)
No module named 'fitz' pip install PyMuPDF
Бот не отвечает Проверьте токен в .env и интернет-соединение
Плохое качество распознавания Используйте Распознать как фотографию

📄 Лицензия

MIT License — свободное использование с указанием автора.

🤝 Вклад

Pull Request'ы приветствуются! Для серьёзных изменений сначала создайте Issue.

📬 Контакты

About

Telegram-бот для OCR-распознавания текста из изображений и PDF. AI-обработка и конвертация в аудио.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages