1. A method comprising: generating a spectral representation of a segment of audio data, the spectral representation indicating energy values for a set of frequencies; using a processor, generating a sparse vector that contains a zero value for each frequency in the set of frequencies except for representing a first group of highest energy values from a first portion of the set of frequencies with a common value and representing a second group of highest energy values from a second portion of the set of frequencies with the common value; generating an ordered set of permutations of the sparse vector, each permutation in the ordered set of permutations being generated in a corresponding manner that repositions instances of the common value to permutate the sparse vector; generating an ordered set of numbers from the ordered set of permutations of the sparse vector, each number in the ordered set of numbers representing a corresponding permutation by indicating a position of an instance of the common value within the corresponding permutation; and generating a fingerprint of the segment of the audio data based on the ordered set of numbers generated from the ordered set of permutations of the sparse vector.