
Musique, paroles et IA agentique : créer un explicateur de chanson intelligent à l’aide de Python et OpenAI
est rap.
La musique rap m’a fait pleurer, chanter et danser, et c’est aussi comme ça que j’ai appris le Anglais langue. Je me souviens encore de la première fois où je me suis assis et où j’ai essayé de comprendre Biggie et Tupac. Je me souviens d’avoir découvert Brooklyn, la Californie, l’argot, les luttes et tous les autres messages puissants derrière ces chansons.
La musique rap est le meilleur exemple de la façon dont paroles seul peut faire de la musique un morceau de art. Certaines des meilleures chansons hip-hop sont littéralement un échantillon, de la batterie et une personne parlant de la poésie sur un tempo 4/4.
Et tandis que pour quelqu’un en lisant les paroles pourraient même ne pas être nécessaires, car ils connaissent la langue, pour les non-anglophones comme moi, des outils comme Génie rendu la vie incroyablement plus facile. Genius est un collectionneur de paroles de musique en ligne : si vous recherchez les paroles d’une chanson, Genius est votre homme. Grâce à Genius, même si je ne comprenais pas ce que disait Biggie, je pouvais m’asseoir et lire les paroles, puis les chercher sur Google et les traduire. Et ce n’est pas tout : lorsqu’un rappeur (ou un chanteur en général) fait une référence spécifique trop difficile à comprendre, Genius vous clarifiera cela à travers quelques extraits de la barre latérale.

Mais comment Genius fait-il cela ? Comment produisent-ils des extraits aussi perspicaces, à jour et utiles ?
Bien, en 2009, quand Genius est né, je dirais qu’ils produisaient principalement ce genre d’extraits manuellement: les utilisateurs ajouteraient simplement leur commentaire, peut-être qu’un modérateur pourrait en examiner certains, et c’est tout, accord conclu.
Cependant, aujourd’huigrâce aux puissantes technologies d’IA dont nous disposons, le pipeline peut être rendu beaucoup plus fluide et efficace. Même si je ne crois pas qu’une IA agentique serait capable de faire le travail d’un expert en musique (pour de nombreuses raisons), je crois qu’une personne possédant une telle connaissance du domaine pourrait être aidé par l’IA agentique, qui leur fournirait les bons outils pour créer les extraits.
Et que c’est ce que nous faisons aujourd’hui. 🙂
Nous utiliserons Rationalisé, Python, et OpenAI pour créer une application Web très simple qui, compte tenu des paroles d’une chanson, clarifie la signification du morceau de texte. Plus précisémentnous allons permettre à l’utilisateur de demander des questions sur le morceau de texte, rendant l’idée Genius plus « interactive ». Nous allons également donner à notre agent IA le Résultats de la recherche sur le Web pour permettre au LLM d’examiner d’autres chansons et ressources lors de l’élaboration de la réponse.
Pour pimenter les choses (et pour des raisons de droits d’auteur mdr), nous allons également créer nos propres chansons, en utilisant un autre agent IA.
Passionnant! Commençons ! 🚀
Si vous êtes intéressé par le résultat final de cette expérience, passez à la troisième section. Si vous souhaitez créer de la magie avec moi, commencez par la section suivante. Aucun jugement. 🙂
1. Conception du système
Commençons par concevoir notre système. Voici à quoi ça ressemble :

Plus précisément :
- L’Utilisateur a la possibilité de créer la chanson à partir de zéro à l’aide d’un agent IA. C’est facultatif ; un lot de chansons a déjà été généré et peut être utilisé à la place.
- L’Utilisateur peut sélectionner une pièce du texte et poser une question.
- L’agent IA peut générer la réponse dans un style « Genius-like ».
L’agent AI est également équipé de :
un. Le « Connaissance interne des chansons« , qui comprend les caractéristiques/métadonnées extraites de la chanson (par exemple, ambiance, titre, thème, etc…).
b. L’outil de recherche Web, qui permet à l’agent de surfer sur le Web pour rechercher des chansons et ajouter du contexte à la question
Cette conception a du bon la modularité, ce qui signifie qu’il est facile d’ajouter des éléments pour augmenter la complexité du système. Par exemple, si vous souhaitez rendre la génération de chansons plus sophistiquée, vous pouvez facilement modifier l’agent de génération de chansons sans devenir fou des autres parties du code.
Construisons cela pièce par pièce. 🧱
2. Coder
2.1 Configuration
Le code complet peut être trouvé ici Dossier GitHub
La structure de notre travail sera la suivante :
- UN générateur de paroles, ce qui est
generate_madeup_lyrics.py - Le réponse aux paroles, ce qui est
qa.py - Le application Web lui-même (le fichier que nous allons parcourir via Streamlit), qui est
lyricsgpt_app.py - Un tas de aides (tel que
utils.py,constants.py,config.pyetc…)
Les données seront stockées dans un data dossier également.

