Перейти к содержанию

Контракт проекта для SONARA v0.2.9

Для кого: Разработчики, проверяющие сохранённые результаты SONARA. Задача: Зафиксировать декодирование, контракты, результаты и границы хранения. Тип: Справочник

Зафиксированный контракт анализа

НастройкаЗначение
Пакет SONARA0.2.9
Схема результата SONARA4
Ревизия признаков проекта6
Режимplaylist
Декодерsonara-symphonia
Путь выполненияanalyze_batch
Частота дискретизации22050 Hz
Шаг анализа512 отсчётов
Диапазон BPM70..180
Модель vocalness для Coreвстроенный селектор sonara-vocalness-v2

Задача передаёт упорядоченные партии путей прямо в sonara.analyze_batch(). Декодированием владеет SONARA/Symphonia. Рабочий путь не вызывает общий загрузчик FFmpeg проекта, DecodedAudio, analyze_signal или analyze_file и не возвращается к ним при ошибке. ML и предпросмотр по-прежнему зависят от FFmpeg.

Четыре независимых результата

РезультатСодержимоеХранилище
coreскалярные и компактные векторные признаки, включая полные Contrast, MFCC и ChromaCore sonara
timelineдоли, атаки, события аккордов, кривые темпа, энергии и громкости, первые доли такта и сегментыArtifacts sonara_timeline
embedding48-мерный вектор float32 little-endian версии 2 без нормализацииArtifacts sonara_similarity_embeddings
fingerprintотпечаток uint32 little-endian версии 1Artifacts 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, поэтому отображение этих данных в текущем интерфейсе не обещается.

Подготовка релиза

До анализа нового или неподготовленного релиза выполните:

powershell
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 остаются активными поисковыми эмбеддингами. Любой результат — сигнал ранжирования или диагностики, а не автоматическое решение диджея.

Документация локального инструмента анализа музыкальной библиотеки.