Génération automatique Poésie-Musique

Transcription

Génération automatique Poésie-Musique
Génération automatique Poésie-Musique
Jacopo Baboni-Schillingi
Jean-Pierre Balpe
«Trois mythologies et un poète aveugle» est un spectacle qui sera présenté en public
le 14 novembre 1997 à l’IRCAM (Institut de Recherche et de Création Acoustique
et Musicale) du Centre Georges Pompidou le 14 novembre 1997 en soirée publique
et le 17 novembre 1997 en matinée scolaire.
Ce spectacle repose sur un principe tout à fait original puisque la soirée sera
constituée par le dialogue en temps réel entre un automate de génération de poèmes
(réalisé par Jean-Pierre Balpe) et un automate de génération musicale (réalisé par
Jacopo Baboni-Schillingi). L’organisation de la soirée repose de plus sur la
présence en direct de trois poètes-lecteurs, d’un pianiste, d’un percussionniste et
d’une soprano qui devront travailler à partir des propositions des deux automates.
Les poèmes de la soirée :
L’automate de génération poétique va générer des textes en fonction de quatre styles
différents :
— le style du «poète aveugle»
— le style du poète Jean-Pierre Balpe
— le style du poète Henri Deluy
— le style du poète Joseph Guglielmi
chacun de ces styles dépendant étroitement des définitions stylistiques, sémantiques
et rhétoriques proposés par les poètes concernés. Par exemple, les poèmes générés
pour Henri Deluy le sont à partir des propositions qu’il a faites pour l’automate et
qui ont été programmées suivant ses instructions. Les «styles» des trois poètes
définissent autant de «mythologies» personnelles — d’où le titre de la soirée. Voici,
pour chacun de ces styles, un exemple des textes générés par l’automate :
Le poète aveugle
faut se manier le train faut faire quelque chose
faut le dire "faut le dire…" absolument
la lumière se noie dans le désespoir les nuits
apportent leur lot de tortures les petites mythologies
quotidiennes se noient dans la croyance rien
ne dure assez y'a qu'à absolument
les petites mythologies quotidiennes se noient
dans l'autorité les hommes rampent dans l'imposture
aux villes çà flambe et craque et pète de partout
çà flambe et craque et pète de partout le temps
revient demain s'achève avant hier le sexe
n'y peut rien rien ne va plus le temps patauge
faut faire quelque chose n'est-ce pas ou
se tirer oui faut se manier le train
disparaître y'a qu'à ou se barrer
Mythologie 1 (Joseph Guglielmi)
a little movement in the leaves
chantage
à la beauté cercle renversé du soleil
vue sur les hêtres du parc
terra labiale
sur le tard le spectacle
change sunday afternoon derrière les églantiers
obscurs obscurs cercle renversé
du soleil l'arbre retient ses feuilles comme
le baiseur sa liqueur pins some small echo at the earth's edge
restes de vent
vue sur les sapins du parc le spectacle change
sun bright ai piedi d'una estinta lancé
vers Borghetto S.Spirito the wind pulls
at face parc de collines boisées birds singing the wind
pulls at face les fleurs éclatent
comme des étoiles trees dark
green
Mythologie 2 (Jean-Pierre Balpe)
elle pour nous sauver elle affirme des mots clairs comme
"meurt" ou "hume l'odeur acide des citronniers de son
pays natal" ou "contemple les courbes des dessins
d'enfants" ou "compte la valeur inépuisable de ses nuits
incalculables" ou encore "entend dans le chaos de son
crâne le roucoulement des pigeons sauvages" des vérités
salutaires salutaires comme çà "désigne les confusions de
l'univers" et "renifle les musiques des rues" ou "parcourt
toutes les félicités de la mémoire" ou encore "les nœuds
gordiens des complexes vitaux" des vérités importantes
ou çà encore "les choses qui ont lieu" et encore "la
réflexion morale" elle est là elle remarque nous
parle elle ajoute des phrases nettes
Mythologie 3 (Henri Deluy)
comment dire cela?
errance à la recherche
du mot juste l'idéal serait
de dire la vérité tu parlais
d'une cretonne ancienne
Marseille 1957 tu peux
me dire tout cela n'est
rien tu insistais
visage défait c'était
comme une vitrine une
respiration qui se donnait
à voir mourir est une
contrainte difficile tu
peux me dire tout cela
n'est rien je savais que
le mot qui viendrait serait
le moins important penser
plus vite ton absence
me coupait en deux
les rideaux tombaient
comme des oreilles
Lors de la soirée, chaque poète lira en public les textes que le générateur produira en
direct et en temps réel.
Principes de l’automate poétique :
Un générateur automatique est un automate capable de produire en quantité
psychologiquement illimitée des objets acceptables dans un domaine de
communication antérieurement défini., c’est-à-dire reconnu comme domaine par
une communauté de récepteurs. Le domaine est ici celui de «la poésie». Un
générateur automatique de poésie produit donc un très grand nombre de pages
acceptées par des lecteurs comme poèmes.
Les algorithmes de génération littéraire fonctionnent à partir d’une grammaire
sémantique : ils considèrent la sémantique et la syntaxe comme équivalents à tous
les niveaux. Le mode fondamental de fonctionnement est celui d’une grammaire.
Si l’on appelle “développement” d’une donnée le parcours de la hiérarchie de ses
classes jusqu’à obtention d’un élément terminal, l’écriture d’un texte n’est rien
d’autre que le développement successif de classes sur l’axe syntagmatique. Ce
développement est toujours ordonné de la gauche vers la droite. Un texte est terminé
lorsque le moteur ne trouve plus de données à développer.
Le générateur produit des textes à partir de deux types d’objets distincts :
— les données,
— les descripteurs syntaxiques interprétés par le moteur de génération.
Le moteur de génération n’a pas d’autre fonction que d’exploiter les informations
fournies par les données qui sont donc indépendantes. Une donnée est un élément
autonome d'une classe. Une donnée est autonome en ce sens qu’elle porte
l’ensemble des informations utiles à son utilisation par l’automate de génération.
Toute donnée est de la forme suivante :
Les données peuvent revêtir deux états :
— état fini.
— état non-fini
L’état fini d’une donnée ne comporte aucun descripteur syntaxique. Elle ne peut être
que placée telle quelle dans la chaîne de caractères qui constitue le texte.
Exemple : “éléphant” ou “ce jour-là il pleuvait” sont des données finies.
L’état non-fini d’une donnée comporte un ou plusieurs descripteurs syntaxiques, il
doit être développé par le moteur de génération avant d’être placé dans la chaîne de
caractère qui constitue le texte. Exemple : “[1|m_éléphant], 1(1)éléphant|s, [53#]
[0800000|v_sortir]…” sont des données non-finies. Les descripteurs sont des objets
formels identifiés dans un lexique de descripteurs. La génération d’un texte ne
consiste donc en rien d’autre qu’en la transformation linéaire de l’ensemble des états
non-finis en une chaîne d’états finis. En ce sens, il n’y a pas de niveau élémentaire
de non-finitude : la génération consiste aussi bien en la juxtaposition de données
comme : “le jour se lève” et “les enfants vont à l’école” que “[début-jour]” et
“[description-ville]”… Tous les états intermédiaires sont possibles…
La grammaire a pour fonction générale de contraindre le choix de la forme finie
parmi l’ensemble des formes non-finies possibles. Par exemple, la donnée
“[m_cheval|71]” contraint deux types de choix :
— 1 : la valeur supérieur à 50 du descripteur implique le pluriel; le
choix de la forme finie est donc “cheva + ux” dans “0(1)cheva|l ux”. (Noter que
dans la version Hypercard, le seuil pluriel est 50; dans la version à venir, il serait bon
de le porter à 100…)
— 2 : la valeur 71 du descripteur implique “pluriel” du déterminant
21, c’est-à-dire : “tout son ,toute sa ,etc…”; les informations de la donnée non-finie
“0(1)” impliquent non-élision “0” et masculin “1”, ce qui contraint à la
possibilité ”(pluriel*2)+(élision+1)+genre” du déterminant, choisi parmi la classe
déterminants (cf. annexe 5), c’est-à-dire : “tous les “
La forme finie résultante est : “tous les chevaux”. La grammaire sémantique du
générateur est capable d'interpréter toutes les informations des données quelle que
soit leur nature. La cohérence sémantique des textes est assurée par la structuration
des données elles-mêmes.Par exemple pour obtenir une phrase comme : «Une
dame, vêtue de blanc, robe blanche, traverse la pièce…», la génération doit contenir
les représentations suivantes :
1 — des dames existent dans le monde
2 — les dames peuvent être vêtues de vêtements
3 — les robes sont des vêtements
4 — les vêtements peuvent avoir une couleur
5 — le blanc est une couleur possible des vêtements
6 — il existe des espaces que l’on appelle des pièces
7 — les dames peuvent traverser les espaces définis en 6
Ces représentations sont réparties dans plusieurs dictionnaires hiérarchisés :
— dictionnaire des mots : [a_agile] contient «agil|e e es es»
— dictionnaire de para-synonymes : [a_agile 1] contient [a_agile], [a_habile], etc…
— dictionnaire de concepts qui sont une combinaison de mots et de parasynonymes
— dictionnaire d’événements
— dictionnaire de représentations de connaissances
— dictionnaire d’équivalences syntaxiques
— dictionnaires de thèmes
— etc…
Un texte est donc la résultante de combinaison de niveaux enchevêtrés de
dictionnaires. Par exemple :
[DATE] [PERSONNE] [VETEMENT [COULEUR-DE-VETEMENT]] [ŒIL
[COULEUR-D’ŒIL]] [DEPLACEMENT] [ESPACE [QUALIFIANT-TYPE 1]
[QUALIFIANT-TYPE 2] [QUALIFIANT-TYPE X]]
Le nombre total de choix dépend de la richesse de la description et de la mobilité des
places. Si [DEPLACEMENT] n’est pas un concept, mais une classe de concepts
et/ou de termes et/ou de locutions et/ou de phrases plus ou moins complètes :
[DEPLACEMENT]
une dame vêtue de blanc traversa
[X] traverse la pièce
[DATE] [X] traverse
[X] traverse [MANIERE]
[ENTRER] [MARCHER] [SORTIR]
[ENTRER] [SORTIR]
[MARCHER]
[COURIR]
Le générateur a donc des possibilités de choix qui lui permettent non seulement de
«rédiger» une action, mais de choisir entre différentes possibilités de rédaction.
Principes d’échange entre le générateur poétique et le générateur musical :
Le générateur musical est lui aussi un automate qui fonctionne selon les contraintes
propres à la composition musicale. Ces contraintes ne sont en rien homgènes à
celles de l’univers poétique même si certains termes comme «sonorités» ou
«rythme» peuvent parfois le laisser croire.
En fait, ce qui fait la correspondance entre un texte donné et la musique avec laquelle
il entre en correspondance est un métalangage qui gomme les spécificités de chacun
des automates pour constituer un langage commun original permettant aux deux
automates d’échanger des informations en vue d’une production originale.
En ce qui concerne «Trois mythologies et un poète aveugle» qui est une soirée de
lecture poétique avec musique, le métalangage choisi est le niveau supérieur des
thèmes.
Dans le générateur poétique, un «texte» — ou plutôt un «modèle de texte» — a la
forme suivante :
=J0900000065¥[thl-beatnik-J1] [thl-éros-J1] [thl-éros-J1] [thl-paysage-J1] [thlpaysage-J1] [thl-beatnik-J1] [thl-éros-J1] [thl-paysage-J1] [thl-beatnik-J1] [thlpaysage-J1] [thl-éros-J1] [thl-éros-J1] [thl-poète-J1] [thl-beatnik-J1] [thl-délire-J1]
[thl-beatnik-J1] [thl-temps-J] [thl-poète-J1] [thl-paysage-J1] [thl-paysage-J1] [thlbeatnik-J1] [thl-beatnik-J1] [thl-poète-J2] [thl-poète-J1]FF
ou
1 - la séquence «=J0900000065¥» représente le descripteur contextuel du poème
contrôlant son aspect rhétorique, sémantique, l’appartenance au style de tel ou tel
poète, etc…
2 - FF indique la fin de génération du poème
3 - [thl-beatnik-J1] [thl-éros-J1] [thl-éros-J1] [thl-paysage-J1] [thl-paysage-J1] [thlbeatnik-J1] [thl-éros-J1] [thl-paysage-J1] [thl-beatnik-J1] [thl-paysage-J1] [thl-érosJ1] [thl-éros-J1] [thl-poète-J1] [thl-beatnik-J1] [thl-délire-J1] [thl-beatnik-J1] [thltemps-J] [thl-poète-J1] [thl-paysage-J1] [thl-paysage-J1] [thl-beatnik-J1] [thlbeatnik-J1] [thl-poète-J2] [thl-poète-J1] : l’ordre et l’esemble des thèmes traités ainsi
que leurs relations aux dictionnaires de thèmes. Ici, les thèmes sont donc :
— [thl-beatnik-J1]
— [thl-paysage-J1]
— [thl-éros-J1]
— [thl-poète-J1]
— [thl-poète-J2]
— [thl-temps-J]
— [thl-délire-J1]
appelé 7 fois
appelé 6 fois
appelé 5 fois
appelé 3 fois
appelé 1 fois
appelé 1 fois
appelé 1 fois
C’est sur cette base thématique que l’automate musical est appelé à fonctionner.
L’automate musical :
Un système génératif est un ensemble d'algorithmes pouvant gérer des variables qui,
à partir d'un état donné, produisent un nombre infini d'applications. Ainsi un
système génératif peut accueillir un nombre indéfini de variables auquelles il impose
un certain processus. Le résultat de ce processus est ce qu'un terme plus classique
définit comme « prolifération du matériau compositionnel musical ». Le
fonctionnement d'un générateur en musique est divisé en trois parties principales :
un corps d'entrée dans lequel les variables sont définies ; un corps central dans lequel
les variables sont élaborées et enfin un corps de sortie qui convertit le processus
d'élaboration en notations musicales.
input
corps central : traitement des données
output
Les données du corps d'entrée appartiennent à plusieurs catégories qui, entre elles,
obéissent à des dimensions qui ne sont ni isomorphes, ni isotropes. Une note
musicale est constituée d'une hauteur, d'une durée, d'une position dans le temps,
d'une position dans l'espace, d'une intensité et d'un timbre. Donc, un système
génératif en musique considère à chaque instant la génération des classes différentes
des paramètres. Prenons un exemple.
Imaginons une matrice de trois notes : do, ré, mi, comme variables de départ.
Une première phase de la génération pourrait consister à calculer toutes les
combinaisons possibles des trois notes do, ré, mi. Dans cet exemple, on peut voir
que le système obéit à une seule loi : obtenir toutes les combinaisons d'une matrice
donnée. Mais, puisque un système génératif est capable de gérer plusieures règles ou
lois en même temps, imaginons à présent que, comme deuxième phase de la
génération, on ne veut obtenir que les permutations qui ont la note ré pour première
note.
Un système génératif produit donc un résultat dépendant de règles, le nombre de ces
règles pouvant être infini. S'il n'existe aucune règle, le générateur ne produit aucun
résultat.
Prenons un deuxième exemple qui agisse à un niveau plus profond et considère plus
de variables à la fois. Soit une séquence de notes.
Imaginons à présent que ce thème, ou « entité musicale », soit la variable du
système génératif et observons sa représentation graphique sous forme de profil
géométrique.
Supposons maintenant que, dans le corps central du système génératif, la règle de
prolifération consiste à appliquer une fonction de perturbation dynamique telle que,
en ayant le profil géométrique suivant.
La séquence originaire de notes subit un nombre défini (dans ce cas, dix) de
modifications. Dans cet exemple, perturber le profil du départ en fonction du
deuxième profil consiste à additionner les deux profils selon un indice variable
d'incidence du deuxième profil sur le premier.
L'interpolation entre un thème A et un thème B pourrait être un autre exemple
d'application des systèmes génératifs en musique. Observons dans le prochain
graphique comment plusieurs lois sont appliquées successivement. D'abord le
thème A est constitué de treize notes avec un rythme constant dans la tonalité de ré
mineur. Le thème B est constitué de trente et une notes en do majeur.
thème A
thème B
Deuxièmement, le profil géométrique de est morphologiquement très distinct du
profil géométrique du thème B. Donc le processus d'interpolation constitue (dans cet
exemple en douze pas consécutifs) un changement progressif du premier thème vers
le deuxième. La représentation géométrique du processus entier est la suivante :
Au point de vue du moteur de génération, le système constitue en premier lieu une
interpolation entre les deux thèmes selon la courbe suivante :
thèmes
thème B
thème A
temps
Deuxièmement, le système attribue à chaque pas de l'interpolation un champ
harmonique spécifique défini sous forme de règles harmoniques.
champs harmoniques
Enfin, le système agit à un niveau local et considère pour chaque pas de
l'interpolation les changements rythmiques, la structure morphologique, les
éventuelles répétitions locale, les « patterns » éventuels…
Les échanges de données entre le générateur de texte et le générateur de musique agit
à différents niveaux. Il y a échange de thèmes, de structures morphologiques, de
longueur et de durée de chaque génération… Dans le contexte de la soirée « Trois
mythologies et un poète aveugle », les deux générateurs communiquent
constamment en échangeant un flux continu de données. Ainsi le corps d'entrée de
chaque générateur accueille à la fois des variables propres à son système, et des
variables qui proviennent du corps de sortie de l'autre générateur.