# US 10,770,044 B2 · Lyrics analyzer

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,770,044 B2
- Document ID: US10770044B2
- Status: Granted
- Kind: B2
- Application number: 16/111,614
- Filed: 2018-08-24
- Published: 2019-02-28
- Granted: 2020-09-08
- Earliest claimed: 2017-08-31
- Assignees: Spotify AB
- Applicants: Spotify AB
- Inventors: Tahora H. Nazer; Tristan Jehan
- Web page: https://patentgrep.com/patent/US10770044B2

## CPC

- G10H 1/0008: {Associated control or indicating means}
- G06F 16/4387: {by the use of playlists}
- G06F 16/685: {using automatically derived transcript of audio data, e.g. lyrics (speech recognition G10L15/00)}
- G06F 16/686: {using information manually generated, e.g. tags, keywords, comments, title or artist information, time, location or usage information, user ratings}
- G06F 17/18: for evaluating statistical data {, e.g. average values, frequency distributions, probability functions, regression analysis (forecasting specially adapted for a specific administrative, business or logistic context G06Q10/04)}
- G06F 40/242: Dictionaries
- G06F 40/279: Recognition of textual entities
- G06F 40/30: Semantic analysis
- G06N 7/01: Probabilistic graphical models, e.g. probabilistic networks
- G06N 20/00: Machine learning
- G06N 20/20: Ensemble learning
- G10L 15/14: using statistical models, e.g. Hidden Markov Models [HMMs] (G10L15/18 takes precedence)
- G06N 5/01: Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
- G10H 2210/031: Musical analysis, i.e. isolation, extraction or identification of musical elements or musical parameters from a raw acoustic signal or from an encoded audio signal
- G10H 2210/056: for extraction or identification of individual instrumental parts, e.g. melody, chords, bass; Identification or separation of instrumental parts by their characteristic voices or timbres
- G10H 2220/005: Non-interactive screen display of musical or status data
- G10H 2220/011: Lyrics displays, e.g. for karaoke applications
- G10H 2240/081: Genre classification, i.e. descriptive metadata for classification or selection of musical pieces according to style
- G10H 2240/085: Mood, i.e. generation, detection or selection of a particular emotional content or atmosphere in a musical piece
- G10H 2240/141: Library retrieval matching, i.e. any of the steps of matching an inputted segment or phrase with musical database contents, e.g. query by humming, singing or playing; the steps may include, e.g. musical analysis of the input, musical feature extraction, query formulation, or details of the retrieval process
- G10H: ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G10L: SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING

## Abstract

A lyrics analyzer generates tags and explicitness indicators for a set of tracks. These tags may indicate the genre, mood, occasion, or other features of each track. The lyrics analyzer does so by generating an n-dimensional vector relating to a set of topics extracted from the lyrics and then using those vectors to train a classifier to determine whether each tag applies to each track. The lyrics analyzer may also generate playlists for a user based on a single seed song by comparing the lyrics vector or the lyrics and acoustics vectors of the seed song to other songs to select songs that closely match the seed song. Such a playlist generator may also take into account the tags generated for each track.

## Claims

### Claim 1

A method, comprising:
receiving a plurality of tracks at an information storage and retrieval platform via an electronic communication from a datastore of tracks, a plurality of the tracks including lyrics;
extracting n topics summarizing the lyrics of the plurality of tracks, each topic consisting of a plurality of words, where n is an integer;
generating, for each of the plurality of tracks, an n-dimensional vector using a generative statistical model based on the association of the lyrics of the track with the n topics, thereby generating a plurality of n-dimensional lyrics vectors;
receiving a set of training tracks from among the plurality of tracks, each training track having an indicator of explicitness;
training a classifier for determining whether a track is explicit, based on the lyrics vectors of each of the training tracks;
generating a first explicitness indicator for each of the plurality of tracks by applying the classifier to the lyrics vectors of each of the plurality of tracks;
training a second, different, classifier based on the lyrics vectors of at least one of the training tracks;
generating a second explicitness indicator for at least one of the plurality of tracks by applying each second classifier to the lyrics vectors of at least one of the plurality of tracks; and
generating a final explicitness indicator based on the combination of the first explicitness indicator and the second explicitness indicator.

### Claim 2 (depends on 1)

The method according to claim 1, wherein the generative statistical model is a Latent Dirichlet Allocation (LDA) model.

