A matrix is generated that stores sinusoidal components evaluated for a given sample rate corresponding to the matrix. The matrix is then used to convert an audio signal to chroma vectors representing of a set of “chromae” (frequencies of interest). The conversion of an audio signal portion into its chromae enables more meaningful analysis of the audio signal than would be possible using the signal data alone. The chroma vectors of the audio signal can be used to perform analyzes such as comparisons with the chroma vectors obtained from other audio signals in order to identify audio matches.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A computer-implemented method comprising: obtaining an audio signal; segmenting the audio signal into a plurality of time-ordered audio segments; accessing a first matrix of values obtained by evaluating sinusoidal functions over a plurality of frequencies corresponding to chromae to be evaluated; deriving a first plurality of chroma vectors corresponding to the plurality of time-ordered audio segments using the first matrix, each of the chroma vectors indicating a magnitude of a frequency of the plurality of frequencies in the corresponding audio segment; comparing the first plurality of chroma vectors to a second plurality of chroma vectors derived from a first known audio item of a library of known audio items; responsive to the comparison, detecting a match of the first plurality of chroma vectors with the second plurality of chroma vectors; and identifying the obtained audio signal as having audio of the first known audio item.
2. The computer-implemented method of claim 1 , wherein the first matrix includes a sine and a cosine value computed at each of the plurality of frequencies.
3. The computer-implemented method of claim 1 , further comprising generating a plurality of matrices of sinusoidal functions evaluated over the plurality of frequencies, each matrix corresponding to a different sample rate.
4. The computer-implemented method of claim 3 , further comprising: identifying a sample rate of the obtained audio signal; determining that the identified sample rate matches a sample rate corresponding to the first matrix; and using the first matrix to derive the first plurality of chroma vectors responsive to the determining.
5. The computer-implemented method of claim 4 , wherein the first matrix is stored in a format compatible with matrix multiplication hardware, the method further comprising using the matrix multiplication hardware to derive the first plurality of chroma vectors.
6. The computer-implemented method of claim 1 , further comprising generating a plurality of matrices of sinusoidal functions evaluated over the plurality of frequencies, the matrices corresponding to different audio signal segment lengths.
7. The computer-implemented method of claim 1 , wherein deriving the first plurality of chroma vectors corresponding to the plurality of time-ordered segments using the first matrix comprises: for each time-ordered audio segment of the time-ordered audio segments, multiplying the first matrix and the time-ordered audio segment.
8. The computer-implemented method of claim 1 , wherein a computational expense of deriving the first plurality of chroma vectors is O(m*N), where m is a number of chromae to be evaluated and where N is a number of samples for the audio signal.
9. The computer-implemented method of claim 1 , wherein the obtained audio signal is received over a network from a user and represents music vocalized by the user.
10. A non-transitory computer-readable storage medium having processor-executable instructions comprising: instructions for obtaining an audio signal; instructions for segmenting the audio signal into a plurality of time-ordered audio segments; instructions for accessing a first matrix of values obtained by evaluating sinusoidal functions over a plurality of frequencies corresponding to chromae to be evaluated; instructions for deriving a first plurality of chroma vectors corresponding to the plurality of time-ordered audio segments using the first matrix, each of the chroma vectors indicating a magnitude of a frequency of the plurality of frequencies in the corresponding audio segment; instructions for comparing the first plurality of chroma vectors to a second plurality of chroma vectors derived from a first known audio item of a library of known audio items; instructions for responsive to the comparison, detecting a match of the first plurality of chroma vectors with the second plurality of chroma vectors; and instructions for identifying the obtained audio signal as having audio of the first known audio item.
11. The non-transitory computer-readable storage medium of claim 10 , wherein the first matrix includes a sine and a cosine value computed at each of the plurality of frequencies.
12. The non-transitory computer-readable storage medium of claim 10 , the instructions further comprising instructions for generating a plurality of matrices of sinusoidal functions evaluated over the plurality of frequencies, each matrix corresponding to a different sample rate.
13. The non-transitory computer-readable storage medium of claim 12 , the instructions further comprising: instructions for identifying a sample rate of the obtained audio signal; instructions for determining that the identified sample rate matches a sample rate corresponding to the first matrix; and instructions for using the first matrix to derive the first plurality of chroma vectors responsive to the determining.
14. The non-transitory computer-readable storage medium of claim 10 , the instructions further comprising instructions for generating a plurality of matrices of sinusoidal functions evaluated over the plurality of frequencies, the matrices corresponding to different audio signal segment lengths.
15. The non-transitory computer-readable storage medium of claim 10 , wherein deriving the plurality of chroma vectors corresponding to the plurality of time-ordered segments using the first matrix comprises: for each time-ordered audio segment of the time-ordered audio segments, multiplying the first matrix and the time-ordered audio segment.
16. The non-transitory computer-readable storage medium of claim 10 , wherein the obtained audio signal is received over a network from a user and represents music vocalized by the user.
17. A computer system comprising: a computer processor; and a non-transitory computer-readable storage medium having instructions executable by the computer processor, the instructions comprising: instructions for obtaining an audio signal; instructions for segmenting the audio signal into a plurality of time-ordered audio segments; instructions for accessing a first matrix of values obtained by evaluating sinusoidal functions over a plurality of frequencies corresponding to chromae to be evaluated; instructions for deriving a first plurality of chroma vectors corresponding to the plurality of time-ordered audio segments using the first matrix, each of the chroma vectors indicating a magnitude of a frequency of the plurality of frequencies in the corresponding audio segment; instructions for comparing the first plurality of chroma vectors to a second plurality of chroma vectors derived from a first known audio item of a library of known audio items; instructions for responsive to the comparison, detecting a match of the first plurality of chroma vectors with the second plurality of chroma vectors; and instructions for identifying the obtained audio signal as having audio of the first known audio item.
18. The computer system of claim 17 , wherein the first matrix includes a sine and a cosine value computed at each of the plurality of frequencies.
19. The computer system of claim 17 , the instructions further comprising instructions for generating a plurality of matrices of sinusoidal functions evaluated over the plurality of frequencies, each matrix corresponding to a different sample rate.
20. The computer system of claim 19 , the instructions further comprising: instructions for identifying a sample rate of the obtained audio signal; instructions for determining that the identified sample rate matches a sample rate corresponding to the first matrix; and instructions for using the first matrix to derive the first plurality of chroma vectors responsive to the determining.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
June 29, 2015
November 28, 2017
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.