IRCAM - Centre PompidouServeur © IRCAM - CENTRE POMPIDOU 1996-2005.
Tous droits réservés pour tous pays. All rights reserved.

CHANT - de la synthèse de la voix chantée à la synthèse en général

Xavier Rodet, Yves Potard, Jean-Baptiste Barrière

Rapport Ircam 35/85, 1985
Copyright © Ircam - Centre Georges-Pompidou 1985


Introduction

Le projet CHANT s'est à l'origine attaché à l'analyse et à la synthèse de la voix chantée. Ce travail devait conduire à l'élaboration d'un programme complexe de synthèse par règles, CHANT, muni d'un environnement en perpétuelle expansion, constitué de programmes d'analyses diverses et de sous-programmes compositionnels (décrivants aussi bien le matériau que l'organisation). En effet, à l'objectif initial de synthèse de la voix chantée devaient bientôt se superposer des objectifs plus larges. Ces objectifs s'articulent autour de la recherche de modèles des processus mis en jeu dans les productions musicales. Cette recherche passant par la définition et l'élaboration d'algorithmes qui portent:

Cette recherche de modèles a pour but de permettre ce que nous considérons comme l'aboutissement et le dépassement de la simulation: l'extrapolation de nouveaux modèles créatifs pour la musique, à partir des modèles cognitifs élaborés grâce à la méthodologie de la synthèse par règles. La synthèse étant alors aussi bien l'épreuve de notre compréhension du fonctionnement des phénomènes, que celle de la musique elle-même. Nous réexaminerons donc la problématique de la synthèse de la façon suivante:

1. Reconsidération des techniques et des programmes et choix d'un modèle de production

1.1 Reconsidération des techniques et des programmes

Depuis les débuts de la musique par ordinateur, de nombreux programmes et techniques ont été proposés et utilisés. Examinons les raisons qui peuvent avoir suscité le choix de certaines orientations ou méthodes.

Par exemple:

De ces remarques nous retenons d'abord qu'il faut rendre l'instrument informatique d'un emploi au moins aussi immédiat que le matériel analogique, et même plus, puisque le logiciel permet une «intelligence» presque sans limites. Nous en déduisons également qu'il faut essayer de tirer profit des richesses spécifiques des différentes techniques en choisissant de les appliquer en fonction de leurs idiomaticités. Cependant il est indispensable que l'utilisateur puisse disposer d'un formalisme unique pour unifier leur emploi, afin de supprimer les difficultés d'accès et de compréhension spécifiques à chacune. Enfin nous pensons qu'il faut rendre possible une réalisation des fonctions d'interprétation et d'interactions son-organisation. En effet, nous pensons qu'il ne doit pas y avoir, d'un côté des sons figés, et de l'autre une structure externe qui les organise. Mais au contraire, que les sons doivent se former en fonction de la place qu'ils occupent dans un certain contexte et qu'alors la structure nait de leurs différentes actualisations dans ce contexte, au point que chacun peut influer en retour sur la mise en jeu de tous. Ainsi, les sons se trouvent être simultanément objets et sujets de l'organisation.

Ce sont ces remarques qui nous ont amenés à envisager, d'une part le choix d'un modèle de production, la voix, et d'autre part le choix d'une méthodologie, la «synthèse par règles».

Le choix de la voix comme modèle de production s'impose du fait de sa richesse extrême, qui par la multiplicité de ses productions, la variété des utilisations musicales et langagières qui en découlent, sucite et permet une approche plus générale et féconde que l'étude d'un autre instrument aussi complexe soit-il. C'est ainsi la nécessité de rendre compte pleinement de la complexité des variations du modèle vocal, et plus particulièrement du résonateur, qui va forcer à atteindre la généralité qui ultérieurement permettra de dériver vers d'autres modèles pourtant très différents.

Nous allons donc maintenant envisager le fonctionnement de l'appareil vocal et sa modélisation pour examiner ensuite les choix qui ont été faits à partir de cette référence pour la réalisation du synthétiseur et du programme «CHANT».

1.2 Description du fonctionnement de l'appareil vocal: un modèle de production

L'onde sonore de la voix est produite par un flot d'air expiré par les poumons dans le conduit vocal, du larynx aux lèvres et narines, et perturbé de différentes façons. Ces perturbations à l'intérieur de l'appareil vocal constituent des sources sonores. Une première source est constituée par la vibration des cordes vocales, modulant périodiquement le flot d'air expiré à travers le larynx, les sons ainsi produits sont quasi-périodiques et dits voisés. Un deuxième type de source résulte d'un rétrécissement du conduit buccal en certains points, lèvres, languepalais et glotte éventuellement pour les sons chuchotés. Le flot d'air devient turbulent et produit un son non-périodique dit fricatif. Un troisième type de source est obtenu en interrompant le flot d'air, en fermant le conduit buccal avec les lèvres ou la langue, et en les relâchant brusquement. Un bruit d'explosion est ainsi produit, le son est alors dit plosif. Les sons issus de ces sources sont modifiés par le conduit vocal lui-même, qui agit comme un ensemble de résonateurs en filtrant plus ou moins certaines fréquences, ce qu'on traduit par la fonction de transfert du conduit vocal. En fait, pendant l'émission d'une phrase le conduit vocal change continuellement de forme et donc de fonction de transfert, qui ne peut être définie par conséquent qu'à un instant donné. De plus, chaque type de source est susceptible d'entrer en action de façon plus ou moins indépendante, pour des durées et avec des caractéristiques qui varient aussi continuellement. Finalement, une phrase est le résultat de l'ensemble de ces actions, des sources et des mouvements des articulateurs (langue, lèvres, etc.) qui déforment le conduit vocal de façon continue. Le signal sonore correspondant résulte de l'enchaînement des phonèmes successifs, voyelles et consonnes, qui interagissent de façon telle (coarticulation) qu'on ne peut placer de frontière précise pour les délimiter.

La production de la parole, comme celle de nombreux sons ou signaux, est donc souvent représentée par un modèle comportant une source d'excitation et un filtre linéaire, non couplés (cependant il est souhaitable, sinon indispensable, que de tels couplages soient pris en compte: cf. (Carré) et (G. Weinreich).

Le filtre F1, généralement linéaire, est caractérisé par sa fonction de transfert H1 qui varie continuellement (Fig.1). Elle tient compte notamment des caractéristiques du système matériel qui est excité (conduit vocal, caisse de résonance, etc.) et de son rayonnement sonore.


