Проект
Локално Windows приложение за AI музикална продукция
Изграждам локално Windows desktop приложение за вътрешна употреба, което автоматизира производството на AI-генерирана фонова музика за търговски пространства (кафенета, ресторанти, хотели, спа, уелнес).
❌ НЕ е consumer app
❌ НЕ е SaaS
❌ НЕ е стрийминг платформа
✅ Това е producer tool – инструмент за производство на готови аудио тракове за комерсиална употреба.
Цел (MVP)Целта е проста, но професионална:
Избирам preset / конфигурация → натискам “Generate” → получавам напълно готови тракове (WAV + MP3)
с коректна дължина, loudness, структура и пълна проследимост (логове).
Приложението трябва да ми дава пълен контрол чрез конфигурационни файлове (preset „скриптове“)
без нужда от промяна на кода.
-
ОС: Windows 11 Pro
-
CPU: AMD Ryzen 7 7700
-
RAM: 32 GB
-
GPU: AMD integrated (AI генерацията е CPU-only)
-
Режим на генерация (MVP): PyTorch CPU build
Интернет:
-
допустим при първоначална инсталация / първо пускане (напр. за model weights)
-
след това: пълна офлайн работа
(Налична е AMD Radeon RX 6700 XT, но се използва само за дисплей, не за AI)
✅ Основни функционални изисквания (MVP)0️⃣ Phase 2 – архитектурно предвидено (НЕ част от MVP deliverables)Приложението трябва да бъде проектирано така, че да позволява future “curated workflow” без пренаписване на core pipeline-а, а именно:
-
Candidate generation: генериране на къси кандидат-тракове (2–3 мин, configurable) за прослушване
-
Human gate: PASS / REJECT – само PASS участва във финално сглобяване
-
Parallelism: докато потребителят слуша/одобрява, генерацията може да продължава във фонов режим
(non-blocking UI + queues)Реализацията може да е извън MVP, но архитектурата трябва да го позволява без major refactor.
- Continuous / unattended operation:
Приложението трябва да поддържа продължителна работа (24/7),
при която AI генерацията може да работи непрекъснато във фонов режим,
докато потребителят паралелно:
- слуша вече генерирани тракове
- одобрява/отхвърля сегменти
- извършва рязане и сглобяване на финални тракове,
без тези действия да блокират или спират генерацията.
Прост, стабилен, non-blocking интерфейс
Inputs:
-
Избор на Preset / Канал (напр. Cafe / Restaurant / Hotel / Spa)
-
Крайна дължина: 10 / 20 / 30 минути
-
Брой тракове: 1–50
-
Ниво на вариация: Low / Medium / High
-
Избор на output папка
UX изисквания:
-
UI остава responsive по време на генерация
-
Job queue
-
Progress bar
-
ETA (ориентировъчно)
-
Статуси: Waiting / Running / Paused / Done / Failed
Приложението ТРЯБВА да използва presets.yaml или presets.json, които действат като
скриптове/шаблони за музикална продукция.
Изисквания:
-
четим и редактируем файл
-
без промяна на кода
-
приложението просто чете и изпълнява конфигурацията
Всеки preset съдържа минимум:
-
preset_name
-
preset_version (v1, v1.1 и т.н.)
-
prompt_template
-
negative_prompt (optional)
-
default generation parameters (temperature, top-k/top-p, cfg и др.)
-
default segment length (30–60s)
-
seed strategy: fixed / random / predefined list (optional)
-
допълнителни тагове (mood, tempo, energy – като метаданни)
UI функции:
-
бутон “Reload presets”
или -
“Open presets file” + Reload
➡️ Това ми позволява да добавям профили, версии и да експериментирам без developer намеса.
3️⃣ AI генериране на музика-
MusicGen (Audiocraft) или еквивалентен open-source модел
-
Генериране на 30–60 сек сегменти
-
CPU-only execution
Детерминизъм и traceability:
-
seed се запазва
-
всички параметри се логват
-
при същия preset + seed → сравним резултат
Model weights:
-
автоматично изтегляне при първо пускане
или -
bundle-ване (ако е възможно)
-
след това: пълна офлайн работа
За всеки финален трак:
-
Генериране на N сегмента
-
Stitch в дълъг трак:
-
crossfade: 5–8 сек
-
-
Loudness нормализация:
-
~-17 LUFS Integrated (EBU R128)
-
true peak ≤ -1.0 dBTP (или -1.5 dBTP)
-
prefer 2-pass loudnorm
-
-
Export:
-
WAV (master)
-
MP3 (delivery)
-
ffmpeg:
-
използва се за processing
-
bundle-нат с инсталатора
-
без ръчни инсталации
-
Множество jobs
-
Последователно изпълнение
-
Start / Pause / Resume / Stop
-
При грешка:
-
job → Failed
-
error се записва в лог
-
по възможност се продължава със следващ job
-
За всеки финален трак се записва log.json с пълни метаданни:
Минимум:
-
preset_name + version
-
prompt_template (+ negative_prompt)
-
seed
-
model_name + version
-
generation parameters
-
segment duration + count
-
crossfade duration
-
final duration
-
target LUFS + measured LUFS
-
target true peak + measured true peak
-
export settings
-
timestamp
-
app_version
/output
└─ /cafe_chill
├─ cafe_chill__v1__20min__seed123.wav
├─ cafe_chill__v1__20min__seed123.mp3
└─ log.json
Проектът се счита за завършен, когато всички условия по-долу са изпълнени:
1️⃣ Инсталация и базова работа-
Мога да инсталирам приложението на Windows 11 чрез 1-click installer. (или се инсталира с отдалечен достъп)
-
Мога да генерирам поне 1 пълен финален трак (10–30 мин) без използване на command line.
-
Приложението може да генерира кратки кандидат-тракове с дължина ~2–3 минути.
-
За всеки кандидат-трак има възможност за прослушване директно в UI.
-
За всеки кандидат-трак мога да избера:
-
PASS (става) → тракът се запазва в Approved pool
-
REJECT (не става) → тракът автоматично отпада (изтрива се или се архивира)
-
-
Само одобрените (PASS) тракове се използват за:
-
автоматично слепване (stitching) в по-дълги финални тракове (напр. 30–60 мин).
-
-
Докато:
-
слушам кандидат-тракове,
-
одобрявам / отхвърлям,
-
инициирам слепване на финални тракове,
-
-
приложението продължава да генерира нова музика във фонов режим, без:
-
блокиране на UI,
-
спиране на текущата генерация,
-
ръчно рестартиране на процеси.
-
-
Приложението поддържа продължителна (24/7) работа в unattended режим.
Всеки финален трак съдържа:
-
WAV (master) + MP3 (delivery)
-
коректна зададена дължина
-
loudness: ~ -17 LUFS Integrated
-
true peak: ≤ -1.0 dBTP / -1.5 dBTP
-
правилна folder структура
-
валиден log.json с всички метаданни
-
Мога самостоятелно да редактирам presets.yaml/json.
-
Мога да добавям нови музикални профили и версии.
-
Новите/редактираните presets могат да се използват чрез UI без промяна на кода.
-
Архитектурата на приложението (jobs, queues, pipeline, logging) позволява:
-
разширяване към curated workflow (Phase 2),
-
без major refactor на core логиката.
-
-
Кратко техническо описание как ще реализира проекта
-
Опит с:
-
Python + Windows packaging
-
PyTorch CPU
-
ffmpeg pipeline
-
-
Предложение за milestones
