A method for generating a signature that identifies content of an audio signal, wherein the method comprises: obtaining a time-frequency representation of a sequence of overlapping blocks within a segment of the audio signal, wherein the time-frequency representation comprises sets of spectral values, each set of spectral values representing spectral components within all or a portion of the bandwidth of the audio signal in a respective block in the sequence of overlapping blocks;, wherein the time-frequency representation is obtained by applying a time-to-frequency transform to each block of the audio signal in the sequence of overlapping blocks to obtain a respective set of spectral values, deriving intermediate values from intensities of the spectral values arranged in groups of one or more spectral values within a respective set of spectral values, a respective intermediate value is derived by calculating an average intensity of the one or more spectral values in a group within the respective set of spectral values; and characterised by: generating the signature that identifies content of the audio signal by: - using a set of N base matrices to generate a set of N hash bits, wherein the base matrices P 1 to P N are K x L arrays of random-valued matrix elements; - obtaining a projection of the intermediate values onto each of the N base matrices by an inner product of the intermediate values with each of the N base matrices; - comparing each projection to the median value of all projections; and - setting a hash bit to a first value if the projection is equal to or exceeds the median value, and setting the hash bit to a second value if the projection is less than the threshold, wherein the signature is represented by the hash bits. obtaining a time-frequency representation of a sequence of overlapping blocks within a segment of the audio signal, wherein the time-frequency representation comprises sets of spectral values, each set of spectral values representing spectral components within all or a portion of the bandwidth of the audio signal in a respective block in the sequence of overlapping blocks;, wherein the time-frequency representation is obtained by applying a time-to-frequency transform to each block of the audio signal in the sequence of overlapping blocks to obtain a respective set of spectral values, deriving intermediate values from intensities of the spectral values arranged in groups of one or more spectral values within a respective set of spectral values, a respective intermediate value is derived by calculating an average intensity of the one or more spectral values in a group within the respective set of spectral values; and characterised by: generating the signature that identifies content of the audio signal by: - using a set of N base matrices to generate a set of N hash bits, wherein the base matrices P 1 to P N are K x L arrays of random-valued matrix elements; - obtaining a projection of the intermediate values onto each of the N base matrices by an inner product of the intermediate values with each of the N base matrices; - comparing each projection to the median value of all projections; and - setting a hash bit to a first value if the projection is equal to or exceeds the median value, and setting the hash bit to a second value if the projection is less than the threshold, wherein the signature is represented by the hash bits. generating the signature that identifies content of the audio signal by: - using a set of N base matrices to generate a set of N hash bits, wherein the base matrices P 1 to P N are K x L arrays of random-valued matrix elements; - obtaining a projection of the intermediate values onto each of the N base matrices by an inner product of the intermediate values with each of the N base matrices; - comparing each projection to the median value of all projections; and - setting a hash bit to a first value if the projection is equal to or exceeds the median value, and setting the hash bit to a second value if the projection is less than the threshold, wherein the signature is represented by the hash bits. - using a set of N base matrices to generate a set of N hash bits, wherein the base matrices P 1 to P N are K x L arrays of random-valued matrix elements; - obtaining a projection of the intermediate values onto each of the N base matrices by an inner product of the intermediate values with each of the N base matrices; - comparing each projection to the median value of all projections; and - setting a hash bit to a first value if the projection is equal to or exceeds the median value, and setting the hash bit to a second value if the projection is less than the threshold, wherein the signature is represented by the hash bits.