АННОТАЦИЯ 2
ВВЕДЕНИЕ 3
1 Анализ существующих решений 5
1.1 Обзор аналогичных телеграм-ботов 5
1.2 Обзор аналогичных инструментов на просторах интернета 8
2 Обзор инструментов для разработки 12
2.1 Telegram API 12
2.2 Golang и библиотека telegram bot api 14
2.3 Spleeter для разделения мелодии 16
2.4 FFmpeg для работы с форматами музыки 17
3 Проектирование телеграм-бота 19
3.1 Взаимодействие с Telegram 19
3.2 Архитектура 22
4 Реализация телеграм-бота 25
4.1 Взаимодействие со spleeter и ffmpeg 25
4.2 Использование Redis для хранения состояний 26
4.3 Оборачивание сервиса в Docker-compose 28
4.4 Использование очередей и RabbitMQ 30
5 Тестирование и проработка сценариев 32
ЗАКЛЮЧЕНИЕ 38
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ И ЛИТЕРАТУРЫ 39
В настоящее время музыкальное творчество и аудио-обработка очень популярны. Этому способствует интернет для обмена информации и наличие приложений для обработки музыки. Одной из актуальных задач в обработке аудио является выделение из музыки вокала или мелодии. Это необходимо для дальнейшей работы во различных сферах. Например: караоке, написание и создание ремиксов.
Телеграм-бот является удобным инструментом для автоматизации небольших задач. Дружественный API Telegram позволяет довольно просто обмениваться файлами и информацией. Телеграм-бот избавляет от необходимости скачивания каких-либо утилит. Так же ключевым преимуществом является доступность с любых устройств, где установлен Telegram.
В данной работе проведена разработка телеграм-бота на языке Golang.
Бот предназначен для удобного функционала разделения музыки. Разделение происходит на вокал и мелодию.
Принцип работы телеграм-бота:
1) пользователь загружает нужный аудиофайл;
2) бот получает аудиофайл с сервера Telegram;
3) запускается обработка музыки;
4) бот отправляет обратно пользователю обработанный аудиофайл.
Цель дипломного проекта - разработать удобного и производительного Telegram-бота для автоматического разделения музыки на вокал и мелодию с использованием нейросети Spleeter.
Задачи:
• провести обзор и анализ существующих инструментов;
• разработать архитектуру телеграм-бота и проработать возможные сценарии;
• реализовать телеграм-бот;
• обернуть бот в Docker-контейнер для удобного развертывания на сервере.
Разработанный бот может быть полезен:
• музыкантам и аранжировщикам для извлечения вокала или инструментальных партий;
• создателям караоке, которым требуется "чистый" минус;
• саунд-дизайнерам и продюсерам, работающим с семплами;
• любителям музыки, желающим поэкспериментировать с треками.
Данная работа демонстрирует практическое применение современных технологий (нейросетей, облачных вычислений, мессенджер-ботов) для решения задач аудио обработки. Результатом проекта станет готовый к использованию Telegram-бот, который упростит процесс разделения музыки для широкого круга пользователей.
Результатом дипломной работы является телеграм-бот, в качестве удобного инструмента для разделения вокала от мелодии и для быстрой конвертации аудио в различные форматы. Интерфейс бота, понятный любому пользователю, а так же легкость в использовании сервиса, без надобности что-либо устанавливать, делает его весьма практичным решением в вопросах быстрой обработки музыки.
• Ссылка на телеграм-бота