Attention, en cours de rédaction
This post also exists in English
Comme dans un billet précédent, je parlais de la traduction des sous-titres, je vais parler aujourd’hui des noms des chansons et paroles internationales dans les morceaux de musiques.
Je n’ai pas encore trouvé d’outil complet, mais plutôt des briques spécialisées.
Les tags
* eyeD3 est un outil de gestion des tags, permettant différents encodages de caractères dont l’UTF-8.
Le problème (explication un peu longue)
Le problème avec de nombreux tags, c’est qu’en raison des anciens systèmes qui n’avaient pas de technique d’encodage internationale, telle que le propose l’UTF-8,UCS transformation format – 8 bits, terme générique qui par abus de langage, regroupe les encodages UTF-8 et dérivés, UTF-16 (16 bits) et UTF-32 (32 bits), étaient encodées dans les encodages locaux.
Un fichier était alors encodé, pour le mieux en iso local (iso-8859-1 ou iso-8859-15 pour l’Europe de l’Ouest par exemple), pour le pire en encodage Windows (Microsoft tentant de casser les standards pour s’approprier d’avantage de clients, et empêcher ainsi l’innovation qui lui coute cher en développement et réduit les marges). En Chine, c’est encore pire, entre le continent qui à 3 ou 4 encodage du chinois simplifié, Taïwan, Hong-Kong ou Macao qui ont leurs différents standards d’encodage du chinois traditionnel. On peut imaginer le casse tête en Inde qui à un nombre incroyable d’écritures, ou pour les Mongolophones qui ont différents systèmes d’écriture selon le pays dans lesquels ils se trouvent (Mongolie, Mongolie intérieur en Chine ou Tibet, Russie, etc…).
En bref la volonté de l’UTF-8 a donc été d’unifier tout ça. Le problème est que les différents développeurs des différentes régions du monde ne se sont pas encombrés à ajouter un champ qui préciserait l’encodage utilisé dans leur format de donnée, du coup, c’est un vrai casse tête pour unifier tout ça et du coup il existe encore aujourd’hui des applications bornées à leurs encodages locaux qui tentent tant bien que mal de les détecter.
J’écoute personnellement pas mal de musique chinoise et en général d’Asie, et me trouve confronté a un casse tête à chaque fois que je récupère un nouveau morceau sur les sites spécialisés pour en trouver l’interprète, l’album ou tout simplement le titre… Heureusement aujourd’hui, tous les systèmes (Linux et autres UNiX, *BSD*, Wndows, Mac) utilisent tous l’UTF-8 par défaut, et une majorité grandissante d’applications l’utilisent par défaut.
La solution
En général, je cite l’exemple chinois, mais cela peut fonctionner avec les autres langues, je teste les encodages les plus utilisés pour décrypter le titre (si le fichier à un nom dans une langue quelconque en écriture latine).
Une technique pas mal est la suivante :
id3v2 -l fichier.mp3 | grep -v mp3 | iconv -f gbk -t utf8
* id3v2, que l’on trouve sur la majorité des distros, sort les tags du fichier.
* Le grep retire (-v) le nom du fichier.mp3 (au cas où il soit encodé dans un encodage différent, ce qui bloquerait le transcodage du reste).
* iconv fait la conversion du (from) gbk vers le (to) utf8, si cela ne ressemble pas au titre, est illisible ou est beaucoup plus long que cela devrait, il y a déjà des chances pour que ce soit le mauvais encodage.
Un indice pour avoir la liste des encodage. Mozilla/firefox permet d’afficher les encodages les plus courants pour une langue, graçe au menu : Affichage => Encodage des caractères => Plus d’encodages => Région => pays (encodage 1), pays (encodage 2),…
* Pour le chinois simplifié, souvent gb2312, gbk, moins souvent, gb18030, hz, iso-2022-cn, …
* Pour le chinois traditionnel, souvent big5, gbk, moins souvent, euc-tw, big5-gkscs, …
Une fois qu’on a trouvé le bon encodage, on garde les infos dans un coin.
On peut extraire les images intégrées (couverture etc…) avec :
eyeD3 --write-images=/mon/répertoire/
On nettoie ensuite tout ça à l’aide de eyeD3 :
eyeD3 --remove-all fichier.mp3
Et on réinsert en utf8
eyeD3 --set-encoding=utf8 --title 'trucbidule' --artist 'Machin Grochanteur' --album 'Grolanderie' --track 51 --year 2012 --genre 13 51.trucbidule.mp3
* title : titre
* track : piste
* year : année
* genre : style de musique 13: pop, 75: Polka, 137: Heavy Metal etc… (eyeD3 -l affiche la liste complète)
* Le nom du fichier est donné en dernier.
Il permet également d’y intégrer une image (couverture, dos de jaquette, etc…)
eyeD3 --add-image=/mon/fichier.jpg:COVER:"ma belle image"
Ajoute l’image situé dans le chemin /mon/fichier.jpg, COVER est le type (couverture; eyeD3 –list-image-types pour la liste)
Le problème d’EyeD3 est qui’il ne permet pas de gérer les différents formats de lyrics, on en vient donc à LrcShow-X…
* LrcShow-X est un outil de lecture des paroles, synchronisées à la musique sur n’importe quel terminal X.
Il permet de télécharger des lyrics (.lrc, paroles synchronisées), via différents moteurs de recherche, de les sauvegarder sur disque, de les afficher, de les resynchroniser et de les sauvegarder dans le fichier sonore, via tag adéquate (plusieurs formats supportés).