Je ne veux pas vous ennuyer avec tous les petits détails, je ne décrirai donc que les principaux composants de cette structure. Commençons par le noyau : l’application Streamlit.
2.2 Application simplifiée
Veuillez noter: vous aurez besoin d’un Clé API OpenAI prêt, à la fois pour l’application Streamlit et pour tout ce qui nécessite la génération LLM. En dehors de l’application Streamlit, le moyen le plus simple consiste à la configurer à l’aide du système d’exploitation : os.getenv(« OPENAI_API_KEY ») = « api_key ». Dans l’application, vous serez invité à le copier-coller. Ne vous inquiétez pas, tout est local.
Le tout se déroule avec la commande suivante :
streamlit run lyricsgpt_app.py
Où lyricsgpt_app.py est le bloc de code suivant :
C’est assez long, mais assez simple : chaque ligne représente un élément de l’application Web :
- Le titre de l’application Web
- Le sélecteur de chansonqui permet à l’utilisateur de sélectionner les paroles dans le dossier de données (nous en reparlerons plus tard)
- La case pour le bloc de texte, où l’utilisateur peut copier et coller la partie des paroles qui l’intéresse
- La question boîteoù l’utilisateur peut poser une question sur la partie des paroles qui l’intéresse sélectionnée ci-dessus
- La réponse boîteoù le LLM peut répondre à la question.
Mais c’est « seulement » l’exécuteur testamentaire ; le sale boulot est fait par le lyricsgpt module et ses objets/fonctions. Voyons-en quelques-uns !
2.3 Générateur de paroles
Cette partie est facultative et n’est pas incluse dans l’application Web, qui se concentre sur l’explication des paroles de type Genius. N’hésitez pas à ignorer ceci si cela vous intéresse. Mais je dois le dire : cette partie est plutôt cool.
Pour la génération paroles, le jeu est simple :
- Toi donne-moi un titre, ambiance, thème, et un message caché dans un torsion.
- je te donner le paroles.
Par exemple:
Produit :
Verset 1
Sous les lumières de la ville, des murmures dansaient le long de l’horizon, nous brillions toute la nuit, comme des diamants dans un ciel de minuit. Mais l’amour n’était qu’un rêve en hauteur, construit sur des coutures fragiles, maintenant je quitte l’autoroute, laissant des échos entre les deux.Chœur
Et tout est scintillant dans le rétroviseur, se fondant dans des nuances de bleu, chaque rire et chaque larme disparaissant. Alors que la route avance, je laisse les souvenirs mijoter, ce ne sont que des paillettes dans le rétroviseur, me laissant partir toi et moi.[Some more LLM Generated Text]
Sortie
Alors je roule dans le silence, là où le passé ne peut pas être mal interprété, laissant des paillettes dans le rétroviseur et les éclats de toi et moi. Ce n’est que des paillettes dans le rétroviseur, une histoire d’amour qui s’est terminée trop tôt.
Plutôt cool, non ? Le code pour faire cela est le suivant :
Vous pouvez jouer avec en modifiant SONG_PROMPTSqui ressemble à ceci :
Chaque fois que vous générez une chanson, elle entrera dans un JSON déposer. Par défaut, c’est data/generated_lyrics.json. Vous n’êtes pas nécessairement obligé de générer une chanson ; il y a déjà quelques exemples que j’ai faits là-dedans.
2.4 Explication des paroles
La chose la plus cool de toute cette ère Agentic est le le temps que vous gagnez pour construire ce genre de choses. Le entier La logique question-réponse, ainsi que la capacité de l’IA à utiliser la recherche sur le Web en ligne, se trouvent dans ce bloc de code :
Cela fait tout : répondre la question, lit les métadonnées des paroles, et intègre informations en ligne si vous y êtes invité/nécessaire.
Je ne voulais pas être trop sophistiqué, mais vous pouvez réellement équiper l’agent du web_search outil. Dans ce cas, j’analyse les informations directement ; si vous donnez l’outil au LLM, il peut décider quand et si vous effectuez une recherche en ligne.
Ok, mais est-ce que ça marche ? À quoi ressemblent les résultats ? Découvrons-le !
3. La magie !
Ceci est un exemple d’application Web.
- Vous copiez-collez votre API OpenAI touche, et vous sélectionnez une chanson. Dites « Paillettes dans le rétroviseur ».