Figure 1 - Amplitude (log) de la fonction de transfert H1.

Figure 2 - Amplitude (log) du spectre de la source voisée P.

Dans le cas de la voix, le modèle comporte une source périodique P pour les sons voisés et une source aléatoire s pour les sons fricatifs ou plosifs et pour le souffle. Une source est caractérisée essentiellement par son spectre d'amplitude (Fig.2). On peut le décrire également au moyen d'un filtre F2 qui représente son enveloppe, et d'une source P2 (et s2) à spectre plat X(f). Les deux filtres F2 et F1 en cascade peuvent alors être regroupés en un seul filtre F. Le spectre de l'onde résultante est alors le produit du spectre de la source par le gain du filtre:

Y [f) = X (f) . H (f) (Fig.3)

Figure 3 - Amplitude (log) du spectre de la forme d'onde de sortie.

Le cas d'une source glottale montre bien l'intérêt, d'un modèle de production ([Fant] et [Rothenberg]). Mais si on se limite à un tel modèle, on n'obtiendra qu'une famille limitée de sources. Pour des applications musicales, l'imagination ne doit pas être limitée. Il est donc intéressant de formaliser ce modèle dans le domaine spectral, puis de l'inclure dans un modèle plus général décrivant le spectre de la source. Ce modèle général est contrôlé par des paramètres directement liés aux caractéristiques du spectre dont on peut prévoir facilement les conséquences perceptives. A titre d'exemple: dans chaque bande de fréquence, amplitude et pente de l'enveloppe spectrale, rapport des amplitudes des harmoniques pairs et impairs, inharmonicité, variations aléatoires, etc.

Le conduit vocal est une sorte de tube d'environ 17 cm de long, de section variable, avec une dérivation vers le conduit nasal. De façon simplifiée, il peut être assimilé à une série de N résonateurs en cascade et M en dérivation. Son gain ou fonction de transfert présente donc en général N maxima appelés formants. Le caractère plus ou moins pointu de ces maxima est mesuré par leur largeur de bande à mi-hauteur du sommet (- 3 db).

Le spectre d'amplitude de l'onde sonore émise présente donc lui aussi, en général, des maxima correspondant aux formants. L'importance de ces formants tient non seulement à ce qu'ils dérivent de la forme du conduit vocal à chaque instant (pour chaque articulation), mais encore à leur prépondérance au niveau perceptif: en raison des propriétés de l'oreille (masquage notamment) les parties du spectre qui présentent de tels maxima sont bien représentées par la fréquence, l'amplitude et la largeur de bande des formants.

Nous allons examiner les détails de deux implémentations de la technique de synthèse, par filtres numériques et par fonctions d'onde formantiques. Puis nous comparerons ces deux implémentations.

2. Le synthétiseur chant

2.1 Filtre numérique

Un filtre tel que F peut être représenté par sa fonction de transfert en z:

H(z)=( 0+ 1z-1 +...+ qz-q)/(1+1 z-1+ ... + pz-p)

qui comporte p pôles et q zéros. C'est le cas par exemple en prédiction linéaire ([Moorer]). La réalisation d'un tel filtre numérique et le calcul de ses paramètres a et b présentent des difficultés dont nous parlerons ultérieurement. En conséquence, on peut utiliser une autre forme:

H(z)=ci(1+diz-1) / (1+aiz-1+bi z-2).

Le filtre H se présente alors comme un ensemble de J cellules en parallèle (Fig.4). Chaque cellule est constituée d'un filtre du 1er ordre (un zéro) et d'une section du 2eme ordre (2 pôles) en série, avec un gain c.


Figure 4 - Représentation du filtre en parallèle H.

Chaque cellule est de réalisation très simple. Le calcul des paramètres est aussi beaucoup moins complexe. Enfin ils permettent de contrôler directement et de façon simple les caractéristiques perceptuellement intéressantes de l'enveloppe du spectre (Fig.5):


Figure 5 - Amplitude (log) des différentes fonctions de transfert d'une cellule.

2.2 Fonctions d'onde formantiques (FOF)

Si l'excitation est une succession d'impulsions:

E (k) = en(k)

(où n indexe les impulsions successives), alors la réponse S du filtre précédent peut être calculée facilement comme la somme des réponses sn(k) décalées d'une période du fondamental T = 1 /FO (FO est la fréquence fondamentale de l'excitation et de la réponse) (Fig.6). Une réponse sn(k) est elle-même la somme des J réponses partielles des cellules disposées en parallèle:

s(k) = sn,i(k)


Figure 6 - Construction de la réponse S comme somme des réponses Sn.

où les sn,i(k) sont appelés fonctions d'onde formantiques (FOF) car elles correspondent en général aux formants ou modes de résonance principaux du système.

Les variations de fréquence fondamentale sont obtenues en variant les durées de périodes fondamentales T = 1 /fO, c'est à dire les débuts des FOF successives. Les variations de l'enveloppe du spectre sont obtenues en modifiant les FOF partielles.

2.3 Calcul des FOF

La réponse, à une impulsion unitaire, d'une cellule
C(1+diz-1)/ (1+iz-1+biz-2) =Ci(1+diz-1)/((1-riz-1)(1-riz-1))
est la FOF si(k) = G.e-k sin(wk + ) avec:

Ainsi une FOF s'obtiendrait simplement comme le produit d'une sinusoïde par une enveloppe exponentielle. Cependant, pour les sons naturels, I'excitation n'est pas une impulsion unitaire. Pour obtenir un contrôle plus précis sur le spectre, nous avons utilisé la FOF suivante (Fig.7):


Figure 7 - Une fonction d'onde formantique.

C'est encore une sinusoïde multipliée par une enveloppe A(k). Cette enveloppe est une exponentielle amortie dont la discontinuité initiale est lissée par multiplication par 1/2 (1 - cos ( k)) sur une durée de / échantillons. On obtient ainsi une enveloppe d'amplitude A (k):

Le spectre de cette FOF (Fig.8) présente un maximum, et peut être facilement et directement ajusté grâce aux paramètres suivants: Enfin il n'est pas difficile d'ajuster l'amplitude du signal produit, grâce au gain G (ou, pour éviter une multiplication, par la valeur initiale de l'exponentielle). Le rôle de la phase initiale sera discuté ultérieurement.

