Контракт проекта для SONARA v0.2.9
Для кого: Разработчики, проверяющие сохранённые результаты SONARA. Задача: Зафиксировать декодирование, контракты, результаты и границы хранения. Тип: Справочник
Зафиксированный контракт анализа
| Настройка | Значение |
|---|---|
| Пакет SONARA | 0.2.9 |
| Схема результата SONARA | 4 |
| Ревизия признаков проекта | 6 |
| Режим | playlist |
| Декодер | sonara-symphonia |
| Путь выполнения | analyze_batch |
| Частота дискретизации | 22050 Hz |
| Шаг анализа | 512 отсчётов |
| Диапазон BPM | 70..180 |
| Модель vocalness для Core | встроенный селектор sonara-vocalness-v2 |
Задача передаёт упорядоченные партии путей прямо в sonara.analyze_batch(). Декодированием владеет SONARA/Symphonia. Рабочий путь не вызывает общий загрузчик FFmpeg проекта, DecodedAudio, analyze_signal или analyze_file и не возвращается к ним при ошибке. ML и предпросмотр по-прежнему зависят от FFmpeg.
Четыре независимых результата
| Результат | Содержимое | Хранилище |
|---|---|---|
core | скалярные и компактные векторные признаки, включая полные Contrast, MFCC и Chroma | Core sonara |
timeline | доли, атаки, события аккордов, кривые темпа, энергии и громкости, первые доли такта и сегменты | Artifacts sonara_timeline |
embedding | 48-мерный вектор float32 little-endian версии 2 без нормализации | Artifacts sonara_similarity_embeddings |
fingerprint | отпечаток uint32 little-endian версии 1 | Artifacts sonara_fingerprints |
core включается всегда. Выбор нескольких результатов выполняет один вызов SONARA, после чего объект записывается в таблицы его контрактов без повторного декодирования.
Metrogram time_signature, доступный только в Full, исключён из core: он не используется в ранжировании или классификаторах, а Beatgrid применяет обычный запасной размер 4/4 SONARA.
Идентичность контракта и релиза
Все четыре ContractIdentity выводятся из загруженного пакета. Пользователь не может передать хеш релиза. Общие параметры включают:
- версию и идентификатор сборки пакета;
- схему, режим, частоту, шаг и границы BPM;
- ревизию проекта
6; - декодер и путь выполнения;
- политику ограничения значений и затронутые поля;
- идентификатор выбранной модели vocalness;
- отсортированный набор признаков каждого результата.
Для эмбеддинга и отпечатка добавляются версия и кодирование. Канонический JSON превращается в contract_hash, а полная идентичность среды — в общий для четырёх результатов release_hash. Сырые сведения анализатора проверяются при приёме результата, но их полное обратное сохранение не обещается.
Граница хранения
Новый каталог состоит из Core v7 и обязательной базы Artifacts с общим catalog_uuid. Evaluation — необязательная третья база, которую создают только сценарии оценки. Отсутствующая, несовместимая или чужая боковая база блокирует работу.
Обычные ответы по трекам возвращают покрытие v7 и компактные сводки. Явный маршрут временных данных загружает только актуальный результат timeline. Клиент React ещё не перенесён на ответы v7, поэтому отображение этих данных в текущем интерфейсе не обещается.
Подготовка релиза
До анализа нового или неподготовленного релиза выполните:
dj-sim prepare-sonara-release --db .\data\library.sqlite --backup-dir .\backup --confirm "PREPARE SONARA RELEASE"Команда сама выводит core, timeline, embedding и fingerprint, проверяет пару резервных копий Core и Artifacts и выполняет упорядоченную активацию с квитанцией. Прерванную операцию можно продолжить; несовпадение квитанции, копий, каталога или среды блокируется. Старые строки SONARA и зависимые оценки классификаторов удаляются до активации новых контрактов.
Это не миграция схемы. Рабочая среда принимает только чистые комплекты v7, а удалённых команд migrate-v7 и migrate-schema-v7 нет.
Граница ранжирования
Текущие поиск, SET, Hybrid и классификаторы используют подписанные признаки core. timeline, эмбеддинг и отпечаток SONARA сохраняются для отдельных или будущих сценариев. MERT и CLAP остаются активными поисковыми эмбеддингами. Любой результат — сигнал ранжирования или диагностики, а не автоматическое решение диджея.