Virtual Singer
Edition des phonèmes
|
|
Très important : Ce chapitre fait appel à des
notions avancées de traitement numérique du signal.
Il est donc nécessaire de posséder quelques connaissance
en acoustique ainsi que des notions de traitement du signal pour en tirer
parti.
|
|
Nous avons vu que les phonèmes
sont considérés comme les entités acoustiques élémentaires
composant la voix parlée ou chantée (voir chapitres "Aspect
technique de la voix")
Virtual Singer utilise des algorithmes
complexes afin de synthétiser des phonèmes reconnaissables.
Cette synthèse, dite par formants, utilise des calculs
internes originaux, inspirés notamment des écrits de D.
Klatt(voir bibliographie), ainsi que
d'autres publications.
L'algorithme a été mis au point et affiné grâce
aux résultats de recherches propres dans le domaine de la restitution
de la voix chantée.
Dans l'édition du timbre de la voix, un bouton “Avancé"
ouvre la boîte de dialogue vous permettant de redéfinir les
phonèmes. Les modifications que vous pouvez apporter sont limitées
au chanteur en cours d'édition : la manière de prononcer
les phonèmes des autres chanteurs ne sera pas modifiée.
Un peu de technique | |
|
Question : Comment
Virtual Singer produit-il un phonème ? |
|
Un signal numérique d'excitation (historiquement appelé
source glottale) est généré, en fonction du volume
et de la fréquence fondamentale du phonème. Ce signal est
constitué d'une demi-période parabolique, et d'une demi-période
de silence (arrêt glottal). Les harmoniques n° 1 (fréquence
fondamentale), 2 (double de la fréquence fondamentale) et 3 (triple
de la fréquence fondamentale) de ce signal sont alors amplifiées,
afin de se rapprocher du rendu sonore d'une source vocale chantée.
Cette source est ensuite plus ou moins amplifiée selon la valeur
de vocalisation.
Le traitement numérique de ce signal se divise ensuite en deux
:
Le traitement en cascade, dans lequel
à la source glottale est ajouté le bruit dit d'aspiration.
Cette source est alors traitée par un réseau de filtres
placés en série (cascade), chaque filtre correspondant à
un formant.
Le traitement en parallèle, où à la source
glottale, est ajouté le bruit dit de frication. La dérivée
d'ordre un de cette source est alors traitée par un réseau
de filtres placés en parallèle, chaque filtre correspondant
à un formant. L'amplitude de chaque formant est prise en
compte afin d'augmenter plus ou moins l'influence de tel ou tel formant.
Les résultats de ces deux traitements sont alors additionnés,
puis éventuellement modulés par une pulsation à basse
fréquence (20 Hz) destinée à reproduire les effets
de roulé (son "R" espagnol par exemple).
Après amplification et réglage des graves et des aigus,
le signal numérique résultat est enfin prêt.
Concrètement, cet algorithme a plusieurs implications majeures
sur la restitution d'un phonème :
-
L'amplitude de chaque formant n'est prise en compte que dans
la partie parallèle du traitement. Donc, même si l'amplitude
d'un formant est nulle, ce formant continuera encore à avoir un
effet sur le signal résultat, de par son action sur la partie cascade.
-
Le bruit d'aspiration passe à travers le réseau de
filtres en cascade. Il est donc grandement influencé par
les formants du phonème et produit un bruit plus filtré (plus
sourd), qui peut simuler les bruits de souffle produits loin en
arrière dans le conduit vocal.
-
La dérivée d'ordre un du bruit de frication passe
au travers du réseau de filtres en parallèle. Il en
résulte donc un bruit plus aigu, propre à simuler les bruits
de sifflement produits par l'avant de la bouche.
Les fragments | |
L'élément de base de la phonétique
est le phonème. Or, nous avons pu voir que certains phonèmes
complexes, tels que les diphtongues, pouvaient être constitués
de plusieurs états successifs.
Ceci nous a donc amené à définir la notion de
fragment, représentant un état "fixe" au sein d'un
phonème.
De ce fait, un phonème peut être défini
par un ou plusieurs fragments.
Dans la liste de gauche, vous trouverez la liste de tous les fragments
qui peuvent être prononcés, quelle que soit la langue utilisée.
Les fragments apparaissant en gras sont ceux utilisés
dans la langue courante.
|
Note importante :
Dans cette fenêtre, il est possible
de modifier la manière de prononcer un ou plusieurs fragments.
Cette modification
est spécifique à la voix du chanteur en cours d'édition.
La modification d'un fragment dans cette fenêtre
n'altérera que la prononciation de ce chanteur et pas celle
des autres. |
|
Lorsqu'un fragment a été modifié, il apparaît
en couleur dans la liste. Lorsque vous vous positionnez sur un fragment
modifié, il est possible de retrouver les valeurs par défaut
en cliquant sur le bouton Original au-dessous de la liste.
Dans la partie droite de la boîte, plusieurs objets graphiques
vous permettent de modifier les données du fragment
En haut de cette fenêtre, un menu déroulant donne le type
du fragment. Le type voyelle signifie que ce fragment peut être
allongé lorsque la syllabe qui le contient est prolongée
dans le temps.
S'il n'y a pas de voyelle dans la syllabe,
Virtual Singer essaiera ensuite d'allonger les fragments de type voyelle
de transition.
A défaut, il essaiera d'allonger les consonnes vocalisées,
puis les consonnes non vocalisées.
La durée du fragment peut être éditée
par un curseur.
Cette durée est la durée naturelle du fragment.
Si le fragment est allongé, sa durée sera augmentée.
|
Note :
Lorsqu'un paramètre est édité
de manière graphique, sa valeur numérique apparaît
dans un cadre en bas à droite de la fenêtre. |
|
La partie statique du fragment | |
Il s'agit de l'ensemble des paramètres définissant
le fragment dans sa partie statique, c'est-à-dire indépendante
des transitions avec les fragments adjacents.
Ces paramètres sont édités
dans la grande aire graphique dans la partie droite de la fenêtre.
Les formants sont représentés par des triangles.
Pour chaque formant, la fréquence médiane (en Hertz),
l'amplitude (en dB) et la bande passante (base du triangle,
en Hz) peuvent être éditées.
Une série de petits boutons sous ce graphique permettent d'activer
ou de désactiver chacun des formants dans la partie parallèle
du générateur de voix.
|
Note :
Comme nous l'avons vu plus haut, même
si un formant est désactivé et n'apparaît pas sur le
graphique, sa fréquence et sa bande passante sont
utilisés dans la partie cascade du générateur
de voix. |
|
Sur la droite, une série de curseurs verticaux permettent de régler
les niveaux de vocalisation (av), de roulé (Rl), d'aspiration
(asp) et de frication (af).
|
Astuce :
Lors de l'édition graphique de
la fréquence médiane ou de la bande passante
d'un formant, deux barres verticales apparaissent, montrant la borne basse
et la borne haute rencontrées pour ce paramètre dans
la totalité des fragments.
Ceci vous permet de contrôler que vous
ne donnez pas à ce paramètre une valeur trop "exotique" |
|
Les graphes d'évolution du fragment | |
Pendant une séquence parlée ou chantée, le passage
d'un fragment à l'autre n'est pas instantané. En effet, l'articulation
du fragment suivant débute avant que celle du fragment précédent
ne soit totalement terminée. Cette transition douce entre les fragments
s'appelle la coarticulation.
Le graphe d'évolution permet, pour chacun
des paramètres définissant un fragment (fréquence
des formants, amplitude, bande passante et les différents niveaux)
de définir sa courbe d'évolution dans le temps. Le
paramètre dont la courbe est en cours d'édition apparaît
cerclé de rouge dans le graphique supérieur.
Pour chaque paramètre, vous pouvez donc définir une courbe
d'évolution qui lui est propre, en utilisant la zone graphique du
bas de la fenêtre.
Sur ce graphique, par convention, la valeur précédente
du paramètre est représentée par l'ordonnée
la plus basse.
La valeur statique du fragment en cours d'édition (définie
dans le graphique supérieur) est représentée par l'ordonnée
la plus haute.
|
Note : ceci est
une présentation symbolique qui n'a pas de rapport avec la grandeur
effective du paramètre. |
|
L'évolution du paramètre depuis la valeur précédente
jusqu'à la valeur statique du fragment est définie par deux
segments :
Un premier segment, à gauche, dont la durée
est "empruntée" au fragment précédent.
Il va faire évoluer le paramètre depuis la valeur statique
du fragment précédent jusqu'à une valeur intermédiaire
définie par les deux curseurs verticaux à gauche du graphique.
Le curseur Ratio (Ra) permet de définir l'importance
que vous donnez à la valeur précédente du paramètre
par rapport à la valeur à atteindre dans le calcul de la
valeur intermédiaire.
Exemple : un ratio de 0 % fixe la valeur intermédiaire directement
à la valeur à atteindre.
Un ratio de 100 % fixe la valeur intermédiaire
à la valeur précédente du paramètre.
Un ratio de 50 % fixe la valeur intermédiaire à la moyenne
de la valeur précédente et de la valeur à atteindre.
Le décalage de départ (Od) permet d'ajouter une
valeur fixe à la valeur intermédiaire.
Exemple : pour un ratio (Ra) de 50 % et décalage (Od) de 100,
la valeur intermédiaire sera égale à 100 + la moyenne
de la valeur précédente et de la valeur à atteindre.
Sur le schéma, le deuxième segment donne la durée
de transition entre la valeur intermédiaire et la valeur statique
à atteindre (plateau). Cette durée est empruntée au
fragment courant.
Symétriquement, deux segments à droite, ainsi que
deux curseurs, permettent de définir la transition du paramètre
depuis sa valeur statique courante jusqu'à la valeur statique du
fragment suivant.
Nous venons de voir que pour chaque paramètre
d'un fragment on peut définir sa courbe d'évolution depuis
la valeur du fragment précédent et vers la
valeur du fragment suivant.
Chacune de ces deux courbes d'évolution ne sera utilisée
que si le fragment courant a une priorité supérieure
au fragment qui le jouxte. La priorité est donnée par la
position du fragment dans la liste des fragments. Plus le fragment
est haut dans la liste, plus la priorité est grande.
Exemple :
Ainsi, si nous avons une liste contenant trois fragments : "a,
b, c" classés dans cet ordre, et si la syllabe à prononcer
est "bacb", on obtiendra, pour chaque paramètre des fragments, l'évolution
suivante :
-
valeur statique du fragment "b"
-
évolution vers la valeur du fragment "a" donnée par
les deux premiers segments de la courbe d'évolution de "a" (car
"a" est prioritaire par rapport à "b"),
-
valeur statique du fragment "a"
-
évolution vers la valeur du fragment "c" donnée par
les deux derniers segments de la courbe d'évolution de "a" (car
"a" est prioritaire par rapport à "c"),
-
valeur statique du fragment "c"
-
évolution vers la valeur du fragment "b" donnée par
les deux premiers segments de la courbe d'évolution de "b" (car
"b" est prioritaire par rapport à "c"),
-
valeur statique du fragment "b".
Les boutons d'action | |
Ces boutons, situés en bas à
droite de la fenêtre, vous permettent d'effectuer un certain nombre
d'actions :
Bouton Essayer
Permet d'essayer vos fragments grâce à une phrase
d'essai simple comme déjà rencontré précédemment.
Par contre, lorsque vous cliquez sur le bouton Essayer, la liste
des fragments utilisés pour prononcer le texte apparaît.
Les signes > et < séparant les fragments indiquent
la priorité respective des fragments les uns par rapport aux autres..
A noter : lorsque vous changez de fragment dans la liste, un mot d'exemple
utilisant ce fragment est aussitôt inséré dans la zone
de texte.
Menu déroulant de changement de langue
Lorsque vous choisissez une autre langue, les fragments utilisés
dans cette langue apparaissent en gras dans la liste des fragments.
Boutons "copier/coller"
permettent de copier l'ensemble des paramètres d'un
fragment et leur évolution, puis de les coller ensuite sur un autre
fragment. |