### Claim 3 (depends on 1)

The method according to claim 1, further comprising:
processing the lyrics of the plurality of tracks, wherein the processing including: (i) white-space standardizing, (ii) lowercasing, (iii) removing stopwords, (iv) removing punctuation, (v) lemmatizing, (vi) removing character repetition based on a dictionary, or (vii) any combination of (i), (ii), (iii), (iv), (v), and (vi).

### Claim 4 (depends on 1)

The method according to claim 1, further comprising:
displaying one or more explicitness indicators generated for at least one of the plurality of tracks.

### Claim 5 (depends on 1)

The method according to claim 1, wherein the classifier is based on at least one of (i) a Random Forest classifier, (ii) a Naïve Bayes classifier, (iii) a Decision Tree classifier, (iv) a Stochastic Gradient Descent classifier, (v) a K-Nearest Neighbors classifier, or (vi) any combination of (i), (ii), (iii), (iv), and (v).

### Claim 6 (depends on 1)

The method according to claim 1, wherein generating a final explicitness indicator is based on the union of the first and second explicitness indicators.

### Claim 7 (depends on 1)

The method according to claim 1, wherein generating a final explicitness indicator is based on the intersection of the first and second explicitness indicators.

### Claim 8 (depends on 1)

The method according to claim 1, further comprising:
receiving, for at least one of the plurality of tracks, an acoustic vector;
calculating a hybrid vector for at least one of the plurality of tracks by concatenating the lyrics vector and the acoustic vector for at least one of the plurality of tracks;
wherein training a classifier is based on the hybrid vectors of at least one of the training tracks; and
wherein generating an indicator of explicitness for at least one of the plurality of tracks is accomplished by applying the classifier to the hybrid vectors of at least one of the plurality of tracks.

### Claim 9 (depends on 8)

The method according to claim 8, further comprising:
training a second, different, classifier for each of a set of tags based on the lyrics vectors of at least one of the training tracks for each tag;
calculating a hybrid vector for at least one of the plurality of tracks by concatenating the lyrics vector and the acoustic vector for at least one of the plurality of tracks;
wherein training a classifier is based on the hybrid vectors of at least one of the training tracks for each tag; and
wherein generating an indicator of explicitness for at least one of the plurality of tracks is accomplished by applying each classifier to the hybrid vector of at least one of the plurality of tracks.

### Claim 10 (depends on 1)

The method according to claim 1, wherein the indicator of explicitness is generated based on titles of playlists containing the associated training tracks.

### Claim 11 (depends on 1)

The method according to claim 1, wherein indicator of explicitness is generated based on expert analysis of the associated training tracks.

### Claim 12

A system comprising:
a computer-readable memory storing executable instructions; and
one or more processors in communication with the computer-readable memory, wherein the one or more processors are programmed by the executable instructions to at least perform:
receiving a plurality of tracks at an information storage and retrieval platform via an electronic communication from a datastore of tracks, a plurality of the tracks including lyrics;
extracting n topics summarizing the lyrics of the plurality of tracks, each topic consisting of a plurality of words, where n is an integer;
generating, for each of the plurality of tracks, an n-dimensional vector using a generative statistical model based on the association of the lyrics of the track with the n topics, thereby generating a plurality of n-dimensional lyrics vectors;
receiving a set of training tracks from among the plurality of tracks, each training track having an indicator of explicitness;
training a classifier for determining whether a track is explicit, based on the lyrics vectors of each of the training tracks;
generating a first explicitness indicator for each of the plurality of tracks by applying the classifier to the lyrics vectors of each of the plurality of tracks;
training a second, different, classifier based on the lyrics vectors of at least one of the training tracks;
generating a second explicitness indicator for at least one of the plurality of tracks by applying each second classifier to the lyrics vectors of at least one of the plurality of tracks; and
generating a final explicitness indicator based on the combination of the first explicitness indicator and the second explicitness indicator.

### Claim 13 (depends on 12)

The system according to claim 12, wherein the generative statistical model is a Latent Dirichlet Allocation (LDA) model.

### Claim 14 (depends on 12)

The system according to claim 12, wherein the one or more processors are further programmed by the executable instructions to perform:
processing the lyrics of the plurality of tracks, wherein the processing including: (i) white-space standardizing, (ii) lowercasing, (iii) removing stopwords, (iv) removing punctuation, (v) lemmatizing, (vi) removing character repetition based on a dictionary, or (vii) any combination of (i), (ii), (iii), (iv), (v), and (vi).

