Создание музыкального отчета (cue sheet) из видео, телетрансляции или записи занятия

Источник: AudD•

Создание музыкального отчета (cue sheet) из видео, телетрансляции или записи занятия

Сканируйте готовое видео, телетрансляцию или запись занятия с помощью корпоративной точки доступа AudD и превращайте совпадения в CSV-список музыкальных произведений (cue list): название, исполнитель, альбом, лейбл, ISRC/UPC, время начала и окончания, а также длительность, готовые для вашего…

В музыкальном отчете (cue sheet) перечислено каждое музыкальное произведение в продакшене с указанием того, где оно начинается, где заканчивается и какова его продолжительность. Команды постпродакшена предоставляют такой отчет вместе с телеэпизодом или фильмом; вещательные компании ведут журналы эфирного вещания; фитнес-студии и организаторы мероприятий должны знать, какие треки использовались в записанном занятии или событии. Если никто не фиксировал музыку во время монтажа, вы можете восстановить список по готовому файлу. Этот рецепт сканирует файл с помощью корпоративной точки доступа AudD и создает CSV-файл со списком треков.

В результате вы получаете отправную точку. AudD определяет запись: название, исполнитель, альбом, лейбл и (на плане Startup или выше) ISRC и UPC. Сервис не возвращает композиторов, издателей, ISWC или доли PRO (организаций по управлению правами на исполнение), а также не подает никаких документов в PRO или вещательную компанию. Форматы музыкальных отчетов различаются в зависимости от PRO и вещателя, поэтому в CSV-файле эти столбцы оставлены для заполнения из ваших лицензионных записей.

Что вы создадите

Скрипт, который принимает один файл и создает cue-sheet.csv:

Одна строка на каждое непрерывное использование трека. Если одна и та же песня играет в начале без титров, а затем снова на финальных титрах, это два фрагмента (cue), как и предполагается в музыкальных отчетах.

Если вам нужны заметки к шоу для подкаста, см. раздел Создание музыкальных титров для эпизода подкаста; для диджейского микса со сквозными переходами см. раздел Превращение диджейского сета или микса в треклист. Эта страница посвящена списку музыкальных произведений: времени начала и окончания, длительности, идентификаторам и столбцам, необходимым для работы с правами.

Предварительные требования

  • API-токен. Получите собственный токен в личном кабинете dashboard.audd.io. Для получения ISRC, UPC и коэффициента совпадения (score) требуется тариф Startup или выше.
  • Python 3.10+ с установленным пакетом pip install audd, а также ffprobe (часть ffmpeg) для определения длительности файла.
  • Готовый файл: видео, экспортированное аудио или URL. Используйте финальный микс; стем (изолированная дорожка) только с музыкой совпадает с большим количеством фрагментов, если он у вас есть (см. Шаг 5).

Шаг 1: Сканирование всего файла

Для музыкального отчета необходим каждый фрагмент, поэтому сканируйте каждые 12 секунд. Не используйте выборку с пропуском (skip): 15-секундный музыкальный акцент между точками сканирования никогда не будет обнаружен. Установите параметр limit равным количеству 12-секундных отрезков в файле, чтобы вызов охватывал весь файл и ничего больше.

Корпоративная точка доступа тарифицируется по одному запросу за каждые 12 секунд обработанного аудио, поэтому стоимость определяется временем звучания:

Каждое совпадение содержит start_seconds и end_seconds: где именно в вашем файле находится совпадение, в секундах. SDK вычисляет их на основе позиции фрагмента плюс смещение внутри фрагмента. Если вы вызываете HTTP API самостоятельно, формула приведена в справочнике по полям корпоративного API.

Шаг 2: Объединение совпадений в музыкальные фрагменты

Песня, которая звучит две минуты, возвращается примерно в виде десяти совпадений — по одному на каждый фрагмент. Объедините последовательные совпадения одной и той же записи в один фрагмент. Допускайте разрыв в один фрагмент, так как тихого пассажа или реплики диалога поверх музыки может быть достаточно, чтобы один фрагмент не распознался. Начало другой записи само по себе ничего не завершает: две песни могут накладываться друг на друга при кроссфейде, и каждая сохраняет свой собственный фрагмент.

Ключ отдает предпочтение ISRC, поэтому два совпадения с немного отличающимися названиями для одной и той же записи все равно объединяются. Если ISRC отсутствует (на тарифах ниже Startup или для пользовательского совпадения), система возвращает параметры к исполнителю и названию или к audio_id пользовательского каталога.

Шаг 3: Форматирование времени и запись CSV

Поля usage (использование), composer (композитор), publisher (издатель) и pro остаются пустыми. Назначение использования (фон, визуальное исполнение, тема и т.д.) зависит от того, как музыка сочетается с визуальным рядом, чего распознавание аудио определить не может. Композитор, издатель и принадлежность к PRO берутся из вашей лицензионной документации или от музыкального редактора.

