AI-генерация джинглов и рекламного аудио
Рекламный джингл с вокалом — 5–30 секунд, запоминающийся, брендированный. AI-генерация через Suno/Udio даёт варианты за минуты вместо студийной записи за дни. Подходит для digital-рекламы, коммерческих роликов, радио.
Генерация джингла с вокалом
import httpx
import asyncio
async def generate_jingle_suno(
brand_name: str,
product_description: str,
style: str = "catchy pop",
duration_hint: str = "short 15 seconds"
) -> bytes:
"""
Suno v4 через unofficial API.
Для production — официальное партнёрство или MusicGen.
"""
prompt = f"""
Advertising jingle for {brand_name}.
Product: {product_description}.
Style: {style}, {duration_hint}.
Include brand name in lyrics.
Catchy, memorable hook.
"""
# Unofficial API calls (только для прототипирования)
# ...
# Альтернатива: MusicGen large + отдельный TTS для вокала
return await generate_jingle_musicgen_plus_tts(brand_name, product_description, style)
async def generate_jingle_musicgen_plus_tts(
brand_name: str,
product: str,
style: str
) -> bytes:
from audiocraft.models import MusicGen
from pydub import AudioSegment
import edge_tts
# 1. Генерируем инструментальный трек
music_model = MusicGen.get_pretrained("facebook/musicgen-large")
music_model.set_generation_params(duration=15, cfg_coef=5.0)
wav = music_model.generate([
f"{style} jingle instrumental, catchy, upbeat, commercial advertising music, no vocals"
])
import torchaudio
music_buf = io.BytesIO()
torchaudio.save(music_buf, wav[0].cpu(), sample_rate=32000, format="mp3")
music = AudioSegment.from_mp3(music_buf)
# 2. Генерируем текст джингла через GPT
from openai import AsyncOpenAI
client = AsyncOpenAI()
jingle_text = await client.chat.completions.create(
model="gpt-4o",
messages=[{
"role": "user",
"content": f"Создай короткий запоминающийся текст джингла (2-4 строки) для {brand_name}: {product}. Стиль: {style}."
}]
)
lyrics = jingle_text.choices[0].message.content
# 3. TTS для вокальной партии
tts = edge_tts.Communicate(lyrics, voice="ru-RU-DmitryNeural", rate="+20%", pitch="+3Hz")
vocal_path = "/tmp/jingle_vocal.mp3"
await tts.save(vocal_path)
vocal = AudioSegment.from_mp3(vocal_path)
# 4. Микшируем музыку + вокал
vocal_positioned = vocal.overlay(vocal, position=1000) # Начинаем вокал через 1 сек
final = music[:15000].overlay(vocal_positioned.apply_gain(-3)) # Вокал чуть тише
buf = io.BytesIO()
final.export(buf, format="mp3", bitrate="192k")
return buf.getvalue()
Форматы рекламного аудио
| Формат | Длина | Применение |
|---|---|---|
| Jingle | 5–30 сек | ТВ/радио реклама, digital |
| Stinger | 2–5 сек | Логотип бренда в аудио |
| Background score | 30–90 сек | Корпоративное видео |
| Podcast ad read | 30–60 сек | TTS + музыкальная подложка |
| Social audio | 5–15 сек | TikTok, Instagram Reels |
Для коммерческих джинглов с настоящим вокалом — Suno/Udio как основа для быстрого прототипа, финальная запись с живым вокалистом. AI даёт 3–5 вариантов за 30 минут, живая запись — 1–2 дня. Сроки: автоматизированный генератор джинглов — 1 неделя.







