Skip to main content

Music effects library with 3 built-in effects + developer tools

Project description

🎵 Goh Music Beta v0.2

Version Python License

Библиотека для обработки музыки с встроенными эффектами и инструментами для разработчиков

УстановкаБыстрый стартЭффектыДокументацияПримеры


✨ Возможности

🎸 🔒 📦 🎧 🛠️
3 эффекта Лимит Интеграция MP3 FFmpeg Dev Tools
Встроенные Только 3 В ботов Поддержка Включен 3 функции

📥 Установка

# Быстрая установка через Git
pip install git+https://github.com/devdox-del/Goh-Music.git

Или вручную:

git clone https://github.com/devdox-del/Goh-Music.git
cd Goh-Music
pip install -r requirements.txt
pip install -e .

💡 FFmpeg устанавливается автоматически — не нужно ничего дополнительно настраивать!


🚀 Быстрый старт

from goh_music import MusicProcessor

processor = MusicProcessor()

# Обрабатываем музыку
processor.process_audio(
    input_path="music.mp3",
    output_path="music_reverb.mp3",
    effect_name="reverb"
)

🎛️ Эффекты

Иконка Эффект Описание Код
🌊 Reverb Реверберация (эхо эффект) "reverb"
Speed Up Ускорение (nightcore стиль) "speed_up"
🔊 Bass Boost Усиление басов "bass_boost"
# Показать все эффекты
effects = processor.get_available_effects()
for key, desc in effects.items():
    print(f"🎵 {key}{desc}")

🛠️ Инструменты для разработчиков

1️⃣ get_audio_info() — Информация об аудио

╔═══════════════════════════════════════════════════════════╗ ║ 📊 Получает подробные данные о файле: длительность, ║ ║ каналы, битрейт, размер и многое другое ║ ╚═══════════════════════════════════════════════════════════╝

Пример использования:

from goh_music import MusicProcessor

processor = MusicProcessor()

# Получаем информацию о файле
info = processor.get_audio_info("song.mp3")

if info:
    print(f"""
╔════════════════════════════════════════╗
║        📊 ИНФОРМАЦИЯ О ФАЙЛЕ           ║
╠════════════════════════════════════════╣
║ ⏱  Длительность: {info['duration_formatted']:>20}
║ 🔊 Каналов:     {info['channels']:>20}
║ 📈 Битрейт:     {info['bitrate']:>20} kbps║
║ 💾 Размер:      {info['file_size_bytes'] / 1024:>18.2f} KB ║
╚════════════════════════════════════════╝
    """)

Возвращаемые данные:

{
    "duration_seconds": 180.5,      # Длительность в секундах
    "duration_formatted": "03:00",  # Формат MM:SS
    "channels": 2,                   # Количество каналов
    "sample_rate": 44100,            # Частота дискретизации
    "frame_rate": 44100,             # Частота кадров
    "bitrate": 128,                  # Битрейт в kbps
    "file_size_bytes": 2890000       # Размер в байтах
}

2️⃣ batch_process() — Пакетная обработка

╔═══════════════════════════════════════════════════════════╗ ║ 📦 Обрабатывает несколько файлов одним вызовом ║ ║ с красивым прогрессом и статистикой ║ ╚═══════════════════════════════════════════════════════════╝

Пример использования:

from goh_music import MusicProcessor

processor = MusicProcessor()

# Список файлов для обработки
files = ["song1.mp3", "song2.mp3", "song3.mp3"]

# Обрабатываем все файлы с эффектом
results = processor.batch_process(
    input_files=files,
    output_dir="output/",
    effect_name="reverb",
    prefix="my_"
)

# Статистика
print(f"\n✅ Успешно: {sum(results.values())}/{len(results)}")

Вывод в консоль:

╔═══════════════════════════════════════════════════════════╗
║     ПАКЕТНАЯ ОБРАБОТКА: 3 файлов                          ║
╠═══════════════════════════════════════════════════════════╣
║  Эффект: reverb                                           ║
║  Директория: output/                                      ║
╚═══════════════════════════════════════════════════════════╝

[1/3] Обработка: song1.mp3...
  ✅ song1.mp3 → my_song1_reverb.mp3

[2/3] Обработка: song2.mp3...
  ✅ song2.mp3 → my_song2_reverb.mp3

[3/3] Обработка: song3.mp3...
  ❌ song3.mp3

╔═══════════════════════════════════════════════════════════╗
║  ГОТОВО: 2/3 файлов успешно обработано                    ║
╚═══════════════════════════════════════════════════════════╝

3️⃣ preview_effect() — Быстрое превью

╔═══════════════════════════════════════════════════════════╗ ║ ⚡ Создаёт короткий фрагмент (10 сек) с эффектом ║ ║ для быстрого прослушивания перед обработкой ║ ╚═══════════════════════════════════════════════════════════╝

