https://github.com/cucumberian/whisper_mibot
whisper telegram bot for audio to text conversion
https://github.com/cucumberian/whisper_mibot
aiogram python stt telegram-bot voice-recognition whisper-ai
Last synced: 8 months ago
JSON representation
whisper telegram bot for audio to text conversion
- Host: GitHub
- URL: https://github.com/cucumberian/whisper_mibot
- Owner: cucumberian
- Created: 2023-08-27T13:01:23.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2024-08-04T20:14:06.000Z (about 1 year ago)
- Last Synced: 2024-12-25T05:31:29.178Z (10 months ago)
- Topics: aiogram, python, stt, telegram-bot, voice-recognition, whisper-ai
- Language: Python
- Homepage: https://t.me/whisper_mibot
- Size: 25.4 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Whisper Telegram bot
## Описание
Простой телеграм бот, который извлекает из аудио слова.Работает с бэкэндом [faster-whisper-fastapi](https://github.com/cucumberian/faster-whisper-fastapi/tree/main), который и занимается обработкой аудио.
Бэкэнд сделан на основе модели whisper от openai: https://github.com/openai/whisper.## Работа с ботом
Перетянуть или переслать боту аудио сообщение или аудио файл.
После его обработки бот в ответ отправит переведенный текст.## Типы сообщений
Бот работает с файлами ___меньше 20 МБ__.
Бот работает с сообщениями содержащими:
- аудио файлы
- голосовые сообщения
- видео
- видео-записки
- документы## Установка и запуск
### Напрямую
1. __Переменные окружения__
Бот использует переменную окружения `WHISPER_MIBOT_TOKEN` и `WHISPER_BACKEND_URL`.
Первая задаёт токен для бота, полученный от `@BotFather` в телеграмме.
Вторая определяет адрес сервиса для извлечения текста из речи.Задать данные переменные окружения можно _любым удобным способом_,
например, вписав их значения напрямую в конфиг `config.py`.2. __Установка зависимостей и запуск__
Переходим в каталог с программой и устанавливаем зависимости для python 3.9+
```shell
cd src
pip3 install -r requirements.txt
python app.py
```
### docker-compose1. Создаете файл `.env` рядом с `docker-compose.yml` c переменными окружения.
```shell
WHISPER_MIBOT_TOKEN=""
WHISPER_BACKEND_URL=""
```
2. Запускаете
```shell
docker-compose up -d
```### Запуск как сервиса в Linux
Создать файл `/etc/systemd/system/whisper-mibot.service` со следующим содержимым:
```conf
[Unit]
Description=Telegram bot whisper-mibot
After=syslog.target
After=network.target[Service]
Type=simple
User=
Group=
WorkingDirectory=/home//whisper_mibot
ExecStart=/home//whisper_mibot/.venv/bin/python3 /home//whisper_mibot/app.py
RestartSec=30
Restart=always
KillMode=control-group
EnvironmentFile=/home//whisper_mibot/.env[Install]
WantedBy=multi-user.target
```
, в котором вместо `` и `` подставить имя пользователя и группу пользователя, от имени которого будет запускаться сервис.
Важно указать в параметре `ExecStart` правильный путь до интерпретатора python и путь до файла программы `app.py`.
Параметр `EnvironmentFile` указывает путь до файла `.env`, в котором записана переменная окружения `WHISPER_MIBOT_TOKEN` и `WHISPER_BACKEND_URL`.
Пример файла `.env`:
```env
WHISPER_MIBOT_TOKEN=""
WHISPER_BACKEND_URL=""
```Далее включить и запустить сервис командами:
```shell
sudo systemctl enable whisper-mibot.service
sudo systemctl start whisper-mibot.service
```## Логирование
Имеется возможность логирования событий в базу данных MongoDB.
При логировании записывается __хеш__ (_получаемый из имени и телеграм ид пользователя_) и __время обращения__ к боту. Если переменная со строкой подключения с MongoDB будет не определена, то запись событий не происходит.
Настройки MongoDB Находятся в файле `consfig.py` и определяются двумя параметрами:
- `MongoDB_string` - строка подключения к монго
- `MongoDB_db_name` - имя базы данных