Audio fingerprinting
First Claim
1. A method comprising:
- accessing, by executing an instruction with at least one processor, spectral data stored in a database, the spectral data being derived from audio data and indicating a separate energy value for ones of a plurality of frequencies;
determining, by executing an instruction with the at least one processor, 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, by executing an instruction with the at least one processor, 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, by executing an instruction with the at least one processor, 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 executing an instruction with the at least one processor, 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 executing an instruction with the at least one processor, a sequence of permutations of the vector, the permutations differently arranging instances of the first and second common values;
generating, by executing an instruction with the at least one processor, a sequence of numbers that 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
reducing a computational overhead by generating, by executing an instruction with the at least one processor, 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 executing an instruction with at least one processor, spectral data stored in a database, the spectral data being derived from audio data and indicating a separate energy value for ones of a plurality of frequencies; determining, by executing an instruction with the at least one processor, 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, by executing an instruction with the at least one processor, 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, by executing an instruction with the at least one processor, 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 executing an instruction with the at least one processor, 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 executing an instruction with the at least one processor, a sequence of permutations of the vector, the permutations differently arranging instances of the first and second common values; generating, by executing an instruction with the at least one processor, a sequence of numbers that 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 reducing a computational overhead by generating, by executing an instruction with the at least one processor, 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 at least one processor of a machine, cause the machine to perform operations including:
-
accessing spectral data stored in a database, the spectral data being derived from audio data and indicating a separate energy value for ones 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, the permutations differently arranging instances of the first and second common values; generating a sequence of numbers that 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 reducing a computational overhead by 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 including; accessing spectral data stored in a database, the spectral data being derived from audio data and indicating a separate energy value for ones 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, the permutations differently arranging instances of the first and second common values; generating a sequence of numbers that 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 to reduce a computational overhead. - 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 executing an instruction with at least one processor, spectral data from the audio data, the spectral data indicating a separate energy value for ones of a plurality of frequencies; identifying, by executing an instruction with the at least one processor, 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, by executing an instruction with the at least one processor, 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, by executing an instruction with the at least one processor, 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 executing an instruction with the at least one processor, 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 executing an instruction with the at least one processor, a sequence of permutations of the vector, the permutations differently arranging instances of the first and second common values; generating, by executing an instruction with the at least one processor, a sequence of numbers that 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 reducing a computational overhead by generating, by executing an instruction with the at least one processor, 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 including:
-
determining spectral data from audio data, the spectral data indicating a separate energy value for ones 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 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, the permutations differently arranging instances of the first and second common values; generating a sequence of numbers that 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 reducing a computational overhead by generating 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 including; determining spectral data from audio data, the spectral data indicating a separate energy value for ones 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 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, the permutations differently arranging instances of the first and second common values; generating a sequence of numbers that 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 reducing a computational overhead by generating a query fingerprint of the audio data based on the sequence of numbers.
-
Specification