IP Library Granted Patent US 10,957,290
Granted Patent B2
US 10,957,290 · App. 16/111,596 · Granted Mar 23, 2021

Lyrics analyzer

Inventors: Tahora H. Nazer (Tempe, AZ); Tristan Jehan (Brooklyn, NY)
Assignee: Spotify AB
G10H1/0008G06F16/4387G06F16/685G06F16/686G06F17/18G06F40/242G06F40/279G06F40/30G06N7/005G06N20/00G06N20/20G10L15/14G06N5/003G10H2210/031G10H2210/056G10H2220/005G10H2220/011G10H2240/081G10H2240/085G10H2240/141
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,957,290
App. No.
16/111,596
Granted
Mar 23, 2021
Kind
B2
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 (68)

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, the 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, for at least one of the plurality of tracks, an acoustic vector based on non-lyrics audio features within the plurality of tracks;

calculating a hybrid vector for at least one of the plurality of tracks by concatenating the n-dimensional lyrics vector and the acoustic vector for the at least one track;

receiving a set of one or more first track tags;

receiving a set of training tracks from among the plurality of tracks associated with each of the one or more first track tags;

receiving at least one indicator of explicitness associated with the set of training tracks;

training a first tag classifier for each of the set of first track tags based on the hybrid vector of at least one of the training tracks for each track tag;

predicting a first set of predicted track tags for at least one of the plurality of tracks by applying each first tag classifier to the hybrid vector of at least one of the plurality of tracks;

training an explicitness classifier based on the hybrid vector of at least one of the training tracks and the at least one indicator of explicitness associated with the training tracks; and

generating at least one predicted explicitness indicator by applying the explicitness classifier to the hybrid vector of at least one of the plurality of tracks.

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

3. The method according to claim 1 , further comprising:

processing the lyrics of the plurality of tracks, wherein the processing includes: (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).

4. The method according to claim 1 , further comprising:

displaying one or more predicted track tags generated for at least one of the plurality of tracks.

5. The method according to claim 1 , wherein the first classifier and explicitness classifier are 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).

6. The method according to claim 1 , further comprising:

training a second tag classifier for each of the set of track tags based on the lyrics vectors of each of the training tracks for each track tag;

predicting a second set of predicted track tags for each of the plurality of tracks by applying each second tag classifier to the lyrics vectors of each of the plurality of tracks; and

generating a final set of track tags based on the combination of the first set of predicted tags and the second set of predicted track tags.

7. The method according to claim 6 , wherein generating a final set of track tags is based on the union of the first set of track tags and the second set of track tags.

8. The method according to claim 6 , wherein generating a final set of track tags is based on the intersection of the first set of track tags and the second set of track tags.

9. The method according to claim 1 , wherein the one or more set of first track tags is generated based on titles of playlists containing the associated training tracks.

10. The method according to claim 1 , wherein the set of first track tags is generated based on expert analysis of the associated training tracks.

11. 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, the 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, for at least one of the plurality of tracks, an acoustic vector based on non-lyrics audio features within the plurality of tracks;

calculating a hybrid vector for at least one of the plurality of tracks by concatenating the n-dimensional lyrics vector and the acoustic vector for the at least one track;

receiving a set of one or more first track tags;

receiving a set of training tracks from among the plurality of tracks associated with each of the one or more first track tags;

receiving at least one indicator of explicitness associated with the set of training tracks;

training a first tag classifier for each of the set of first track tags based on the hybrid vector of at least one of the training tracks for each track tag;

predicting a first set of predicted track tags for at least one of the plurality of tracks by applying each first tag classifier to the hybrid vector of at least one of the plurality of tracks;

training an explicitness classifier based on the hybrid vector of at least one of the training tracks and the at least one indicator of explicitness associated with the training tracks; and

generating at least one predicted explicitness indicator by applying the explicitness classifier to the hybrid vector of at least one of the plurality of tracks.

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

13. The system according to claim 11 , 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 includes: (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).

14. The system according to claim 11 , wherein the one or more processors are further programmed by the executable instructions to perform:

displaying one or more predicted track tags generated for at least one of the plurality of tracks.

15. The system according to claim 11 , wherein the first classifier and explicitness classifier are 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).

16. The system according to claim 11 , wherein the one or more processors are further programmed by the executable instructions to perform:

training a second tag classifier for each of the set of track tags based on the lyrics vectors of each of the training tracks for each track tag;

predicting a second set of predicted track tags for each of the plurality of tracks by applying each second tag classifier to the lyrics vectors of each of the plurality of tracks; and generating a final set of track tags based on the combination of the first set of predicted tags and the second set of predicted track tags.

17. The system according to claim 16 , wherein generating a final set of track tags is based on the union of the first set of track tags and the second set of track tags.

18. The system according to claim 16 , wherein generating a final set of track tags is based on the intersection of the first set of track tags and the second set of track tags.

19. 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, the 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, for at least one of the plurality of tracks, an acoustic vector based on non-lyrics audio features within the plurality of tracks;

calculating a hybrid vector for at least one of the plurality of tracks by concatenating the n-dimensional lyrics vector and the acoustic vector for the at least one track;

receiving a set of one or more first track tags;

receiving a set of training tracks from among the plurality of tracks associated with each of the one or more first track tags;

receiving at least one indicator of explicitness associated with the set of training tracks;

training a first tag classifier for each of the set of first track tags based on the hybrid vector of at least one of the training tracks for each track tag;

predicting a first set of predicted track tags for at least one of the plurality of tracks by applying each first tag classifier to the hybrid vector of at least one of the plurality of tracks;

training an explicitness classifier based on the hybrid vector of at least one of the training tracks and the at least one indicator of explicitness associated with the training tracks; and

generating at least one predicted explicitness indicator by applying the explicitness classifier to the hybrid vector of at least one of the plurality of tracks.

20. The system according to claim 19 , wherein the one or more set of first track tags is generated based on titles of playlists containing the associated training tracks.

21. The system according to claim 19 , wherein the set of first track tags is generated based on expert analysis of the associated training tracks.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 6, 2019
From: NAZER, TAHORA H.; JEHAN, TRISTAN
To: SPOTIFY AB
Reel/Frame 048246/0086 →
Continuity (2)
Provisional Application 62552882 · Aug 31, 2017
Related Publication 20190065468A1 · Feb 28, 2019
Cited By (1)
US 12,566,792