Introduction à Sinsy, un synthétiseur vocal libre et gratuit

View this post in english


Il vous est sans doute arrivé d'utiliser ou de vouloir utiliser la synthèse vocale pour vos compositions musicales, potentiellement via les grands noms du secteurs comme Vocaloid, CeVIO, UTAU, Alter/Ego.

Cependant, du côté des logiciels libres, gratuits et/ou du support natif Linux, c'est un peu la dèche. Alors, il y a bien e-cantorix, mais il manque un peu en réalisme face aux autres.

Étant moi même un linuxien convaincu, et ayant eu besoin d'une piste vocale de remplacement sur morceau, je me suis retrouvé un peu embêté par le peu de solutions disponibles.

C'est alors que je suis tombé sur Sinsy, un synthétiseur vocal libre et gratuit, injustement peu connu, qui donne des résultats plutôt sympas. Pour vous permettre de faire vous aussi vos premiers pas, je vous propose un petit guide rapide.

Un petit teaser pour démarrer

Bon allez, je papote et tout et tout, mais en attendant, vous n'avez toujours rien entendu.

Voici un petit échantillon de ce que Sinsy peut faire.

Extrait de partition envoyé à sinsy
Extrait de partition envoyé à Sinsy.
Paroles de Leyra Kagiyama, mélodie de Kirin&ZUN

C'est sympa, n'est ce pas ?

C'est un petit extrait du remix dont je parlais en intro:

Et maintenant, regardons dans le détail comment aboutir au même résultat.

Sinsy en quelques mots

Pour situer un peu, Sinsy est un synthétiseur vocal en licence libre (une BSD modifiée plus précisément) avec une page sur sourceforge : http://sinsy.sourceforge.net ainsi qu'une démo sous forme de service web : http://sinsy.jp

La démo en service web utilise une version du moteur de synthèse bien plus récente que celle disponible publiquement sur sourceforge. Les développeurs m'ont indiqué mettre à jour graduellement le repository publique.

D'un point de vue technologique, Sinsy utilise un Modèle de Markov Caché (MMC) pour apprendre de voix humaines de référence et regénérer des voix synthétiques en fonction d'une partition. En revanche, contrairement à UTAU, par exemple, la phase d'apprentissage n'est pas vraiment à la portée de nous autres, simples mortels. On laissera donc cette tâche à l'équipe de recherche qui nous a pondu ce moteur de synthèse.

Les paroles

Effectivement, pour commencer, il vous faut des paroles. Dans mon cas, je m'intéressais aux paroles en japonais, mais ne vous inquiétez pas, le service web Sinsy gère aussi l'anglais et le mandarin (Si le support du français est primordial, vous pourrez vous tourner vers Alys, propriétaire mais qui fonctionne bien sous Linux via un bridge wine VSTi).

Préparez vos paroles, dans n'importe quel éditeur de texte, avec les syllabes séparées par des espaces (je reviendrai là dessus plus tard) et réservez pour tout à l'heure.

Dans le cas particulier des paroles en japonais, pour pouvoir les saisir, vous pouvez :

Il reste une étape importante dans la préparation des paroles, elles doivent être écrites telles qu'entendues. Par exemple, dans こんにち se prononce wa alors qu'il s'écrit comme ha, du coup, il faut utiliser こ ん に ち comme paroles.

La mélodie

Sinsy utilise en entrée une partition au format MusicXML annotée avec des paroles. Pour faire cela, on pourrait utiliser n'importe quel éditeur de partition, mais je vais vous présenter les étapes avec un édtiteur libre tant qu'à faire.

