|The Comparisonics API Software
Library provides an application program interface to C and C++ programs.
This library enables a wide variety of applications to be developed that
incorporate the Comparisonics technologies for audio comparison and
display. It includes functions for
IndexingIndexing is the process of creating signatures to characterize the content of audio clips. The application program first opens an audio file and determines from the file header the sample rate of the digital audio samples stored in the file. The application program reads the audio samples into memory as needed using whatever buffering mechanism is convenient and efficient. To characterize an entire file or a segment of a file, the following API functions are called in sequence:
For most applications, it is best to divide an audio file into segments and the four steps above are repeated to create a signature for each segment. The duration of segments is chosen by the application program. When indexing rapidly-changing audio such as music, 50-millisecond intervals work well; on the other hand, for ambient sound, each segment could be several seconds in duration or longer. Normally, the segments are defined to be consecutive and non-overlapping within the file, but this is not a requirement. Creating one signature to characterize an entire file is useful for locating copies of the file.
Sound MatchingGiven any two signatures,
To search a collection of audio clips, the clips must first be indexed, that is, signatures must be created to characterize them. Then any sound, including one selected from the collection, may be used as the prototype in a sound-matching query. To determine which sounds in the collection are most like the prototype, signatures derived from the prototype are compared with the signatures derived from the collection. The resulting similarity scores can be sorted to produce a ranked list of hits.
To search for sounds within a single audio file, the file is first divided into segments and a signature is created to characterize each segment. The user selects a particular segment, or sequence of segments, as the prototype (by clicking on it within a waveform display, for example). The prototype's signatures are then compared with other signatures in the file to locate matches. A region of the file is considered to be a match if its similarity to the prototype exceeds the value of a threshold parameter specified by the user.
Coloring the Waveform Display
An audio file is first divided into segments. For each segment, a signature is created, and a color is derived from the signature and used to paint the segment in the waveform display. The resulting display is a rainbow of colors reflecting the frequency content of the audio file.
SummaryThe Comparisonics API consists of six functions. Four functions are used in the indexing process:
And one function is used for mapping sound to color:
The Comparisonics API Software Library is distributed in the form of a C-language include file, and a binary object file that gets linked to the application program.
© 2016 Comparisonics Corporation