Figure 8 - Amplitude (log) du spectre d'une FOF A(k) sin(wk+) pour différentes valeurs de / (w0=2500 Hz, =80 Hz).
  1. / =10 ms
  2. / =1 ms
  3. / =0.01 ms

2.4 Synthétiseur FOF

La structure d'un synthétiseur FOF est décrite à la Fig.9. Ses paramètres de commande sont, pour chaque période fondamentale: La méthode FOF présente par rapport aux filtres un certain nombre d'avantages. La précision nécessaire dans les calculs est au plus celle qui est requise à la sortie (par exemple 16 bits); il n'y a pas de risque de débordement de capacité, le coût des calculs est assez bas sauf pour les fréquences fondamentales très élevées. Enfin le calcul des paramètres de contrôle est particulièrement simple. Nous avons utilisé cette méthode pour la synthèse d'un très grand nombre de sons vocaux, instrumentaux et autres. Les résultats montrent que l'on peut obtenir des synthèses de très haute qualité pour un coût de calcul réduit, possible par exemple en temps réel sur un microprocesseur de traitement du signal.


Figure 9 - Structure d'un synthétiseur FOF.

2.5 Comparaison du modèle FOF et du modèle filtre

Les paramètres du synthétiseur FOF permettent d'obtenir les mêmes enveloppes spectrales qu'un filtre en parallèle équivalent. En fait, grâce au paramètre B réglant la largeur des jupes, il permet même d'obtenir des formes qui nécessiteraient un filtre d'ordre plus élevé, ou des fonctions d'excitation particulières et différentes pour chaque cellule (cf. paragraphe «Discussion du modèle de synthèse en parallèle»).

Il y a de plus une différence intéressante. Nous avons toujours utilisé, à l'intérieur de chaque FOF partielle sn,i(k) une fréquence w constante (une fréquence variable permet des effets intéressants d'élargissement du spectre). Or un résonateur continûment variable comme le conduit vocal devrait être modélisé par un filtre continûment variable, donc un w variable à l'intérieur d'une FOF partielle. En pratique, pour les sons vocaux et la plupart des sons instrumentaux, la durée de chaque période est si courte par rapport aux vitesses de variation des w que la différence n'est pas perceptible. Mais il faut d'abord noter que dans un filtre, les coefficients ne doivent pas subir de discontinuité, donc, doivent être interpolés entre chaque nouvelle valeur (tandis qu'en FOF on peut se contenter d'une nouvelle valeur à chaque période, les FOF étant nondiscontinues par construction). Ensuite, la différence entre les deux méthodes apparaît lorsque la largeur de bande BW est très faible et que w varie, rapidement. La réponse d'une cellule du filtre est alors presque une sinusoïde dont la fréquence centrale évolue continûment. Par contre, les sn (k) déclenchées à chaque période n sont presque des sinusoïdes (amortissement très faible si la largeur de bande est très faible) de fréquences, chacune fixe, mais différente de la précédente: le spectre présente alors des raies très serrées donnant un son beaucoup plus riche que la quasisinusoïde sortant du filtre (Fig.10).


Figure 10 - Comparaison des modèles FOF et filtre pour de petites largeurs de bande et une évolution rapide en fréquences(a) modèle filtre.

C'est un moyen aisé pour obtenir un son riche dans une certaine bande ne fréquence sans avoir à préciser chacune des raies. On obtient ainsi une famille intéressante de sons. Nous avons, par exemple, synthétisé de la sorte des cymbales.

2.6 Discussion du modèle de synthèse en parallèle

Le modèle de synthèse en parallèle (FOF et filtres) précédemment décrit s'est révélé incomparablement plus riche qu'on ne pouvait le penser en écoutant les synthétiseurs à formants parallèles classiques. Nous discutons ici certaines de ses possibilités et certaines difficultés d'implantation.

Lorsqu'on place les J cellules en parallèle, on attend du module du gain complexe total qu'il soit la somme de ceux des cellules individuelles (ou des FOF). Ce n'est pas nécessairement le cas (Fig.11), car certaines composantes peuvent se trouver en opposition de phase, donc s'annuler. Cela se produit essentiellement entre les fréquences centrales de deux cellules voisines (Fig.12), où l'on voit apparaître un «trou» (un zéro) dans le spectre. On observe qu'on peut remédier à ce défaut en déphasant la réponse d'une cellule par rapport à l'autre (Fig.13). Ce déphasage est particulièrement simple dans la méthode FOF puisqu'il suffit de positionner correctement la phase initiale de la sinusoïde dans chaque cellule.


Figure 11 - Comparaison d'un modèle du gain complexe total avec la somme des modules des cellules individuelles.


Figure 12 - Présence d'un «zéro» entre les fréquences centrales de deux cellules voisines.


Figure 13 - Déphasage de la réponse d'une cellule en rapport avec l'autre.

Pour le modèle filtre, nous avons étudié un grand nombre de configurations de pôles et de zéro pour déphaser les cellules les unes par rapport aux autres. Mais on doit écarter l'utilisation de filtres déphaseurs, car ils sont ou inadéquats ou trop complexes, ce qui irait dans le sens contraire de la simplicité qui motive le modèle en parallèle. Par contre, on peut utiliser autant de sources qu'il y a de cellules, et leur déphasage est alors simple (par exemple, c'est la valeur initiale de l'index si on utilise une lecture de table).


Figure 14 - Sources individuelles pour chaque cellule du modèle parallèle.

C'est en particulier la solution que nous avons choisi pour l'implantation du programme CHANT sur le Systems Concepts Digital Synthetizer (Samson-Box) du C.C.R.M.A. à Stanford (Fig.14) (Grâce à l'accueil et à l'aide de John Chowning et John Gordon). En effet les générateurs peuvent produire, avec une phase initiale contrôlable, une impulsion périodique à spectre plat et à bande limitée.

Cette dernière caractéristique, aussi, est importante, car un filtre en parallèle tend à avoir un gain plus élevé que le filtre série de mêmes caractéristiques dans la zone de fréquence située au delà du formant de fréquence maximale (Fig.11): en effet, les gains des cellules s'ajoutent au lieu de se multiplier comme c'est le cas dans un modèle série (le problème n'apparaît pas en FOF grâce au contrôle des largeurs de jupe par B, donc au contrôle de l'amplitude du spectre au delà du formant de fréquence maximale).

