AI-генерация фоновой музыки
Фоновая музыка для видеоконтента, подкастов, стримов, приложений, магазинов. AI-генерация исключает проблемы авторских прав (DMCA) и даёт точное соответствие настроению без поиска по стоковым библиотекам.
MusicGen для фоновой музыки
from audiocraft.models import MusicGen
import torchaudio
import io
model = MusicGen.get_pretrained("facebook/musicgen-large")
BACKGROUND_PRESETS = {
"corporate_presentation": {
"prompt": "corporate background music, uplifting piano, light strings, positive, no vocals, 120 bpm",
"duration": 120,
"cfg_coef": 4.0
},
"podcast_ambient": {
"prompt": "subtle ambient background, soft pads, minimal, unobtrusive, no melody focus",
"duration": 60,
"cfg_coef": 3.0
},
"retail_store": {
"prompt": "pleasant shopping music, light jazz, happy, medium tempo, no lyrics",
"duration": 180,
"cfg_coef": 3.5
},
"youtube_intro": {
"prompt": "energetic youtube intro, electronic, upbeat, 10 seconds, punchy",
"duration": 10,
"cfg_coef": 5.0
},
"meditation_app": {
"prompt": "meditation music, tibetan bowls, soft drone, peaceful, slow, nature sounds",
"duration": 300,
"cfg_coef": 2.5
},
"game_lobby": {
"prompt": "game lobby ambient, electronic, atmospheric, loopable, not too intense",
"duration": 90,
"cfg_coef": 4.0
}
}
async def generate_background_music(
preset: str,
custom_prompt: str = None,
duration: int = None
) -> bytes:
config = BACKGROUND_PRESETS.get(preset, {})
prompt = custom_prompt or config.get("prompt", "pleasant background music, no vocals")
dur = duration or config.get("duration", 60)
cfg = config.get("cfg_coef", 3.0)
model.set_generation_params(duration=min(dur, 30), cfg_coef=cfg)
wav = model.generate([prompt])
buf = io.BytesIO()
torchaudio.save(buf, wav[0].cpu(), sample_rate=32000, format="mp3")
return buf.getvalue()
Loopable музыка для приложений
def make_seamless_loop(audio_bytes: bytes, crossfade_ms: int = 2000) -> bytes:
"""Делаем аудио бесшовно зацикливаемым"""
from pydub import AudioSegment, effects
audio = AudioSegment.from_mp3(io.BytesIO(audio_bytes))
# Crossfade начала и конца
fade_in_part = audio[:crossfade_ms]
fade_out_part = audio[-crossfade_ms:]
# Убеждаемся что начало и конец плавно переходят
faded_start = fade_in_part.fade_in(crossfade_ms)
faded_end = fade_out_part.fade_out(crossfade_ms)
loopable = audio[:-crossfade_ms].overlay(faded_end, position=len(audio) - 2 * crossfade_ms)
buf = io.BytesIO()
loopable.export(buf, format="mp3", bitrate="192k")
return buf.getvalue()
Stable Audio (Stability AI) предоставляет API с фокусом именно на фоновую и loopable музыку. Стоимость: MusicGen self-hosted — ~$0.001–0.005/трек (облачный GPU), Stable Audio API — ~$0.01–0.05/трек. Сроки: сервис генерации фоновой музыки — 1–2 дня.