Пример использования:

from goh_music import MusicProcessor

processor = MusicProcessor()

# Создаём превью (15 секунд)
preview_file = processor.preview_effect(
    input_path="long_song.mp3",
    effect_name="reverb",
    duration=15
)

if preview_file:
    print(f"🎧 Превью готово: {preview_file}")

Идеально для:

🤖 📱 ⏱️ 💾
Ботов Мессенджеров Экономии Выбора
Telegram Discord Времени Эффекта

🤖 Пример для Telegram бота

from aiogram import Bot, Dispatcher, types
from goh_music import MusicProcessor

bot = Bot(token="YOUR_TOKEN")
dp = Dispatcher(bot)
processor = MusicProcessor()

@dp.message_handler(content_types=['audio', 'document'])
async def handle_music(message: types.Message):
    # Скачиваем файл
    file = await message.audio.get_file()
    file_path = f"downloads/{file.file_id}.mp3"
    await file.download(file_path)
    
    # Получаем информацию
    info = processor.get_audio_info(file_path)
    
    # Показываем пользователю
    await message.reply(
        f"🎵 **Трек загружен!**\n\n"
        f"⏱ Длительность: `{info['duration_formatted']}`\n"
        f"📊 Битрейт: `{info['bitrate']}` kbps\n"
        f"💾 Размер: `{info['file_size_bytes'] / 1024:.2f}` KB\n\n"
        f"Выберите эффект:",
        reply_markup=effects_keyboard()
    )

def effects_keyboard():
    """Клавиатура с эффектами"""
    keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
    keyboard.add(
        types.KeyboardButton("🌊 Reverb"),
        types.KeyboardButton("⚡ Speed Up"),
        types.KeyboardButton("🔊 Bass Boost")
    )
    return keyboard

@dp.message_handler(lambda msg: msg.text in ["🌊 Reverb", "⚡ Speed Up", "🔊 Bass Boost"])
async def apply_effect(message: types.Message):
    effect_map = {
        "🌊 Reverb": "reverb",
        "⚡ Speed Up": "speed_up",
        "🔊 Bass Boost": "bass_boost"
    }
    
    effect = effect_map[message.text]
    
    # Создаём превью
    preview = processor.preview_effect(
        input_path=file_path,
        effect_name=effect,
        duration=15
    )
    
    if preview:
        await message.reply_audio(
            audio=types.InputFile(preview),
            caption=f"🎧 Превью: {effect}\n\nОбработать полностью?"
        )

📊 Сравнение функций

Функция Назначение Возвращает Пример
process_audio() Обработка 1 файла bool True / False
get_audio_info() Информация о файле dict {duration, bitrate...}
batch_process() Обработка N файлов dict {file: True/False...}
preview_effect() Превью 10 сек str "path/to/preview.mp3"

⚠️ Важно

╔═══════════════════════════════════════════════════════════╗ ║ 🔒 Библиотека поддерживает ТОЛЬКО 3 эффекта ║ ║ ║ ║ ❌ Попытка добавить свои эффекты вызовет ошибку: ║ ║ NotImplementedError ║ ╚═══════════════════════════════════════════════════════════╝


📝 Требования

Библиотека Версия Описание
Python >= 3.7 🐍 Язык программирования
pydub >= 0.25.1 🎵 Обработка аудио
numpy >= 1.21.0 🔢 Математические операции
imageio-ffmpeg >= 0.4.8 ⚡ FFmpeg (автоматически)

📄 Лицензия

MIT License — свободное использование с указанием автора

Посмотреть лицензию


👤 Автор

devdox-del

📧 warek2508@gmail.com
🐙 @devdox-del


🐛 Баги и предложения

Создать IssueФоркЗвезда


📦 Goh Music v0.2.0-beta

Сделано с ❤️ для разработчиков

Наверх

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

goh_music-0.2.0.tar.gz (12.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

goh_music-0.2.0-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

Details for the file goh_music-0.2.0.tar.gz.

File metadata

  • Download URL: goh_music-0.2.0.tar.gz
  • Upload date:
  • Size: 12.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for goh_music-0.2.0.tar.gz
Algorithm Hash digest
SHA256 131301c983499f4a148a591b8530af19b4bf401215136ba9e05505caca9f273c
MD5 bb02c428bb8d4e4c82775e0587737302
BLAKE2b-256 f5d278ca1bbeaf745b8e93370849ed35c951c6bea984b35f8d5cde714a08738d

See more details on using hashes here.

File details

Details for the file goh_music-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: goh_music-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 10.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for goh_music-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 64930bc205da75e51e1b866c84e317820fd252e64a61e5de45dd3759a36a4785
MD5 13400bada1271143191c3425c4666a78
BLAKE2b-256 aa5e4ef6fe33d92beb1b6166eaa4ede300c082c80474e50a137ed07cfb28834f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page