### Claim 15 (depends on 12)

The system according to claim 12, wherein the one or more processors are further programmed by the executable instructions to perform:
displaying one or more explicitness indicators generated for at least one of the plurality of tracks.

### Claim 16 (depends on 12)

The system according to claim 12, wherein the classifier is based on at least one of (i) a Random Forest classifier, (ii) a Naïve Bayes classifier, (iii) a Decision Tree classifier, (iv) a Stochastic Gradient Descent classifier, (v) a K-Nearest Neighbors classifier, or (vi) any combination of (i), (ii), (iii), (iv), and (v).

### Claim 17 (depends on 12)

The system according to claim 12, wherein generating a final explicitness indicator is based on the union of the first and second explicitness indicators.

### Claim 18 (depends on 12)

The system according to claim 12, wherein generating a final explicitness indicator is based on the intersection of the first and second explicitness indicators.

### Claim 19 (depends on 12)

The system according to claim 12, wherein the one or more processors are further programmed by the executable instructions to perform:
receiving, for at least one of the plurality of tracks, an acoustic vector;
calculating a hybrid vector for at least one of the plurality of tracks by concatenating the lyrics vector and the acoustic vector for at least one of the plurality of tracks;
wherein training a classifier is based on the hybrid vectors of at least one of the training tracks; and
wherein generating an indicator of explicitness for at least one of the plurality of tracks is accomplished by applying the classifier to the hybrid vectors of at least one of the plurality of tracks.

### Claim 20 (depends on 19)

The system according to claim 19, wherein the one or more processors are further programmed by the executable instructions to perform:
training a second, different, classifier for each of a set of tags based on the lyrics vectors of at least one of the training tracks for each tag;
calculating a hybrid vector for at least one of the plurality of tracks by concatenating the lyrics vector and the acoustic vector for at least one of the plurality of tracks;
wherein training a classifier is based on the hybrid vectors of at least one of the training tracks for each tag; and
wherein generating an indicator of explicitness for at least one of the plurality of tracks is accomplished by applying each classifier to the hybrid vector of at least one of the plurality of tracks.

### Claim 21 (depends on 12)

The system according to claim 12, wherein the indicator of explicitness is generated based on titles of playlists containing the associated training tracks.

### Claim 22 (depends on 12)

The system according to claim 12, wherein indicator of explicitness is generated based on expert analysis of the associated training tracks.

### Claim 23

A non-transitory computer-readable medium having stored thereon one or more sequences of instructions for causing one or more processors to perform:
receiving a plurality of tracks at an information storage and retrieval platform via an electronic communication from a datastore of tracks, a plurality of the tracks including lyrics;
extracting n topics summarizing the lyrics of the plurality of tracks, each topic consisting of a plurality of words, where n is an integer;
generating, for each of the plurality of tracks, an n-dimensional vector using a generative statistical model based on the association of the lyrics of the track with the n topics, thereby generating a plurality of n-dimensional lyrics vectors;
receiving a set of training tracks from among the plurality of tracks, each training track having an indicator of explicitness;
training a classifier for determining whether a track is explicit, based on the lyrics vectors of each of the training tracks;
generating a first explicitness indicator for each of the plurality of tracks by applying the classifier to the lyrics vectors of each of the plurality of tracks;
training a second, different, classifier based on the lyrics vectors of at least one of the training tracks;
generating a second explicitness indicator for at least one of the plurality of tracks by applying each second classifier to the lyrics vectors of at least one of the plurality of tracks; and
generating a final explicitness indicator based on the combination of the first explicitness indicator and the second explicitness indicator.

### Claim 24

A method, comprising:
receiving a plurality of tracks at an information storage and retrieval platform via an electronic communication from a datastore of tracks, a plurality of the tracks including lyrics;
extracting n topics summarizing the lyrics of the plurality of tracks, each topic consisting of a plurality of words, where n is an integer;
generating, for each of the plurality of tracks, an n-dimensional vector using a generative statistical model based on the association of the lyrics of the track with the n topics, thereby generating a plurality of n-dimensional lyrics vectors;
receiving a set of training tracks from among the plurality of tracks, each training track having an indicator of explicitness;
training a classifier for determining whether a track is explicit, based on the lyrics vectors of each of the training tracks;
generating a first explicitness indicator for each of the plurality of tracks by applying the classifier to the lyrics vectors of each of the plurality of tracks;
receiving, for at least one of the plurality of tracks, an acoustic vector;
calculating a hybrid vector for at least one of the plurality of tracks by concatenating the lyrics vector and the acoustic vector for at least one of the plurality of tracks;
wherein training a classifier is based on the hybrid vectors of at least one of the training tracks; and
wherein generating an indicator of explicitness for at least one of the plurality of tracks is accomplished by applying the classifier to the hybrid vectors of at least one of the plurality of tracks.