L'octroi d'une source individuelle à chaque cellule est encore souhaitable pour permettre le contrôle, dans chaque bande de fréquence d'autres caractéristiques du spectre comme: inharmonicité, largeur de jupe, etc.

On peut également faire varier l'importance respective d'une certaine classe de partiels par rapport à une autre. A titre d'exemple, les harmoniques pairs et impairs: supposons qu'une source soit composée de deux trains d'impulsions T1 et T2 de fréquences Fo et 2Fo, et d'amplitudes respectives A1 et A2 (Fig.16). Le spectre correspondant au premier est un spectre de raies Fo, 2Fo, 3Fo,... et le second de raies 2Fo, 4Fo, 6Fo, ... Le spectre correspondant au train T1 +T2 est la somme des spectres respectifs de T1 et T2.


Figure 15 - Ensemble d'impulsions pour varier les tailles respectives des partiels pairs ou impairs.

Ainsi, en sommant ces deux spectres on peut, accroître l'intensité des raies paires si A1 et A2 sont de même signe, ou la diminuer (éventuellement; jusqu'à zéro) s'ils sont de signes opposés. Ceci revient à dire que le train d'impulsion à utiliser, somme des trains 1 et 2, est de fréquence 2Fo et d'amplitude, alternativement A1 + A2 et A1 pour les impulsions successives. On a ainsi, par un simple contrôle de l'amplitude des impulsions, un contrôle des raies paires et impaires et ceci dans chaque bande de fréquence (cf. octaviation).

Enfin, dans le cas où le filtre en parallèle est utilisé pour le traitement d'un signal, on peut déduire de ce signal J signaux qui serviront de sources aux J cellules. En stockant le signal d'origine dans une table et en le lisant avec des index déphasés on crée autant de sources déphasées. On peut également introduire d'autres variations, d'amplitude par exemple, spécialement si chaque période fondamentale peut être détectée de façon sûre; mais ce dernier point est délicat.

2.7 Nécessité d'une arithmétique flottante

Nous avons mentionné les difficultés présentées par un modèle de filtres en série. La première provient des limitations de l'arithmétique entière utilisée dans la plupart des synthétiseurs. Déjà, avec une seule cellule, on peut facilement rencontrer un filtre auto-oscillant donc inacceptable (c'est le cas sur la Samson-Box pour un modifieur utilisé dans le mode 2 pôles). De plus, d'une cellule à l'autre, le bruit inhérent aux calculs peut se trouver amplifié. Enfin, les débordements de capacité sont courants. Au prix d'un certain effort, avec des gains judicieusement calculés, pour une application donnée, on peut en général remédier à ces problèmes. Mais alors le modèle perd toute souplesse et généralité: il faut un spécialiste pour effectuer ces ajustements, et cela fait perdre un temps non négligeable; et un modèle ne convient donc que pour une application limitée. Au contraire, un instrument informatique devrait être aussi flexible que possible, ne pas brider l'imagination du musicien dans un labyrinthe de calculs des puissances de 2, et se prêter aux utilisations les plus inattendues, celles où s'ouvrent justement de nouveaux horizons musicaux. La seconde difficulté est le calcul des paramètres d'un filtre en série à partir des données que peut manipuler un utilisateur: fréquences, largeurs de bande, amplitudes. Ces calculs sont particulièrement lourds et nécessitent des opérations comme la division ou l'exponentiation. Ils doivent être effectués toutes les 20 ms environ lorsque le filtre varie assez vite. Là encore, ils nécessitent une dynamique et une précision telle que l'arithmétique flottante est indispensable.

Nous n'en déduisons pas que le modèle en série doive être abandonné. Au contraire, car le modèle en parallèle, nous l'avons vu, présente ses propres difficultés. Mais les synthétiseurs musicaux doivent inclure une arithmétique flottante très rapide et les opérations dont aucun ordinateur moderne ne se passe. La technologie actuelle le permet en effet pour un coût qui devient abordable et qui ne cesse de décroître. D'ailleurs, le surcoût est largement compensé par la puissance et la souplesse que gagne alors le synthétiseur.

Deux autres arguments plaident en faveur de l'arithmétique flottante. D'abord, il faut bien ajuster le niveau du signal pour la conversion numérique-analogique: qui n'a pas souffert de sons saturés ou inaudibles et perdu beaucoup de temps à ajuster des coefficients magiques de gain ? Dans un synthétiseur travaillant pour une bonne part en flottant, il suffit d'une passe «à vide» pour détecter l'échantillon d'amplitude maximum, en déduire le gain, et faire entendre, sans intervention humaine, un son dont le niveau est ajusté de façon optimale. C'est le cas dans le programme CHANT: sauf décision volontaire, le son n'est jamais saturé ni inaudible, et c'est un facteur de rentabilité et d'agrément considérable.

Le second argument concerne le calcul des paramètres. C'est à dire tous les paramètres qui précèdent la synthèse proprement dite. Ces algorithmes peuvent atteindre une grande complexité: quand on veut tendre vers la finesse d'interprétation traditionnelle, lorsqu'on veut maîtriser tous les détails du son et ses relations subtiles avec l'organisation. Là encore, ces algorithmes ne peuvent se résumer à quelques lectures de tables et interpolations. De plus, I'utilisateur doit être débarrassé de tout souci de dynamique des calculs et autres débordements (les algorithmes et la musique sont déjà bien assez complexes et ne pourront qu'y gagner). En conséquence, ce calcul des paramètres doit utiliser, lui aussi, une arithmétique flottante et rapide. Nous verrons de plus qu'il requiert un logiciel évolué.

Ainsi l'outil informatique peut se prêter aux utilisations les plus extrêmes, et les plus inattendues C'est un mérite du programme CHANT que d'accepter des paramètres qui ont, tant que possible, un sens immédiat. De plus il suffit de positionner des paramètres à des valeurs qui ne soient pas absurdes du point de vue physique et perceptuel pour obtenir un son à la fois attendu et d'une richesse surprenante.

3. Le programme chant

3.1 Description générale du programme

