Pour la création de voicebanks pour DiffSinger, un processus de configuration nommé “labeling” (anglais “label”: étiquette) est nécessaire. On peut comparer le labeling au processus d’oto d’UTAU classique car c’est ce qui permet à l’IA d’apprendre quel son (fréquence audio) correspond à quel phonème. Ce tutoriel montrera comment créer un projet de labeling dans le logiciel vlabeler et comment labeler ses fichiers audios.
Avant de commencer le labeling de zéro, vous pouvez consulter le tutoriel sur l’utilisation de LabelMakr ci-dessous qui vous permettra de créer des auto-labels qui pourront vous servir de base et vous faire gagner du temps !
Enregistrer pour DiffSinger
Comment utiliser LabelMakr ?
Logiciel(s)
Ce tutoriel utilise le logiciel open source vLabeler développé par sdercolin. D’autres logiciels, comme Audacity et Wavesurfer peuvent également servir à créer le labeling de votre corpus mais ce tutoriel ne parlera que du processus dans vLabeler.
Télécharger Vlabeler
Télécharger Audacity
Télécharger wavesurfer
Création d’un projet
Avant de créer le fichier de projet avec vLabeler, une certaine structure de fichier est nécessaire. Un projet doit contenir un dossier nommé “wav” avec vos enregistrements (en format .wav), ainsi qu’un dossier “lab” vide, pour la future sauvegarde des fichier .lab contenant les détails du labeling. Note: les fichiers .lab peuvent être ouverts et lus en clair avec le bloc-note de Windows sans problème, ils s’apparentent à des .txt.
Pour le setup du projet .lbp, choisir “New Project” et spécifier le dossier parent contenant les dossiers wav et lab, puis vous pouvez nommer le projet.
Sur la fenêtre suivante, il vous faut choisir “NNSVS”.
DiffSinger fonctionne avec le même principe que NNSVS(ENUNU) au niveau du labeling!
Après cela, aucune autre modification n’est nécessaire, votre projet devrait s’ouvrir et présenter un onglet par fichier audio: nous pouvons procédér au labeling!
Astuce
vLabeler génère un rendu visuel, le spectrogramme et le waveform, de chaque enregistrement. Si vos fichiers sont très longs, ceci peut durer quelques minutes. Pour éviter des grandes pauses d’attente pendant le processus de labeling, vous pouvez faire un prérendu sous Tools > Prerender All Charts…
Le labeling
La liste des .wavs présents dans le projet se trouve en haut de la fenêtre, chaque onglet correspondant au fichier du même nom. En ouvrant le premier wav, un premier label avec le nom du .wav est généralement présent à la toute fin du fichier audio. S’il ne l’est pas, vous pouvez cliquer sur la ligne du label et le glisser jusqu’à la fin.
Dans un premier temps, il est nécessaire de le renommer en “pau” (qui correspond à « pause » c’est comme cela que l’ont désigne un silence); le nom d’une entrée peut être modifié avec CTRL+R.
Chaque fichier doit commencer et finir par un label « pau ».
Nous allons utiliser les outils de curseur ([1 ou &] sur le clavier) et les ciseaux ([2 ou é] sur le clavier).
En mode ciseaux (2), une ligne jaune indique la position visée avec la souris.
Avec un clic, un label est placé sur la position jaune visée et une case de label s’ouvre et vous pouvez y écrire le son correspondant. Une fois le bon phonème mis, le mouvement de la souris suffit pour valider l’input, et le nouveau label est enregistré dans le panneau de droite.
Nous allons répéter ceci pour chaque consonne/voyelle/etc. présent sur l’enregistrement.
Le système Millefeuille utilise la notation Petit Mot (avec quelques modifications pour accomoder le système phonétique). Prière de consulter le tableau ci-dessous pour une vue d’ensemble des phonèmes disponibles.
Astuce
vLabeler fait des sauvegardes automatiques régulièrement, mais le raccourci pour sauvegarder est CTRL+S 🙂 C’est une bonne habitude à avoir !
Comment faire quand certains sons se mélangent ?
Par exemple lors de la prononciation de « j’suis », faut-il mettre « j + s » ou « sh » ? Ceci est, comme les préférences d’oto, une question de style. Il faut toujours garder en tête que l’IA entraîne le comportement des voyelles et consonnes selon le contexte !
Les phonèmes spéciaux
Dans le contexte de DiffSinger, chaque spécialité vocale reçoit son propre phonème – nous avons déjà rencontré la première avec « pau »! D’autres sont utilisées pour les « glottal stops », des inspirations, etc.
Le mini-tableau suivant explique ces phonèmes spéciaux:
Phonème | Explication |
q | glottal stop (« arrêt glottal ») |
vf | vocal fry |
cl | élongation de consonne |
exh | expiration non-voisée |
axh | expiration voisée |
ctrash | consonne à ne pas prendre en compte |
vtrash | voyelle à ne pas prendre en compte |
pau | pause |
sil | silence complet; l’utilisation de ce phonème n’est pas recommandée, plutôt utiliser [pau] |
AP | pause avec aspiration |
SP | pause silencieuse |
Astuce
Une pause peut contenir des longs silences et des inspirations/expirations.
Pour les consonnes en début de phrase, il est conseillé d’inclure un peu de silence avant le début du son. De même pour les voyelles mais dans une moindre mesure (mettre trop de silence avant les voyelles de début de phrase peut fausser leur timing une fois dans OpenUtau).
“ctrash”/”vtrash” sont utilisées pour ignorer des mauvaises consonnes et voyelles lors de l’entraînement que l’on n’a pas pu enlever lors de la phase de nettoyage de l’audio (quand elles sont au milieu d’une ligne chantée par exemple.
Le curseur (1) peut être utilisé pour cliquer et glisser les lignes des labels, afin de corriger le timing.
Procéder à l'entrainement
Et après...?
Procéder à l'entrainement
La section suivante est en construction!
Plus d’exemples de labeling seront ajoutés au fur et à mesure.
Nous travaillons activement sur des tutoriels pour l’entrainement IA. En attendant, vous pouvez consulter ces guides (en anglais seulement):
- SVS Singing Voice Database – Tutorial de PixPrucer
- DiffSinger LIEE – Immortal Idol Production Guide de julieraptor
Tableau des phonèmes
IPA | X-SAMPA | |
Voyelles | ||
ah | a/ɑ | a/A |
eh | e | e |
ae | ɛ/ɛː | E |
ee | ə/ø | 2 |
oe | œ | 9 |
ih | i | i |
oh | o | o |
oo | ɔ | O |
ou | u | u |
uh | y | y |
en | ɑ̃ | a~ |
in | ɛ̃/œ̃ | e~/9~ |
on | ɔ̃ | o~ |
un | ||
Semi-voyelles | ||
y | j | j |
w | w | w |
uy | ɥ | H |
Consonnes | ||
b | b | b |
d | d | d |
f | f | f |
g | g | g |
k | k | k |
l | l | l |
m | m | m |
n | n | n |
p | p | p |
r | ʁ | R |
s | s | s |
sh | ʃ | S |
t | t | t |
v | v | v |
z | z | z |
j | ʒ | Z |
Extras | ||
q | ʔ | |
vf | ||
cl | ||
exh | ||
axh | ||
ctrash | ||
vtrash | ||
pau | ||
sil | ||
AP | ||
SP |
Anglais | IPA | X-SAMPA |
Voyelles | ||
ax | ə | @ |
ay | aɪ | aI |
ey | eɪ | eI |
ow | oʊ | oU |
aa | ɑ~ɒ | A |
ae1 | æ | { |
ah1 | ʌ | V |
ao | ɔ | O |
eh1 | ɛ | E |
er | ɝ | 3` |
ih1 | ɪ | I |
iy | i | i |
oy | ɔɪ | OI |
uh1 | ʊ | U |
uw | u | u |
aw | aʊ | aU |
Consonnes | ||
tr | ||
tx | ||
dh | ð | |
dr | ||
dz | ||
h | ||
ch | ||
th | ||
ng | ||
rh | ||
jh |
Japonais | IPA | X-SAMPA |
a | a | a |
i | i | i |
e | e | e |
o | o | o |
u | ɯ | M |
nn | n | n |
dx | ɾ | 4 |
Espagnol | IPA | X-SAMPA |
Consonnes | ||
rr | r | rr |