feat: add minimal Gradio web UI (app.py)
Single-page form wrapping src.generate.generate_period: pick model, mode, key, style, function, time, sampling params and optional prefix; returns the chord grid plus downloadable .chord and .mid files. Russian usage instructions are embedded on the same page. Auto-length output is capped at 16 bars (the period maximum) so a model that never emits EOS can't run away into dozens of NC/hold bars. Added per the author's explicit request — web UI was previously out of scope; updated CLAUDE.md and README accordingly. Choices for style/ function/time are derived from VOCAB so the form can't drift from the tokenizer. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -22,6 +22,7 @@
|
||||
- [3. Установка](#3-установка)
|
||||
- [4. Структура репозитория](#4-структура-репозитория)
|
||||
- [5. Быстрый старт](#5-быстрый-старт)
|
||||
- [5.1 Веб-интерфейс](#51-веб-интерфейс)
|
||||
- [6. Подготовка датасета](#6-подготовка-датасета)
|
||||
- [6.1 Собственный корпус](#61-собственный-корпус)
|
||||
- [6.2 Публичный корпус](#62-публичный-корпус)
|
||||
@@ -169,6 +170,31 @@ python scripts/generate.py \
|
||||
Модель достроит остаток периода в логике, выученной на собственном корпусе
|
||||
автора.
|
||||
|
||||
### 5.1 Веб-интерфейс
|
||||
|
||||
Для интерактивной работы без командной строки предусмотрен простой
|
||||
веб-интерфейс на базе Gradio. Запуск:
|
||||
|
||||
```bash
|
||||
python app.py
|
||||
```
|
||||
|
||||
После запуска интерфейс открывается в браузере по адресу
|
||||
`http://127.0.0.1:7860`. На одной странице расположены форма выбора
|
||||
параметров (модель, лад, тональность, стиль, функция, тактовый размер,
|
||||
параметры сэмплирования, опциональный префикс) и блок результата —
|
||||
текстовая сетка аккордов и кнопки скачивания `.chord`- и `.mid`-файлов.
|
||||
Краткая инструкция на русском языке встроена в саму страницу (раздел
|
||||
«Инструкция»).
|
||||
|
||||
Интерфейс является надстройкой над тем же модулем `src/generate.py`,
|
||||
что и CLI; вся логика генерации общая. Полезные флаги:
|
||||
|
||||
```bash
|
||||
python app.py --port 8000 # другой порт
|
||||
python app.py --share # временная публичная ссылка
|
||||
```
|
||||
|
||||
## 6. Подготовка датасета
|
||||
|
||||
Подготовка датасета — самая трудозатратная часть проекта (10–15 часов
|
||||
@@ -340,8 +366,9 @@ python scripts/evaluate.py \
|
||||
- Ритмический паттерн внутри удержания аккорда (синкопы, проходящие фигуры,
|
||||
альбертиевы басы).
|
||||
- Аранжировка, тембр, динамика, артикуляция.
|
||||
- Графический пользовательский интерфейс. Взаимодействие осуществляется
|
||||
через командную строку.
|
||||
- Развитый графический интерфейс. Реализован лишь минимальный веб-интерфейс
|
||||
(см. раздел 5.1) как надстройка над CLI; полноценного редактора с
|
||||
визуализацией нотного стана, проигрывателем и историей версий нет.
|
||||
- Прямая интеграция с REAPER в режиме реального времени. Обмен с DAW
|
||||
происходит через файлы MIDI.
|
||||
- Обработка модуляций внутри одного периода. При наличии модуляции в
|
||||
|
||||
Reference in New Issue
Block a user