1. A computer-implemented method comprising: obtaining a sample of an audio signal; determining a plurality of frames within the sample, each frame representing a time-interval of the sample and overlapping with one or more adjacent frames of the plurality of frames; determining a frequency spectrum for each frame of the plurality of frames by applying a time domain to frequency domain transformation to each frame of the plurality of frames; generating a time-sequence of frequency spectrums from the frequency spectrums for each frame, the time-sequence of frequency spectrums comprising a two-dimensional array of the frequency spectrums over time; determining a plurality of frequency components by applying a time-variant transformation to the time-sequence of frequency spectrums; and generating an audio fingerprint and an index associated with the audio fingerprint, the audio fingerprint and index each comprising a set of the determined frequency components for the window, and the index comprising fewer frequency components than the audio fingerprint with the fewer frequency components being less sensitive to noise or distortions of the sample.