Этот Telegram бот использует модель Whisper от OpenAI для преобразования голосовых сообщений и видео-кружочков в текст. Бот поддерживает очередь задач и обрабатывает сообщения параллельно с использованием нескольких рабочих потоков.
- Преобразование голосовых сообщений в текст.
- Поддержка обработки видео-кружочков (видео-сообщений).
- Очередь задач для обработки голосовых сообщений.
- Поддержка использования GPU для обработки с использованием CUDA.
- Возможность сохранять аудио-файлы, если требуется.
- Информирование пользователя о статусе очереди и обработке.
-
Клонируйте репозиторий:
git clone https://github.com/AlexMelanFromRingo/WhisperBot.git cd WhisperBot -
Создайте виртуальное окружение и активируйте его:
python -m venv venv source venv/bin/activate # для Linux/Mac .\venv\Scripts\activate # для Windows
-
Установите зависимости:
pip install -r requirements.txt
-
Создайте файл
.envи настройте переменные окружения:Пример содержимого
.env:TG_BOT_TOKEN=your_telegram_bot_token WHISPER_MODEL=base # Возможные значения: base, small, medium, large, turbo, etc. Подробнее см. в документации OpenAI Whisper WHISPER_DEVICE=cpu # Используйте "cuda" для GPU, "cpu" для использования процессора или "auto" для автоматического выбора WORKER_COUNT=2 # Количество рабочих потоков QUEUE_MAXSIZE=200 # Максимальный размер очереди SAVE_VOICES=True # Устанавливайте False, если не хотите сохранять аудио файлы VOICES_DIR=voices # Директория для хранения голосовых файлов LOG_LEVEL=INFO # Уровень логирования (DEBUG, INFO, WARNING, ERROR, CRITICAL)
-
Запустите бота:
python telegram_whisper_bot.py
/start— Приветственное сообщение с информацией о сервере и возможностях бота./status— Отображает статус очереди и состояние обработки сообщений для пользователя.
- Отправьте боту голосовое сообщение или видео-кружочек (video note).
- Бот начнёт процесс транскрипции с использованием модели Whisper.
- После завершения обработки бот отправит текст обратно в чат.
Если очередь переполнена, бот сообщит об этом и предложит попробовать позже.
bot.py— Основной файл с логикой работы бота.config.py— Конфигурационные настройки для работы с ботом.requirements.txt— Все необходимые библиотеки..env— Файл с переменными окружения.voices/— Директория для хранения голосовых файлов (еслиSAVE_VOICES=True).logs/— Логи работы бота (если логирование активно).
Бот поддерживает логирование для отслеживания ошибок и состояния системы. Уровень логирования можно настроить в файле .env через переменную LOG_LEVEL.
- Уровни логирования:
DEBUG,INFO,WARNING,ERROR,CRITICAL.
- Если очередь обработки переполнена, бот уведомит пользователя о том, что сервер перегружен, и предложит повторить попытку позже.
- Для корректной работы с GPU, необходимо установить соответствующие зависимости для CUDA.
- Если модель Whisper не доступна для вашей системы, бот будет использовать CPU для обработки.
В проекте используются следующие библиотеки:
whisper— Модель для распознавания речи от OpenAI.python-telegram-bot— Библиотека для работы с Telegram API.dotenv— Для загрузки переменных окружения из файла.env.torch— Для работы с моделью Whisper на GPU (если доступно).
Установите их с помощью команды:
pip install -r requirements.txtЭтот проект был разработан Alex Melan и является открытым исходным кодом. Вы можете использовать его по своему усмотрению и модифицировать в соответствии с вашими потребностями.