Le programme CHANT a été conçu comme un outil de composition perceptuelle, pour traiter ensemble production et perception, matériau et organisation. On peut distinguer deux modes d'utilisation qui sont conditionnés à la fois par le type de sons que l'on veut synthétiser, et par l'avancement dans la maîtrise du programme. Le premier mode d'utilisation, que l'on peut qualifier de base, correspond à son utilisation plus particulièrement dans le contexte de la synthèse de la voix chantée, à partir des règles de base définies dans le programme. Le deuxième mode, qu'on pourra qualifier d'étendu, correspond aux utilisations soit qui demandent des contrôles différents de, ou plus élevés, que ceux de bases implémentés dans le programme, soit qui s'éloignent du modèle vocal, pour aller vers d'autres modèles, d'autres «instruments», ou d'autres approches (par exemple: synthèse additive).

Dans le premier cas l'utilisateur spécifie simplement les valeurs de paramètres pré-existants, dans le second il bénéficie de toute la puissance d'un langage de programmation pour créer de nouvelles règles ou décrire l'évolution des paramètres de manière algorithmique dans des sous-programmes.

Dans la version de base, CHANT comporte une centaine de paramètres, mais beaucoup peuvent rester inchangés d'un son à l'autre, et sont par conséquent définis avec des valeurs par défaut, ce qui permet une extrême facilité d'utilisation.

Ces paramètres peuvent être regroupés sous les rubriques: fréquence du fondamental, variations aléatoires du fondamental, vibrato, variations aléatoires du vibrato, spectre: formants et fondamental, pente du spectre, calcul automatique du spectre, intensité du son, enveloppe locale des formants, et enfin contrôle sur la synthèse.

Chaque paramètre peut être défini soit par une valeur fixe, c'est-à-dire une constante, soit par une fonction du temps (fonction par segments), qui associe une valeur donnée à un temps donné et permet par conséquent l'interpolation d'une valeur à une autre.

Ces paramètres et leurs valeurs sont stockés dans un fichier, alors appelé fichier de paramètres. Certains autres fichiers peuvent ne contenir que des fonctions, par exemple des fonctions complexes calculées avec les moyens spéciaux disponibles dans l'Environnement et définis par un grand nombre de points. Ces derniers, appelés fichiers de fonctions, peuvent être appelés d'un fichier central, qui décrira tous les appels.

Ainsi les fichiers peuvent être utilisés de manière modulaire et constituer un véritable réseau, parfois d'une grande complexité.

Notamment par le jeu de facteurs et d'offsets appliqués aux fonctions, les fichiers, extraits de la bibliothèque, peuvent être utilisés comme des modèles desquels on dérive progressivement, par modifications successives, par réajustement des valeurs jusqu'à l'obtention de l'effet désiré.

Le travail de l'utilisateur consiste donc, dans un premier temps, à intervenir dans un fichier de paramètres, soit en définissant directement les valeurs, soit en modifiant les valeurs déjà définies, s'il part d'un fichier préexistant tel ceux disponibles dans la bibliothèque.

Mais ces modifications peuvent aussi être réalisées dans un mode interactif c'est à dire au dernier moment, juste avant de lancer la synthèse. Dans ce cas l'utilisateur donne au programme un fichier de paramètres et modifie alors seulement les valeurs qui l'intéressent. Le fichier original qui a servi de modèle reste intact, mais les modifications sont préservées dans un fichier de sortie produit automatiquement par le programme. Ce fichier de sortie est donc la réplique du fichier d'entrée, avec en plus les modifications insérées dans le mode interactif. Ceci permet un travail évolutif: le fichier de sortie pouvant être utilisé comme entrée et remodifié, ou bien pouvant être conservé pour garder chaque étape de l'élaboration.

Ceci montre le soin particulier qui a été porté, afin de faire de CHANT un instrument évoluable, c'est-à-dire à mémoire: tout travail devant pouvoir être conservé et réutilisé de manière simple et efficace. Ainsi, ces fichiers sont gardés dans une bibliothèque de fichiers de paramètres et de fonctions, qui représente la première partie de ce que nous avons appelé l'Environnement CHANT, qui en outre comprend un catalogue de sous-programmes et de programmes divers, programmes d'analyses variées, de construction de fonctions à partir d'un signal (et réciproquement), de tests rapides, de construction d'un spectre, etc.

La possibilité de conserver le travail accumulé a pour destination de répondre aux mêmes préoccupations que celles qui nous ont fait envisager la définition en termes de modèles, véritables schémas cognitifs d'une production donnée. Car pour être efficace, la définition et l'élaboration de tels modèles, qui sont coûteuses en temps d'expérimentation, doivent conduire à des connaissances facilement accessibles et réutilisables.

Ce premier niveau d'intervention dans CHANT pourrait être appelé constitution de modèle par données, ces données contrôlant les règles, les descriptions algorithmiques sous-jacentes qui forment par défaut dans CHANT le modèle vocal que nous allons décrire. Mais on peut également modifier ce modèle standard par ajouts et/ou éliminations de réglet et algorithmes et ceci constitue un deuxième niveau d'intervention dans CHANT qui pourrait être appelé constitution de modèle par règles et que nous décrirons par la suite.

Envisageons maintenant certaines des règles élaborées pour la constitution du modèle vocal: de celles, assez simples, de timbre des voyelles, jusqu'à celles plus complexes d'effort vocal, c'est à dire de relation entre timbre et amplitude, etc.

3.2 Elaboration du modèle vocal

Un premier travail consiste à définir précisément et à réaliser les timbres, notamment des voyelles, dans la voix chantée, la fréquence et l'amplitude du vibrato, Ies variations aléatoires du fondamental et du vibrato, et les relations entre timbre et amplitude.

Le timbre est d'abord envisagé à partir de l'enveloppe spectrale, elle-même définie en termes de fréquences centrales et d'amplitudes des formants.

Nous représentons l'enveloppe spectrale par ses formants, et il convient de noter que cette représentation se révèle particulièrement économique et parlante pour l'utilisateur, aussi bien au niveau de la compétence que nécessite la compréhension du résultat d'une analyse spectrale (réalisée par un analyseur ou par le système auditif), qu'au niveau de la performance qui est celui de la synthèse.

Les fréquences de formants ont été dégagées de manière précise à travers un travail d'analyse original notamment à l'aide du Phase-vocoder, c'est à dire en extrayant la fréquence et l'amplitude de chaque partiel et en les superposant pour mettre à jour leurs corrélations, et en déduire les fréquences des formants, mais aussi avec les moyens d'analyses plus classiques offerts par les méthodes de Linear Prediction Coding.

