cucumberian / whisper_mibot

whisper telegram bot for audio to text conversion

Home Page:https://t.me/whisper_mibot

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Whisper Telegram bot

Описание

Простой телеграм бот, который извлекает из аудио слова.

Работает с бэкэндом faster-whisper-fastapi, который и занимается обработкой аудио. Бэкэнд сделан на основе модели whisper от openai: https://github.com/openai/whisper.

Работа с ботом

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

Типы сообщений

Бот работает с файлами _меньше 20 МБ. Бот работает с сообщениями содержащими:

  • аудио файлы
  • голосовые сообщения
  • видео
  • видео-записки
  • документы

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

Напрямую

  1. Переменные окружения Бот использует переменную окружения WHISPER_MIBOT_TOKEN и WHISPER_BACKEND_URL. Первая задаёт токен для бота, полученный от @BotFather в телеграмме. Вторая определяет адрес сервиса для извлечения текста из речи.

    Задать данные переменные окружения можно любым удобным способом, например, вписав их значения напрямую в конфиг config.py.

  2. Установка зависимостей и запуск Переходим в каталог с программой и устанавливаем зависимости для python 3.9+

    cd src
    pip3 install -r requirements.txt
    python app.py

docker-compose

  1. Создаете файл .env рядом с docker-compose.yml c переменными окружения.
    WHISPER_MIBOT_TOKEN="<bot_token>"
    WHISPER_BACKEND_URL="<http://127.0.0.1:8000/transcribe>"
  2. Запускаете
    docker-compose up -d

Запуск как сервиса в Linux

Создать файл /etc/systemd/system/whisper-mibot.service со следующим содержимым:

[Unit]
Description=Telegram bot whisper-mibot
After=syslog.target
After=network.target

[Service]
Type=simple
User=<username>
Group=<usergroup>
WorkingDirectory=/home/<username>/whisper_mibot
ExecStart=/home/<username>/whisper_mibot/.venv/bin/python3 /home/<username>/whisper_mibot/app.py
RestartSec=30
Restart=always
KillMode=control-group
EnvironmentFile=/home/<username>/whisper_mibot/.env

[Install]
WantedBy=multi-user.target

, в котором вместо <username> и <usergroup> подставить имя пользователя и группу пользователя, от имени которого будет запускаться сервис. Важно указать в параметре ExecStart правильный путь до интерпретатора python и путь до файла программы app.py. Параметр EnvironmentFile указывает путь до файла .env, в котором записана переменная окружения WHISPER_MIBOT_TOKEN и WHISPER_BACKEND_URL. Пример файла .env:

WHISPER_MIBOT_TOKEN="<bot_token>"
WHISPER_BACKEND_URL="<http://127.0.0.1:8000/transcribe>"

Далее включить и запустить сервис командами:

sudo systemctl enable whisper-mibot.service
sudo systemctl start whisper-mibot.service

Логирование

Имеется возможность логирования событий в базу данных MongoDB. При логировании записывается хеш (получаемый из имени и телеграм ид пользователя) и время обращения к боту. Если переменная со строкой подключения с MongoDB будет не определена, то запись событий не происходит. Настройки MongoDB Находятся в файле consfig.py и определяются двумя параметрами:

  • MongoDB_string - строка подключения к монго
  • MongoDB_db_name - имя базы данных

About

whisper telegram bot for audio to text conversion

https://t.me/whisper_mibot


Languages

Language:Python 95.7%Language:Dockerfile 4.3%