A method for recognizing an audio sample locates an audio file that most
closely matches the audio sample from a database indexing a large set of
original recordings. Each indexed audio file is represented in the
database index by a set of landmark timepoints and associated
fingerprints. Landmarks occur at reproducible locations within the file,
while fingerprints represent features of the signal at or near the
landmark timepoints. To perform recognition, landmarks and fingerprints
are computed for the unknown sample and used to retrieve matching
fingerprints from the database. For each file containing matching
fingerprints, the landmarks are compared with landmarks of the sample at
which the same fingerprints were computed. If a large number of
corresponding landmarks are linearly related, i.e., if equivalent
fingerprints of the sample and retrieved file have the same time
evolution, then the file is identified with the sample. The method can be
used for any type of sound or music, and is particularly effective for
audio signals subject to linear and nonlinear distortion such as
background noise, compression artifacts, or transmission dropouts. The
sample can be identified in a time proportional to the logarithm of the
number of entries in the database; given sufficient computational power,
recognition can be performed in nearly real time as the sound is being
sampled.