2. Sélectionnez la partie qui vous intéresse. Par exemple, disons que je suis un Italien (ce que je suis mdr), et que j’utilise mètresdonc je ne sais pas jusqu’où mile est. J’aimerais aussi savoir s’il y a une référence à quelque chose de précis lorsque le chanteur dit 13 miles (« Treize miles vers la liberté » est la première phrase du pont)

3. Voyez la magie !

Essayons quelque chose de plus dur. Ici, j’ai collé le deuxième couplet en entier et j’ai demandé à l’IA de me donner quel chanteur écrirait quelque chose comme ça.

L’IA le souligne Taylor Swift et Adèle. La référence à Taylor Swift est particulièrement précise, car les chansons sur les ruptures et les histoires d’amour sont ses plus grands succès. Elle parle également de sa popularité et de la façon dont sa vie en est affectée dans des chansons comme « I Know Places » :
Les lumières clignotent et nous courrons vers les clôtures, Laissons-les dire ce qu’ils veulent, nous ne l’entendrons pas
Taylor Swift – Je connais des endroits
J’avoue que j’ai dû chercher ça sur Google.
4. Un peu de réflexion…
Maintenant, c’est loin d’être parfait : c’est un projet de week-end plug-and-play, moins qu’un MVP. Cependant, il propose trois points à retenir :
- Lorsqu’il est doté des bons outils et métadonnées, le LLM brille vraiment et fournit des informations pertinentes (comme la suggestion de Taylor Swift)
- Construire un wrapper LLM est chemin plus facile qu’il y a 5 mois. La façon dont cette technologie évolue vous permet d’être plus productif que jamais.
- L’IA agentique peut vraiment être appliquée partout. Plutôt que d’en avoir peur, il est préférable de l’accepter et de voir ce que nous pouvons en faire.
5. Conclusions
Merci d’avoir passé du temps avec moi ; ça signifie beaucoup ❤️. Voici ce que nous avons fait ensemble :
- Conception d’un système inspiré de Genius alimenté par Agentic AI qui peut expliquer les paroles des chansons de manière interactive.
- Développer les composants backend en Python et Streamlitdu générateur de paroles au moteur de questions-réponses.
- Construction de l’agent IA avec une connaissance interne des chansons et un outil de recherche Web pour des réponses contextuelles.
- Construit un application qui peut interpréter les paroles intelligemment.
- Je me suis bien amusé en faisant ça, j’espère. 🙂
Je veux clôturer avec mes 2 cents. Lors de mes déplacements quotidiens, j’écoute podcasts (généralement des entretiens) de artistes qui font de la musique, et ils expliquent les chansons, les références et les paroles. Si quelqu’un remplace ces musiciens par une IA, je le ferai ÉMEUTE. Pas (seulement) parce que j’aime le personnes eux-mêmes, mais parce que je crois qu’ils expliqueront les choses avec une passion, une profondeur et une empathie que les LLM ne sont pas en mesure de fournir (et je pense qu’ils ne le feront jamais).
Cependant, si nous fournissons aux critiques musicaux ce type d’outils d’IA, leur travail devient beaucoup plus facile et ils peuvent multiplier par 10 leur productivité.
7. Avant de partir !
Merci encore pour votre temps. Cela signifie beaucoup ❤️
Je m’appelle Piero Paialunga et je suis ce type ici :

Je suis originaire d’Italie, je suis titulaire d’un doctorat. de la Université de Cincinnatiet travaille comme Data Scientist chez The Trade Desk à New York. J’écris sur IA, apprentissage automatique et rôle évolutif des data scientists à la fois ici sur TDS et sur LinkedIn. Si l’article vous a plu et souhaitez en savoir plus sur le machine learning et suivre mes études, vous pouvez :
A. Suivez-moi sur Linkedinoù je publie toutes mes histoires
B. Suivez-moi sur GitHuboù vous pouvez voir tout mon code
C. Pour toute question, vous pouvez m’envoyer un email à piero.paialunga@hotmail