Filons installer MuseScore, il est sans doute empaqueté pour votre distribution Linux, à défaut, vous trouverez plusieurs paquets binaires sur leur site. Si vous ne connaissez pas du tout MuseScore, il y a une section de démarrage rapide dans leur documentation. Grosso modo, vous avez juste besoin de savoir qu'on ajoute une note avec n puis c, d, e, f, g, a, b, qu'on quitte le mode insertion avec ESC (et oui, même en composant, on n'échappe pas à vi), qu'on crée des liaisons de phrasé avec s, des liaisons de prolongation avec + et des paroles avec Ctrl + l.

À ce point, vous pouvez soit saisir les notes manuellement (avec les raccourcis clavier ou la souris) ou importer un fichier midi (depuis votre DAW typiquement).

Il faut faire attention à n'utiliser que la voix numéro 1, car Sinsy ne prend que celle ci en considération.

Enfin, il faut laisser un silence avant et après votre mélodie (une mesure de silence de chaque côté va très bien). C'est lié au fait que le moteur de synthèse vocal peut vouloir démarrer l'audio un poil avant la note notée sur la partition pour plus de réalisme (idem pour la dernière note).

On mixe tout ensemble

Il est temps d'ajouter les paroles à notre mélodie. Commencez par copier vos paroles le presse papier.

Puis sélectionner la première note dans votre partition et basculer en mode édition de paroles avec Ctrl + l.

Vous maintenant coller vos paroles. MuseScore ne consomme dans le presse papier que jusqu'au prochain espace. Ce qui signifie qu'on peut poser son chat sur Ctrl + V et le laisser remplir les paroles de notre partition avec le contenu du presse papier.

À noter que qu'on a une liaison de prolongation (donc entre 2 notes de même hauteur, pour additionner leurs durées), il ne faut de parole que sur la première (sinon, Sinsy répète la consonne à chaque occurrence de la syllabe).

À ce stade, votre partition devrait ressembler à ça :

extrait de partition fourni à Sinsy
Extrait de partition fourni à Sinsy.
Paroles de Leyra Kagiyama, mélodie de Kirin&ZUN

Vous pouvez maintenant exporter votre partition au format MusicXML via l'entrée de menu Fichier > Export.

C'est l'heure de synthétiser

Votre partition en MusicXML peut maintenant être envoyé au service web manuellement en passant par cette page : http://sinsy.jp. L'envoi de la partition s'accompagne du choix de la langue du morceau, de la voix, d'un paramètre définissant le genre, de la puissance du vibrato et de la transposition.
Sinsy va ensuite générer générer un fichier .wav (entre autre) et l'afficher la page de résultat.

Vous pouvez également utiliser un petit script que j'ai codé spécifiquement pour faciliter l'envoi au service web: sinsy-cli. C'est un script python en ligne de comande qui accepte une ou plusieurs partitions au format MusicXML, envoie le tout au serveur du service web tout en limitant la vitesse afin de ne pas surcharger le serveur et télécharge le résultat au format .wav

Vous pouvez installer sinsy-cli en tapant:

  1. pip install sinsy-cli

La page du projet est https://gitlab.com/zeograd/sinsy-cli, c'est un petit script assez simple avec des valeurs par défaut "qui vont bien"©. Il suffit de donner le fichier MusicXML à convertir en ligne de commande pour recevoir le .wav (je suppose qu'un glisser déposer depuis un explorateur de fichier d'une partition sur le script devrait également fonctionner). Il y a une petite documentation sur la page du projet

Notes de fin

Maintenant que vous avez vos fichiers .wav représentant vos paroles et votre mélodie, il ne reste plus "qu"'à les injecter dans votre DAW et les traiter comme s'ils étaient issus d'enregistrements studio.

La licence nécessite de créditer Sinsy lorsque vous rendez vos œuvres publiques. Ne l'oubliez pas.

Par expérience, le silence initial dans le .wav ne correspond pas toujours à celui demandé dans la partition. Ne soyez pas surpris si certains fichiers doivent être recalés manuellement.

Il resterait d'autres fonctions avancés à discuter (liaisons de phrasés, respirations, ...) dans ce sera l'occasion d'un autre billet si vous en manifestez l'intérêt.

En attendant, c'est l'heure de faire du bruit :)