Для большинства рабочих процессов музыкального отчета в секундах вполне достаточно. Если вашей системе требуются кадры (frames), переведите их из секунд в соответствии с частотой кадров вашего проекта постфактум.

Шаг 4: Насколько точным является время

Время является приблизительным, и степень этой приблизительности зависит от одной настройки.

Без точных смещений совпадение лишь указывает, из какого 12-секундного фрагмента оно взялось. Время начала и окончания привязывается к границам фрагментов, поэтому каждая граница может отличаться на величину до 12 секунд, а общая длительность — примерно до 24.

При включении точных смещений (accurate_offsets=true в HTTP API) каждое совпадение также содержит start_offset и end_offset: где именно внутри фрагмента, в миллисекундах, начинается и заканчивается распознанное аудио. Время начала и окончания попадает внутрь фрагмента, а не на его границу. Python SDK и CLI включают это по умолчанию; если вы вызываете HTTP API напрямую, передайте этот параметр самостоятельно.

Даже с точными смещениями сверьте результат с монтажом перед сдачей работы:

  • Наплыв (fade-in), затухание (fade-out) или затухающий хвост под диалогом могут не совпасть, поэтому фрагмент может казаться на несколько секунд короче, чем он звучит.
  • Фрагмент, разбитый на части при монтаже, отображается как отдельные отрезки, если пауза превышает GAP. Часто это правильно для музыкального отчета, в котором каждое использование учитывается отдельно.
  • Округляйте длительность так, как требует ваша PRO или телевещатель; некоторым нужны целые секунды, другим — округление в большую сторону.

Если у вас есть монтажный лист (EDL), используйте его для окончательных точек входа и выхода, а список AudD — для поиска и идентификации музыки.

Шаг 5: Библиотечная музыка и неизданные треки

Публичная база данных AudD охватывает около 160 миллионов коммерчески выпущенных песен. Музыка из производственных библиотек, оригинальная музыка к шоу (score) и еще не изданные треки могут в ней отсутствовать, и такие фрагменты возвращаются как отсутствие совпадения (no match).

Если у вас есть аудиофайлы этой музыки (лицензированные треки из библиотеки, стемы композитора), вы можете добавить их в пользовательский каталог (custom catalog): частную базу данных цифровых отпечатков для вашего аккаунта. Последующее сканирование вернет эти фрагменты с назначенным вами идентификатором audio_id, который ваша собственная таблица сопоставляет с библиотекой, композитором и издателем. Доступ к пользовательскому каталогу по умолчанию не включен; отправьте запрос на [email protected]. Загрузки тарифицируются, и их нельзя повторять автоматически, так как повторная попытка после успешной загрузки будет оплачена снова.

В функции write_cue_sheet найдите строки, у которых source имеет значение custom:<id> в LIBRARY, и заполните поля title, composer и publisher. Пользовательское совпадение может иметь пустые поля исполнителя и названия, поэтому ваша таблица является источником истины для этих фрагментов.

Стем, содержащий только музыку (если он есть в миксе), дает более чистые совпадения по сравнению с полным миксом, где поверх музыки наложены диалоги и эффекты. Время сохраняется до тех пор, пока стем начинается с той же точки, что и программа.

Способ через CLI

Для разового составления музыкального отчета CLI AudD выполняет сканирование и объединение:

--limit — это количество 12-секундных фрагментов (110 для 22 минут); --dry-run показывает стоимость без отправки запросов. --tracklist объединяет последовательные совпадения в треки, а CSV-файл содержит поля artist, title, album, label, isrc, upc, start, end, start_seconds и end_seconds для каждого трека. Вычисляйте длительность как end_seconds - start_seconds в вашей электронной таблице. Точные смещения включены по умолчанию.

По типам использования

Обработка ошибок

  • AudDAuthenticationError: неверный токен. Остановите выполнение и исправьте его.
  • AudDQuotaError, AudDSubscriptionError: исчерпан лимит запросов или используется функция, не включенная в ваш тариф. Исправьте настройки аккаунта; повторные попытки не помогут.
  • AudDCustomCatalogAccessError: доступ к пользовательскому каталогу еще не включен.
  • AudDInvalidAudioError: файл не удалось декодировать. Экспортируйте аудио в формат WAV или MP3 и повторите попытку.
  • Ошибка AudDConnectionError при сканировании: можно повторить попытку. Отмена запроса во время выполнения может привести к списанию лимита запросов, а повторное сканирование оплачивается снова, поэтому сохраняйте совпадения сразу после их получения.
  • Создание музыкальных титров для эпизода подкаста
  • Превращение DJ-сета или микса в треклист
  • Поля ответов и совпадений для корпоративных клиентов
  • Публичная база данных против вашего собственного каталога
  • AudD для PRO и организаций по защите прав
  • Контроль расходов на корпоративные эндпоинты

О чём эта статья