# audio_engine.py import random from pydub import AudioSegment # Dostępne loopy (musisz wrzucić je do folderu assets/loops/) LOOPS = { "energetyczny TikTok": [ "assets/loops/tiktok_beat1.mp3", "assets/loops/tiktok_beat2.mp3", "assets/loops/tiktok_beat3.mp3" ], "premium elegancki": [ "assets/loops/premium_pad1.mp3", "assets/loops/premium_pad2.mp3" ], "luźny, młodzieżowy": [ "assets/loops/chill1.mp3", "assets/loops/chill2.mp3" ], "poważny, biznesowy": [ "assets/loops/corporate1.mp3", "assets/loops/corporate2.mp3" ] } def generate_music(style: str, length_sec: int = 15): """ Generuje muzykę na podstawie stylu. Miksuje loopy i przycina do zadanej długości. """ if style not in LOOPS: style = "energetyczny TikTok" chosen_loop = random.choice(LOOPS[style]) base = AudioSegment.from_file(chosen_loop) # powtarzamy loop do wymaganej długości output = AudioSegment.silent(duration=0) while len(output) < length_sec * 1000: output += base # przycinamy dokładnie output = output[:length_sec * 1000] # zapis out_path = "generated_music.mp3" output.export(out_path, format="mp3") return out_path