Реализация контейнеризованного веб-приложения. (Ну почти)
Решил использовать Telegram из-за практической пользы: удобно записывать голосовые сообщения, видео сообщения, пересылать их и т.д. Также, всего скорее, MVP будет реализовано именно в формате бота, поэтому это решение - часть подготовки к презентации. Бота развернул на Yandex.Cloud. Ссылка: https://t.me/speech_cleaner_bot Работает хуже, чем я ожидал :(
Кодовая база для запуска бота в телеграм, с функцией обработки аудио и видео файлов с использованием алгоритмов машинного обучения. Проект состоит из следующих файлов:
- config.py - содержит все глобальные переменные, необходимые для извлечения Features и восстановления аудио после обработки алгоритмом.
- features_extractor.py - класс для извлеченя Features из файла
- audio_restorer.py - конвертация обработанного н.с. файла в исходный формат.
- main.py - логика самого бота.
- speech_model.h5 - CRNN модель. Примечание: подробное описание и ход экспериментов можно просмотреть тут и тут.
- Dockerfile - конфигурация докер контейнера
Делал на Линух, описано под эту ось. Доработаю под виндовс если есть необходимость.
- Прежде всего нужно зарегать бота. Для этого пишем боту @BotFather команду /newbot, после этого даем боту имя и тэг. После этих действий бот отправит нам токен, который никому давать нельзя.
- Скачиваем проект и открываем в любом удобном для нас редакторе.
- В файлике speech_bot.py вставляем токен.
bot = telebot.TeleBot('YourToken')
- Если есть желание, можно создать venv и запустить бота без докера. Инструкция по работе с venv. Не забудьте установить необходимые библиотеки из файла requirements.txt + tensorflow (т.к. образ для контейнера идет с tensorflow, нет нужды перечислять его в общем списке).
- Устанавливаем docker desktop, запускаем его.
- В терминале (убедитесь, что открыта директория проекта), прописываем следующую команду:
docker build -t your_project_name:v01 .
- Ждем создания контейнера - это может занять некоторое время.
- По завершению, вбиваем следующую команду:
docker run -it --rm your_project_name:v01
- Проверяем, работает ли бот.
Когда вносите собственные правки в проект, не забывайте сбрасывать диалог очисткой сообщений, или /start командой.