Comment identifier un morceau de musique sous Linux avec Songrec et Shazam ?

par Korben -

Dans les temps immémoriaux, les humains avaient l’habitude de se retrouver en soirée pour discuter, boire, danser, manger…etc. Je sais, personne ne s’en souvient, mais croyez-moi sur parole. Et à cette époque, certaines personnes officiaient en tant que troubadours. Appelés communément artistes ou encore musiciens, ces courageuses personnes permettaient à leurs pairs de danser, de s’amuser… Seulement voilà, à l’époque, un problème était assez récurrent :

C’est quoi ce morceau de musique ?

Bah je ne sais pas, attends, je lance Shazam !

Oui, Shazam, une application venue des enfers qui permettait dans ces fameuses soirées de connaître le nom du ménestrel interprétant la mélopée streamée. Magie du démon ? Oeuvre d’une sorcière maléfique ? Que nenni !

Shazam est capable de reconnaitre un morceau à partir d’un spectrogramme qu’il génère, pour cartographier ensuite les pics de fréquence correspondant à des moments “clés” de la chanson (harmoniques, voix, certains instruments). Cartographie qu’il compare ensuite avec sa base de données.

Pratique ! Mais comment faire, quand on est Linuxien pour Shazamer un morceau sans smartphone ?

Et bien la réponse s’appelle SongRec. Il s’agit d’un client Shazam libre développé en Rust qui est capable d’identifier une oeuvre à partir d’un fichier importé ou de ce qui est capté dans votre micro. SongRec dispose d’une interface graphique basique, mais peut-être également utilisé en ligne de commande.

Une fois le morceau reconnu, l’application vous affichera son titre et son interprète ainsi que la pochette de l’album ou du single.

Pour installer Songrec, vous pouvez tout simplement ajouter le dépôt comme ceci puis lancer le programme :

sudo apt-add-repository ppa:marin-m/songrec -y -u sudo apt install songrec -y songrec

Ou passer par le flatpak :

sudo apt install flatpak -y flatpak remote-add --user flathub https://flathub.org/repo/flathub.flatpakrepo --if-not-exists flatpak install --user flathub com.github.marinm.songrec -y flatpak run com.github.marinm.songrec

SongRec dispose aussi d’une fonctionnalité amusante de génération d’un leurre pour “tromper” Shazam à partir d’un morceau. En gros, vous pouvez tout simplement écouter ce fameux spectrogramme qui reprendra uniquement les fameux moments clés. Ça donne un genre de morceau 16bits de la chanson… je suis sûr que ce leurre peut même se remixer… haha.