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.