Les algorithmes qui ont été implémentés pour la restitution spécifique du modèle vocal, ceci à partir de résultats théoriques et expérimentaux, sont optionnels.

On peut ainsi choisir la détermination automatique des largeurs de bandes qui sont alors calculées à partir des fréquences des formants, suivant une parabole définie sur le spectre par trois points, eux-mêmes paramètrés.

Pour le calcul automatique de l'amplitude des formants, le programme simule des filtres en série, et d'après la fréquence de chacun détermine leurs amplitudes: ainsi lorsque deux formants ou plus se rapprochent leurs amplitudes sont renforcées.

Un formant supplémentaire, appelé complément, peut aussi être assigné automatiquement pour modifier le premier formant et donner plus d'énergie dans le grave, c'est en quelque sorte un formant numéro zéro.

Les variations aléatoires du fondamental sont perceptuellement très importantes. En demandant à des chanteurs de produire des sons absolument sans vibrato nous avons pu étudier les fluctuations aléatoires et non-contrôlées de la fréquence du fondamental. A l'analyse, on observe beaucoup d'irrégularités, quoique la variation ne soit que de l'ordre de + ou - 0,5% de la fréquence fondamentale. On observe également des variations importantes de taille. La fluctuation aléatoire du fondamental suit une distribution proche de 1 /f. Dans le programme CHANT cette fluctuation est modélisée en ajoutant à la fréquence du fondamental un terme dont la valeur varie de façon aléatoire entre des limites données par l'utilisateur. Ce terme a trois composantes, dont chacune est associée à un temps de tirage aléatoire différent. Si à un instant T0 la valeur d'une composante est égale à c, on détermine par tirage aléatoire la valeur qu'elle aura à l'instant T0.,+Tc, où Tc est le temps de tirage aléatoire, par exemple toutes les 0.05 secondes. La valeur effective du terme à ajouter à la fréquence fondamentale à chaque instant est la somme des trois composantes à cet instant. Des valeurs typiques pour les trois temps de tirages aléatoires sont de 0.05, 0.111, 1.219 secondes. Nous répartissons l'excursion de la fluctuation aléatoire également parmi les trois composantes. La fluctuation totale se situe typiquement entre + ou -1,1 % et + ou - 3,7% du fondamental pour des voix de femme, et entre + ou -2% et + ou -4% pour des voix d'homme.

Le vibrato est traditionnellement défini comme l'oscillation plus ou moins régulière de la fréquence fondamentale autour d'une fréquence centrale perçue comme hauteur. Dans CHANT on distingue l'amplitude du vibrato, c'est à dire l'excursion autour de la fréquence centrale, et la fréquence du vibrato c'est à dire le taux de répétition de cette excursion, et les variations aléatoires du vibrato qui sont modélisées par un processus similaire à celui utilisé pour les variations aléatoires du fondamental. Le vibrato a paradoxalement un intérêt du point de vue du timbre, et de celui de la reconnaissance de l'identité d'un chanteur, puisqu'il balaie les résonances correspondant aux formants et par conséquent les révélant, les fait entendre. Du point de vue de la synthèse, I'important est de déterminer une évolution temporelle satisfaisante pour la perception qui est très exigeante dans ce domaine, notamment parce que le vibrato joue aussi un rôle important dans l'interprétation.

Un soin particulier a été aussi porté à l'étude des relations entre timbre et amplitude. Quand un chanteur chante fort, le signal émis par les cordes vocales est tout à fait différent de celui produit quand il chante doucement. En l'occurence, ce signal est beaucoup plus riche en hautes fréquences. La même différence subsiste entre les notes de l'aigu d'un registre et celles du grave du registre. Nous avons modélisé ces effets en appliquant une fonction corrective aux amplitudes des formants numéro deux à cinq.

Cette correction est fonction d'une part de l'amplitude générale demandée par l'utilisateur, et d'autre part de la position de la note dans le registre demandé par l'utilisateur. Nous définissons un registre par la fréquence qui correspond au milieu du registre souhaité. Ainsi la même voyelle synthétisée à la même fréquence aura des timbres différents selon le choix de la fréquence qui définit le registre.


Figure 16 - Amplitude (log) du spectre de la voyelle /a/ à haute amplitude.


Figure 16b - Amplitude (log) du spectre de la voyelle /a/ à amplitude basse.

Les Figures 16a et 16b montrent les spectres de deux sons synthétisés par le programme. Le fondamental est de 300 hz, la voyelle [a]. Dans la Figure 16a, I'amplitude est au maximum, dans la suivante elle est à 18 db au-dessous. On remarquera la différence dans l'amplitude des formants aigus.

La relation entre timbre et amplitude est aussi importante perceptuellement comme indication de la distance d'un son. Si l'on applique une correction de spectre correspondant à un son fort, tout en utilisant pour la synthèse une amplitude faible, on entend le son comme lointain.

3.3 Le modèle par règles

Le modèle que nous venons de décrire est celui implémenté dans le programme de manière à répondre à certains besoins typiques. Mais il est souvent nécessaire de passer outre pour aller vers des utilisations moins normalisées. C'est pourquoi on a prévu dans CHANT la possibilité d'introduire des sous-programmes extérieurs qui permettent de définir de nouvelles corrélations ou règles. Ces sous-programmes sont écrits directement dans le langage d'implémentation de CHANT (ou dans tout autre langage disponible) et sont exécutés seulement à faible périodicité, typiquement 100 hz (ou bien à chaque période du fondamental dans la première version), et non à l'échantillon. Tous les paramètres du programme y sont accessibles de manière simple, ainsi bien sûr que le temps courant.

Ces règles constituent la base des modèles, que l'on voudra d'une part construits de façon modulaire, par assemblage de règles, et d'autre part sensibles au contexte.

Pour illustrer ce point, nous envisagerons quelques exemples extraits de deux sous-programmes déjà complexes: la première pour simuler une voix de soprano avec quelques éléments du phrasé et de la technique du chant classique et la seconde une voix inspiré du chant tibétain, introduisant la simulation de l'articulation consonnantique, et surtout un travail original sur le timbre.