### Claim 25 (depends on 24)

The method according to claim 24, wherein the generative statistical model is a Latent Dirichlet Allocation (LDA) model.

### Claim 26 (depends on 24)

The method according to claim 24, further comprising:
processing the lyrics of the plurality of tracks, wherein the processing including: (i) white-space standardizing, (ii) lowercasing, (iii) removing stopwords, (iv) removing punctuation, (v) lemmatizing, (vi) removing character repetition based on a dictionary, or (vii) any combination of (i), (ii), (iii), (iv), (v), and (vi).

### Claim 27 (depends on 24)

The method according to claim 24, further comprising:
displaying one or more explicitness indicators generated for at least one of the plurality of tracks.

### Claim 28 (depends on 24)

The method according to claim 24, wherein the classifier is based on at least one of (i) a Random Forest classifier, (ii) a Naïve Bayes classifier, (iii) a Decision Tree classifier, (iv) a Stochastic Gradient Descent classifier, (v) a K-Nearest Neighbors classifier, or (vi) any combination of (i), (ii), (iii), (iv), and (v).

### Claim 29 (depends on 24)

The method according to claim 24, further comprising:
training a second, different, classifier based on the lyrics vectors of at least one of the training tracks;
generating a second explicitness indicator for at least one of the plurality of tracks by applying each second classifier to the lyrics vectors of at least one of the plurality of tracks; and
generating a final explicitness indicator based on the combination of the first explicitness indicator and the second explicitness indicator.

### Claim 30 (depends on 29)

The method according to claim 29, wherein generating a final explicitness indicator is based on the union of the first and second explicitness indicators.

### Claim 31 (depends on 29)

The method according to claim 29, wherein generating a final explicitness indicator is based on the intersection of the first and second explicitness indicators.

### Claim 32 (depends on 24)

The method according to claim 24, further comprising:
training a second, different, classifier for each of a set of tags based on the lyrics vectors of at least one of the training tracks for each tag;
calculating a hybrid vector for at least one of the plurality of tracks by concatenating the lyrics vector and the acoustic vector for at least one of the plurality of tracks;
wherein training a classifier is based on the hybrid vectors of at least one of the training tracks for each tag; and
wherein generating an indicator of explicitness for at least one of the plurality of tracks is accomplished by applying each classifier to the hybrid vector of at least one of the plurality of tracks.

### Claim 33 (depends on 24)

The method according to claim 24, wherein the indicator of explicitness is generated based on titles of playlists containing the associated training tracks.

### Claim 34 (depends on 24)

The method according to claim 24, wherein indicator of explicitness is generated based on expert analysis of the associated training tracks.

### Claim 35

A system comprising:
a computer-readable memory storing executable instructions; and
one or more processors in communication with the computer-readable memory, wherein the one or more processors are programmed by the executable instructions to at least perform:
receiving a plurality of tracks at an information storage and retrieval platform via an electronic communication from a datastore of tracks, a plurality of the tracks including lyrics;
extracting n topics summarizing the lyrics of the plurality of tracks, each topic consisting of a plurality of words, where n is an integer;
generating, for each of the plurality of tracks, an n-dimensional vector using a generative statistical model based on the association of the lyrics of the track with the n topics, thereby generating a plurality of n-dimensional lyrics vectors;
receiving a set of training tracks from among the plurality of tracks, each training track having an indicator of explicitness;
training a classifier for determining whether a track is explicit, based on the lyrics vectors of each of the training tracks;
generating a first explicitness indicator for each of the plurality of tracks by applying the classifier to the lyrics vectors of each of the plurality of tracks;
receiving, for at least one of the plurality of tracks, an acoustic vector;
calculating a hybrid vector for at least one of the plurality of tracks by concatenating the lyrics vector and the acoustic vector for at least one of the plurality of tracks;
wherein training a classifier is based on the hybrid vectors of at least one of the training tracks; and
wherein generating an indicator of explicitness for at least one of the plurality of tracks is accomplished by applying the classifier to the hybrid vectors of at least one of the plurality of tracks.

