Что такое аудиоотпечаток?

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

Наиболее широко используемый алгоритм — Chromaprint, который питает открытую базу данных AcoustID. Chromaprint преобразует аудио в последовательность хрома-признаков — представления энергии на каждом музыкальном классе высоты тона — а затем сжимает это в короткую строку base64. Этот отпечаток можно отправить в сервис AcoustID для идентификации основной дорожки и получения метаданных из MusicBrainz.

Описание инструмента

Этот инструмент вычисляет аудиоотпечаток Chromaprint загруженного аудиофайла прямо в вашем браузере. Затем он опционально запрашивает общедоступную базу данных AcoustID для идентификации дорожки и возврата метаданных, таких как название, исполнитель и ID MusicBrainz — всё без загрузки вашего файла на какой-либо сервер.

Возможности

  • Локальная обработка: Декодирование аудио и создание отпечатка выполняются полностью в браузере с использованием WebAssembly-сборки Chromaprint — ваш аудиофайл никогда не покидает ваше устройство
  • Широкая поддержка форматов: Работает с MP3, WAV, FLAC, OGG, M4A и любым форматом, который может декодировать Web Audio API вашего браузера
  • Поиск AcoustID: Опционально отправляет отпечаток в общедоступный API AcoustID для идентификации песни и получения метаданных исполнителя/названия/MusicBrainz
  • Технические детали: Отображает частоту дискретизации, количество каналов и проанализированную длительность вместе со строкой отпечатка
  • Копируемый отпечаток: Скопируйте строку отпечатка Chromaprint для использования во внешних инструментах, таких как fpcalc

Как это работает

  1. Загруженный файл декодируется Web Audio API браузера в необработанные PCM-образцы.
  2. До 120 секунд аудио подаются в модуль Chromaprint WASM, который вычисляет хрома-признаки и сжимает их в строку отпечатка.
  3. Если вы нажмёте Поиск на AcoustID, отпечаток и длительность отправляются в общедоступный API AcoustID, который возвращает совпадающие записи из базы данных MusicBrainz, отранжированные по оценке уверенности.

Поддерживаемые форматы

Любой аудиоформат, поддерживаемый Web Audio API вашего браузера, который обычно включает:

  • MP3 (.mp3)
  • WAV (.wav)
  • FLAC (.flac)
  • OGG Vorbis (.ogg)
  • AAC / M4A (.m4a, .aac)
  • Opus (.opus)

Ограничения

  • Анализируются только первые 120 секунд аудио (достаточно для надёжной идентификации).
  • Идентификация AcoustID требует наличия дорожки в базе данных MusicBrainz; редкие, неизданные или сильно переработанные дорожки могут не вернуть результаты.
  • Очень короткие клипы (менее ~10 секунд) могут создавать отпечатки с низкой уверенностью.