Pour la voix de soprano, on a tout d'abord privilégié l'étude sur le placement des formants, typique de l'émission du bel canto. A partir d'analyses réalises au moyen du Phase-vocoder, sur une même hauteur interprétée par plusieurs chanteuses, on a pu obtenir précisément les fréquences des 6 premiers formants. Finalement, on a décidé de garder les fréquences des 6 derniers formants, et on a dégagé pour les deux premiers la relation suivante entre fréquences des formants et hauteur de la note: le premier et le deuxième formants sont; placés respectivement sur les premier et deuxième harmoniques sauf si la fréquence obtenue est; inférieure à un seuil fixé pour chacun d'eux. Ce modèle permet une couleur vocalique homogène sur une grande tessiture, environ deux octaves.

Puis le travail de modélisation a porté sur l'établissement de règles contraignant l'évolution des divers paramètres de la source au cours de staccatos.

Notamment, ces règles s'attachent à décrire les évolutions:

Dans le travail inspiré du chant tibétain, il s'agissait, dans un premier temps de sortir de l'étude des pratiques conventionnelles de la voix dans la musique occidentale. En effet, jusque là le travail de définition des règles avait essentiellement porté sur le bel canto, sur des voix que l'on pourrait qualifier d'école, c'est à dire tendant à éliminer ou à «régionaliser» le bruit et l'aléatoire, sauf pour permettre des qualités expressives très spécifiques de la musique occidentale. Il s'agissait d'étudier des qualités vocales différentes afin de définir de nouveaux modèles.

Dans ce travail on a privilégié la restitution d'un certain type de bruit, la mise en valeur du rôle des harmoniques pairs et impairs, et surtout l'articulation, c'est à dire les consonnes. Dans le programme CHANT, on peut contrôler le bruit des paramètres dépendant des formants, c'est à dire qu'on détermine une amplitude de bruit en rapport avec l'amplitude du formant respectif, et une bande de bruit centré sur la fréquence de ce formant.

