ISCC-UNIT Content-Code Audio#
IEP: | 0005 |
---|---|
Title: | ISCC-UNIT Condent-Code Audio |
Author: | Titusz Pan tp@iscc.io |
Comments: | https://github.com/iscc/iscc-ieps/issues/10 |
Status: | DRAFT |
Type: | Core |
License: | CC-BY-4.0 |
Created: | 2022-09-28 |
Updated: | 2024-11-30 |
Note
This document is a DRAFT contributed as input to ISO TC 46/SC 9/WG 18. The final version is published under ISO 24138:2024.
1. General#
- The Content-Code Subtype Audio (Audio-Code) shall be a similarity hash of the audio input.
- The Audio-Code shall be robust against audio format conversion, compression, and minor edits.
2. Format#
The Audio-Code shall have the data format illustrated in Figure 7.
EXAMPLE 1: 64-bit Audio-Code in its canonical form:
ISCC:EIAWUJFCEZZOJYVD
EXAMPLE 2: 256-bit Audio-Code in its canonical form:
ISCC:EIDWUJFCEZZOJYVDHJHIRB3KQSQCM2REUITDUTVAQNRGJIRENCCCULY
3. Inputs#
The input for calculating the Audio-Code shall be the Chromaprint fingerprint (array of 32-bit signed integers) from the original audio data.
4. Outputs#
Audio-Code processing shall generate the following ISCC metadata output elements:
- iscc: the Audio-Code in its canonical form (required).
- duration: duration of audio in seconds (optional).
- Additional metadata extracted from the audio file (optional).
5. Processing#
An ISCC processor shall calculate the Audio-Code as follows:
- Calculate a 32-bit similarity hash from the input array.
- Additionally, calculate 32-bit similarity hashes separately for each quarter of values from the input array and concatenate them to the result from step 1 in order to extend the similarity hash up to a total of 160 bits.
- Sort the input array by value in ascending order and calculate similarity hashes separately for each third of the values and concatenate them to the result from step 2 in order to extend the similarity hash of the final ISCC-BODY of the Audio-Code up to the maximum of 256 bits.
6. Conformance#
The normative behaviour of an ISCC processor in generating an Audio–Code is specified only for the Chromaprint input array. An implementation of the Audio-Code algorithm shall be regarded as conforming to the standard if it creates the same Audio-Code as the reference implementation for the same Chromaprint array of 32-bit values.
NOTE
For further technical details see source-code in modules code_content_audio.py and simhash.py of the reference implementation.