AUDIO FINGERPRINTING
First Claim
1. A method comprising:
- accessing, by one or more processors, spectral data stored in a database, the spectral data being derived from audio data and indicating a separate energy value for each of a plurality of frequencies;
determining, by the one or more processors, from the spectral data, a first group of frequencies and a second group of frequencies in the plurality of frequencies, the first group including frequencies that are higher than frequencies in the second group of frequencies;
in the first group of frequencies, identifying a first subgroup of frequencies wherein frequencies in the first subgroup have energy values that are higher than energy values of other frequencies in the first group;
in the second group of frequencies, identifying a second subgroup of frequencies wherein frequencies in the second subgroup have energy values that are higher than energy values of other frequencies in the second group;
creating, by the one or more processors, a vector that assigns a first common value to frequencies in the first subgroup and assigns a second common value to frequencies in the second subgroup;
generating, by the one or more processors, a sequence of permutations of the vector, each permutation differently arranging instances of the first and second common values;
generating, by the one or more processors, a sequence of numbers that each indicate a position of an instance of the first common value or of the second common value within a corresponding permutation among the permutations; and
generating, by the one or more processors, a fingerprint of the audio data based on the sequence of numbers.
12 Assignments
0 Petitions
Accused Products
Abstract
A machine may be configured to generate one or more audio fingerprints of one or more segments of audio data. The machine may access audio data to be fingerprinted and divide the audio data into segments. For any given segment, the machine may generate a spectral representation from the segment; generate a vector from the spectral representation; generate an ordered set of permutations of the vector; generate an ordered set of numbers from the permutations of the vector; and generate a fingerprint of the segment of the audio data, which may be considered a sub-fingerprint of the audio data. In addition, the machine or a separate device may be configured to determine a likelihood that candidate audio data matches reference audio data.
-
Citations
25 Claims
-
1. A method comprising:
-
accessing, by one or more processors, spectral data stored in a database, the spectral data being derived from audio data and indicating a separate energy value for each of a plurality of frequencies; determining, by the one or more processors, from the spectral data, a first group of frequencies and a second group of frequencies in the plurality of frequencies, the first group including frequencies that are higher than frequencies in the second group of frequencies; in the first group of frequencies, identifying a first subgroup of frequencies wherein frequencies in the first subgroup have energy values that are higher than energy values of other frequencies in the first group; in the second group of frequencies, identifying a second subgroup of frequencies wherein frequencies in the second subgroup have energy values that are higher than energy values of other frequencies in the second group; creating, by the one or more processors, a vector that assigns a first common value to frequencies in the first subgroup and assigns a second common value to frequencies in the second subgroup; generating, by the one or more processors, a sequence of permutations of the vector, each permutation differently arranging instances of the first and second common values; generating, by the one or more processors, a sequence of numbers that each indicate a position of an instance of the first common value or of the second common value within a corresponding permutation among the permutations; and generating, by the one or more processors, a fingerprint of the audio data based on the sequence of numbers. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A non-transitory machine-readable storage medium comprising instructions that, when executed by one or more processors of a machine, cause the machine to perform operations comprising:
-
accessing spectral data stored in a database, the spectral data being derived from audio data and indicating a separate energy value for each of a plurality of frequencies; determining, from the spectral data, a first group of frequencies and a second group of frequencies in the plurality of frequencies, the first group including frequencies that are higher than frequencies in the second group of frequencies; in the first group of frequencies, identifying a first subgroup of frequencies wherein frequencies in the first subgroup have energy values that are higher than energy values of other frequencies in the first group; in the second group of frequencies, identifying a second subgroup of frequencies wherein frequencies in the second subgroup have energy values that are higher than energy values of other frequencies in the second group; creating a vector that assigns a first common value to frequencies in the first subgroup and assigns a second common value to frequencies in the second subgroup; generating a sequence of permutations of the vector, each permutation differently arranging instances of the first and second common values; generating a sequence of numbers that each indicate a position of an instance of the first common value or of the second common value within a corresponding permutation among the permutations; and generating a fingerprint of the audio data based on the sequence of numbers. - View Dependent Claims (18)
-
-
19. A system comprising:
-
one or more processors; and a memory storing instructions that, when executed by at least one processor among the one or more processors, cause the system to perform operations comprising; accessing spectral data stored in a database, the spectral data being derived from audio data and indicating a separate energy value for each of a plurality of frequencies; determining from the spectral data, a first group of frequencies and a second group of frequencies in the plurality of frequencies, the first group including frequencies that are higher than frequencies in the second group of frequencies; in the first group of frequencies, identifying a first subgroup of frequencies wherein frequencies in the first subgroup have energy values that are higher than energy values of other frequencies in the first group; in the second group of frequencies, identifying a second subgroup of frequencies wherein frequencies in the second subgroup have energy values that are higher than energy values of other frequencies in the second group; creating a vector that assigns a first common value to frequencies in the first subgroup and assigns a second common value to frequencies in the second subgroup; generating a sequence of permutations of the vector, each permutation differently arranging instances of the first and second common values; generating a sequence of numbers that each indicate a position of an instance of the first common value or of the second common value within a corresponding permutation among the permutations; and generating a fingerprint of the audio data based on the sequence of numbers. - View Dependent Claims (20)
-
-
21. A method of identifying an unknown audio item represented by audio data, the method comprising:
-
determining, by one or more processors, spectral data from the audio data, the spectral data indicating a separate energy value for each of a plurality of frequencies; identifying, from the spectral data, a first group of frequencies and a second group of frequencies in the plurality of frequencies, the first group of frequencies including frequencies that are higher than frequencies in the second group are frequencies; in the first group of frequencies, identifying a first subgroup of frequencies wherein frequencies in the first subgroup have energy values that are higher than energy values of other frequencies in the first group; in the second group of frequencies, identifying a second subgroup of frequencies wherein frequencies in the second subgroup have energy values that are higher than energy values of other frequencies in the second group; creating, by the one or more processors, a vector that assigns a first common value to frequencies in the first subgroup and assigns a second common value to frequencies in the second subgroup; generating, by the one or more processors, a sequence of permutations of the vector, each permutation differently arranging instances of the first and second common values; generating, by the one or more processors, a sequence of numbers that each indicate a position of an instance of the first common value or of the second common value within a corresponding permutation among the permutations; and generating, by the one or more processors, a query fingerprint of the audio data based on the sequence of numbers. - View Dependent Claims (22, 23)
-
-
24. A non-transitory machine-readable storage medium comprising instructions that, when executed by one or more processors of a machine, cause the machine to perform operations comprising:
-
determining, by one or more processors, spectral data from the audio data, the spectral data indicating a separate energy value for each of a plurality of frequencies; identifying, from the spectral data, a first group of frequencies and a second group of frequencies in the plurality of frequencies, the first group of frequencies including frequencies that are higher than frequencies in the second group are frequencies; in the first group of frequencies, identifying a first subgroup of frequencies wherein frequencies in the first subgroup have energy values that are higher than energy values of other frequencies in the first group; in the second group of frequencies, identifying a second subgroup of frequencies wherein frequencies in the second subgroup have energy values that are higher than energy values of other frequencies in the second group; creating, by the one or more processors, a vector that assigns a first common value to frequencies in the first subgroup and assigns a second common value to frequencies in the second subgroup; generating, by the one or more processors, a sequence of permutations of the vector, each permutation differently arranging instances of the first and second common values; generating, by the one or more processors, a sequence of numbers that each indicate a position of an instance of the first common value or of the second common value within a corresponding permutation among the permutations; and generating, by the one or more processors, a query fingerprint of the audio data based on the sequence of numbers.
-
-
25. A device comprising:
-
one or more processors; and a memory storing instructions that, when executed by at least one processor among the one or more processors, cause the device to perform operations comprising; determining, by one or more processors, spectral data from the audio data, the spectral data indicating a separate energy value for each of a plurality of frequencies; identifying, from the spectral data, a first group of frequencies and a second group of frequencies in the plurality of frequencies, the first group of frequencies including frequencies that are higher than frequencies in the second group are frequencies; in the first group of frequencies, identifying a first subgroup of frequencies wherein frequencies in the first subgroup have energy values that are higher than energy values of other frequencies in the first group; in the second group of frequencies, identifying a second subgroup of frequencies wherein frequencies in the second subgroup have energy values that are higher than energy values of other frequencies in the second group; creating, by the one or more processors, a vector that assigns a first common value to frequencies in the first subgroup and assigns a second common value to frequencies in the second subgroup; generating, by the one or more processors, a sequence of permutations of the vector, each permutation differently arranging instances of the first and second common values; generating, by the one or more processors, a sequence of numbers that each indicate a position of an instance of the first common value or of the second common value within a corresponding permutation among the permutations; and generating, by the one or more processors, a query fingerprint of the audio data based on the sequence of numbers.
-
Specification