Dans cet exemple le bruit a été abordé en travaillant essentiellement sur l'aléatoire, surtout au niveau des micro-fluctuations du fondamental et des fréquences des formants. Pour le timbre, nous avons été amenés à introduire l'idée d'un coefficient d'octaviation, c'est à dire d'un contrôle d'amplitude séparé des harmoniques pairs et impairs, lui aussi affecté d'une enveloppe et d'une variation aléatoire. L'octaviation permet tout un jeu sur la rugosité, déjà induite d'une autre manière dans le fonctionnement de base du programme par un paramètre spécifique, et permet aussi de jouer sur la fusion/fission de l'image auditive (cf. [(S.Mc.Adams]).

L'articulation a été particulièrement travaillée. Des consonnes ont été modélisées et restituées sous forme de transitions d'une voyelle à une autre, affectant l'amplitude, le fondamental, et les trajets formantiques, c'est à dire la fréquence de chaque formant en fonction du temps.

Enfin le rythme et l'accentuation ont été déterminés par des règles décrivant les corrélations entre les durées des phénomènes, et des variations locales de l'effort vocal, de la fréquence fondamentale et du vibrato.

Ceci ne présentait pas de difficulté particulière, une fois la définition d'une transition réalisée, sinon l'extrême lourdeur de l'utilisation, et par conséquent l'inefficacité qui en résulte pour des applications musicales. Ce type de difficultés suggère un traitement particulier que nous allons évoquer.

3.4 Modèles et dérivation

Notre propos, à ce qu'on pourrait appeler le plus haut niveau, est donc de construire des modèles, des lois et des règles de tous les stades des productions musicales, de la pré-composition, du choix des matériaux, à la performance. Ces modèles, sous forme d'algorithmes, doivent décrire le plus précisément possible: le son lui-même et son évolution, la structure dans laquelle il prend place, les interactions dynamiques entre son et structure, entre matériau et organisation.

Le propos de ces modèles n'est pas simplement l'imitation ou la simulation d'une note ou d'un instrument donnés dans un contexte donné, mais plutôt de représenter la formalisation d'un acte ou d'un processus quelconque, d'une décision ou d'un geste, d'une organisation statique ou dynamique, ou encore d'un invariant musical en général.

Ces modèles doivent être envisagés comme des structures de connaissances, et bien entendu, ils doivent être utilisés comme tels, c'est à dire qu'ils n'auront de sens pour le compositeur que d'un point de vue référentiel, comme des schémas cognitifs desquels on dérive par modifications ou compositions successives. Ce sont en quelque sorte des propositions au sens quasi logique du terme, et par conséquent le compositeur ne doit pas être obligé d'en voir la structure profonde, il peut se contenter de les manipuler, de les assembler, comme il a toujours fait du reste dans la musique instrumentale ou vocale. Ainsi la compréhension du fonctionnement interne ne doit pas être rendue indispensable mais facultative sans pour autant devenir occulte, et aussi et surtout sans perte de complexité pour l'utilisateur.

On voudra par exemple assembler ces modèles sans avoir à se soucier d'éventuelles incompatibilités de l'un à l'autre, ce qui pose parfois des problèmes insolubles dans certains langages de programmation.

En effet, il ne suffit pas de pouvoir faire en théorie, il faut encore pouvoir le faire simplement, et sans avoir à tout réécrire pour chaque application. Notamment, une transition doit être prise en charge par un objet pré-existant qu'on manipule de manière symbolique, et qu'on place «sur» un autre objet, ou entre deux objets. Ce traitement quasimodulaire ou symbolique, dérive presque automatiquement de la conception de modèles telle que nous l'avons décrite. Ainsi une transition est aussi dans ce sens un modèle, qu'on veut pouvoir placer dans un contexte, sans se préoccuper des questions de compatibilité entre deux ou plusieurs objets.

Une fois le travail spécifique de modélisation accompli, se trouve donc définie la nécessité d'une structure de plus haut niveau pour gérer les modèles, comme autant d'objets dans une combinatoire symbolique, permettant à la fois des modifications réciproques des objets «en situation» dans un contexte, et un contrôle d'encore plus haut niveau sur la combinatoire elle-même.

Ce sont ces impératifs qui nous ont amenés à envisager la réalisation d'un nouveau programme, d'un nouveau langage, pour contrôler CHANT, mais aussi pour contrôler tout autre système de synthèse moyennant une interface réduite et spécifiable dans le programme lui-même. Ce programme, nommé FORMES, dont le développement s'effectue en Lisp, touche directement à des problèmes relevant de l'intelligence Artificielle, notamment les questions de structures de connaissances, de contraintes, de parallélisme et de transformations, c'est à dire les aspects algorithmiques de séquencement de règles aussi bien au niveau horizontal de la succession temporelle, qu'au niveau vertical de l'enchâssement des règles.

Conclusion

On aura compris que le programme CHANT n'a pas pour ambition restrictive l'étude de la voix, ou plutôt que nous ne considérons pas la voix comme un objet simple, univoque. Mais que bien au contraire la voix se présente pour nous comme un point de départ d'une richesse et d'une complexité à la fois uniques et incontournables par l'exemplarité de ses productions et leur grande diversité, notamment par la mise à jour de la notion constitutive d'articulation. L'enjeu, musical par excellence, est en même temps cognitif, car les deux sont pour nous intimement liés, tout spécialement à travers les processus de modélisation.

La qualité sonore de la synthèse et la facilité d'utilisation du programme en font un outil exceptionnel pour la musique informatique. Depuis sa réalisation il a été utilisé dans une grande variété de contextes musicaux par de nombreux compositeurs, parmi lesquels Gerald Bennett, Connad Cummings, Jean-Baptiste Barrière, Jonathan Harvey, Jukka Tiensuu, Harrison Birtwistle, Kaija Saariaho, Michel Tabachnik, Gerard Grisey, Alejandro Vinao, Tod Machover, Marco Stroppa...

Utilisé en permanence à l'IRCAM, CHANT continue à évoluer, en s'enrichissant des nouvelles utilisations et à travers de nouvelles implémentations sur des machines différentes. La première version de CHANT a été écrite en langage SAIL, par Xavier Rodet et Yves Potard, sur le PDP-10 à l'IRCAM, et a tourné de 1979 à 1983. Une version transportable écrite en FORTRAN fut réalisée en 1981 par Jean Holleville. Au moment du passage du PDP-10 au VAX-780 début 1983 c'est cette même version FORTRAN qui a été entière de sous-programmes de l'utilisateur a été traduite en FORTRAN et en C. Il faut aussi mentionner que CHANT tourne depuis 1981 dans sa version filtres sur la Samson-Box au Computer Center for Reseorch in Music and Acoustics de l'Université de Stanford. La version FORTRAN tourne aussi sur un VAX-750 à l'Electronic Music Studio de Stockholm. En 1983, une version filtres temps-réel de CHANT a été implémentée par Xavier Rodet sur le processeur numérique de sons temps-réel 4X de l'IRCAM.

Enfin, en 1984, Yves Potard a réalisé une nouvelle version de CHANT sur un Array-Processor FPS100. Cette version très rapide permet de combiner la version FOF et la version filtres. De plus la source, au lieu d'être simulée, peut être une source réelle, par exemple un son concret, ce qui autorise alors la possibilité de traitements, voire même de synthèse croisée en combinant les 2 modèles. CHANT est donc devenu aujourd'hui un package complet de synthèse et de traitements.

Bibliographies

BARRIÈRE J.B. - 1983. «Chreode I: A Piece Using CHANT and FORMES». Presented at the International Computer Music Conference, October 1983, Rochester, New York

BENNETT G. - 1981 «Singing Synthesis in Electronic, Music».In Research Aspects of Singing, ed. J. Sundberg. Publication 33. Stockholm: Royal Swedish Academy of Music, pp.34-50.

CARRÉ R. - 1981. «Couplage conduit vocal - source vocale». In XIIeme Journées d'études sur la parole, Montréal, May, pp.233-245.

FANT G. - 1970 The Acoustic Theory of Speech Production. The Hague: Mouton.

FANT G. - 1973. Speech Sounds and Features. Cambridge, Massachussetts (U.S.A): MIT Press.

HARVEY J - 1981.«Mortuos Plango, Vivos Voco: A Realization at IRCAM». Computer Music Journal 5 (4): 22-24.

HARVEY J. et al.- 1984. «Notes on the Realization of Bhakti». Computer Music Journal 8(3) 74- 78.

McADAMS S. - «The Auditory image: A Metaphor for Physical and Psychological Research on Auditory Organizations». In Cognitive Processes in the Perception of Art, ed. R. Crozier and A. Chapman. Amsterdam North-Holland Publishers. «L'image Auditive: une métaphore pour la Recherche Musicale et psychologique sur l'organisation Auditive» Traduction française Rapport IRCAM n°37. 1985.

MOORER J.A. - 1977 «Signal Processing Aspects of Computer Music : A Survey». Proceedings of the IEEE 65(8): 1108-1137. Reprinted in Computer Music Journal 1(1) 4-37.

RODET X. - 1977 «Analyse du signal vocal dans sa représentation amplitude-temps. Synthèse de la parole par règles». Thèse d'Etat, Université de Paris Vl. Paris.

RODET X. and BENNETT G. - 1980, «Synthèse de la voix chantée par ordinateur». In Conferences des Journées d'études 1980. Paris: Festival International du Son, pp 73-91.

RODET X. and COINTE P. - 1984 «FORMES : composition and Scheduling of Process». Computer Music Journal 8(3): 32-50.

ROTHENBERG J. - 1981.«The Voice Source in Singing». In Research Aspects of Singing, ed. J. Sundberg. Publication 33. Stockholm: Royal Swedish Academy of Music, pp.15-33.

SAARIAHO K. - 1983. «Using the Computer in a Search for New Aspects of Timbre Organization and Composition» Presented at the International Computer Music Conference, October 1983, Rochester, New York.

SUNDBERG J. - 1978 «Synthesis of Singing», Swedish Journal of Musicology 60(1): 107-112

SUNDBERG J. - 1979. «Perception of Singing». Speech Transmission Laboratory Quarterly Progress and Status Report 1 -1979. Stockholm: KTH, pp. 1-48

WEINREICH G. - 1977 «Coupled Piano Strings». Journal of the Acoustical Society of America 62(6) : 1474-1484. Also published in 1979 as «Physics of Piano Strings». Scientific American 240: 117-127.

Discographie

IRCAM: un portrait-recherche et création. IRCAM 0001. Paris, 1983

____________________________
Server © IRCAM-CGP, 1996-2008 - file updated on .

____________________________
Serveur © IRCAM-CGP, 1996-2008 - document mis à jour le .