### Claim 36 (depends on 35)

The system according to claim 35, wherein the generative statistical model is a Latent Dirichlet Allocation (LDA) model.

### Claim 37 (depends on 35)

The system according to claim 35, further comprising:
processing the lyrics of the plurality of tracks, wherein the processing including: (i) white-space standardizing, (ii) lowercasing, (iii) removing stopwords, (iv) removing punctuation, (v) lemmatizing, (vi) removing character repetition based on a dictionary, or (vii) any combination of (i), (ii), (iii), (iv), (v), and (vi).

### Claim 38 (depends on 35)

The system according to claim 35, further comprising:
displaying one or more explicitness indicators generated for at least one of the plurality of tracks.

### Claim 39 (depends on 35)

The system according to claim 35, wherein the classifier is based on at least one of (i) a Random Forest classifier, (ii) a Naïve Bayes classifier, (iii) a Decision Tree classifier, (iv) a Stochastic Gradient Descent classifier, (v) a K-Nearest Neighbors classifier, or (vi) any combination of (i), (ii), (iii), (iv), and (v).

### Claim 40 (depends on 35)

The system according to claim 35, wherein the one or more processors are further programmed by the executable instructions to perform:
training a second, different, classifier based on the lyrics vectors of at least one of the training tracks;
generating a second explicitness indicator for at least one of the plurality of tracks by applying each second classifier to the lyrics vectors of at least one of the plurality of tracks; and
generating a final explicitness indicator based on the combination of the first explicitness indicator and the second explicitness indicator.

### Claim 41 (depends on 40)

The system according to claim 40, wherein generating a final explicitness indicator is based on the union of the first and second explicitness indicators.

### Claim 42 (depends on 40)

The system according to claim 40, wherein generating a final explicitness indicator is based on the intersection of the first and second explicitness indicators.

### Claim 43 (depends on 35)

The system according to claim 35, wherein the one or more processors are further programmed by the executable instructions to perform:
training a second, different, classifier for each of a set of tags based on the lyrics vectors of at least one of the training tracks for each tag;
calculating a hybrid vector for at least one of the plurality of tracks by concatenating the lyrics vector and the acoustic vector for at least one of the plurality of tracks;
wherein training a classifier is based on the hybrid vectors of at least one of the training tracks for each tag; and
wherein generating an indicator of explicitness for at least one of the plurality of tracks is accomplished by applying each classifier to the hybrid vector of at least one of the plurality of tracks.

### Claim 44 (depends on 35)

The system according to claim 35, wherein the indicator of explicitness is generated based on titles of playlists containing the associated training tracks.

### Claim 45 (depends on 35)

The system according to claim 35, wherein indicator of explicitness is generated based on expert analysis of the associated training tracks.

### Claim 46

A non-transitory computer-readable medium having stored thereon one or more sequences of instructions for causing one or more processors to perform:
receiving a plurality of tracks at an information storage and retrieval platform via an electronic communication from a datastore of tracks, a plurality of the tracks including lyrics;
extracting n topics summarizing the lyrics of the plurality of tracks, each topic consisting of a plurality of words, where n is an integer;
generating, for each of the plurality of tracks, an n-dimensional vector using a generative statistical model based on the association of the lyrics of the track with the n topics, thereby generating a plurality of n-dimensional lyrics vectors;
receiving a set of training tracks from among the plurality of tracks, each training track having an indicator of explicitness;
training a classifier for determining whether a track is explicit, based on the lyrics vectors of each of the training tracks;
generating an indicator of explicitness for each of the plurality of tracks by applying the classifier to the lyrics vectors of each of the plurality of tracks;
receiving, for at least one of the plurality of tracks, an acoustic vector;
calculating a hybrid vector for at least one of the plurality of tracks by concatenating the lyrics vector and the acoustic vector for at least one of the plurality of tracks;
wherein training a classifier is based on the hybrid vectors of at least one of the training tracks; and
wherein generating an indicator of explicitness for at least one of the plurality of tracks is accomplished by applying the classifier to the hybrid vectors of at least one of the plurality of tracks.
