Fënnef Stären fir d’Applikatioun schreifmaschinn.lu

Ech hunn an de leschten Deeg déi éischt Applikatioun déi et jidder Mënsch erlaabt geschwate lëtzebuergesch Sprooch an en Text ëmzewandelen op Häerz an Nieren gepréift. Ech kann et am Virfeld schonns soen : schreifmaschinn.lu kritt 5 Stären. Fir dass eis auslännesch Frënn, déi nach keen Lëtzebuergesch schwätzen, och verstinn wéi eng Meeschterleeschtung hei geschaaft gouf, fueren ech elo mat menger Beschreiwung op Franséisch weider.

Présentation du projet schreifmaschinn.lu

Le vendredi 9 décembre 2022 le Zenter fir d’Lëtzebuerger Sprooch (ZLS) a présenté dans la salle de conférence à Clausen une application web qui permet de dicter du texte en luxembourgeois, en présence de Claude Meisch, ministre de l’Éducation Nationale, de l’Enfance et de la Jeunesse. Luc Marteling, directeur du ZLS, a souhaité la bienvenue aux nombreux invités.

L’application de reconnaissance vocale, appellée schreifmaschinn.lu, est basée sur un modèle neuronal d’intelligence artificielle (AI) et a été développée par Sven Collette et Le Minh Nguyen. Elle constitue une vraie prouesse technologique si on considère que le luxembourgeois est une langue à faible ressources et que le modèle AI a été entraîné avec une quantité de données limitée.

de gauche à droite: Sven Collette, Claude Meisch, Le Minh Nguyen, Luc Marteling (crédit photo: ZLS)

Le duo de développement

Sven Collette est linguiste informatique au ZLS. Après sa formation en neurosciences à Munich (Université Louis-et-Maximilien) et Lausanne (Ecole polytechnique Fédérale), il a obtenu un doctorat de philosophie en neurosciences à l’université Pierre et Marie Curie à Paris. Il a travaillé de 2012 à 2016 comme chercheur postdoctoral à l’institut de technologie de Californie (CALTECH) à Pasadena. Dans la suite il a été consultant et chercheur dans le domaine de l’intelligence artificielle, avant de joindre le ZLS au début de 2021.

Le Minh Nguyen vient d’obtenir son master en sciences des technologies vocales à l’université de Groningen avec distinction cum laude. En 2021 il a réussi son bachelor à l’université du Luxembourg avec la mention très bien. Dans le cadre du programme Erasmus il a passé un semestre à l’université technique de Vienne. Il a démarré le développement du projet de reconnaissance vocale du luxembourgeois dans le cadre de ses études. Actuellement Le Minh Nguyen travaille à distance comme chercheur/programmeur pour la société Deepgram à San Francisco, spécialisée dans les plateformes vocales intelligentes.

Des informations supplémentaires au sujet du développement sont fournies sur la page d’accueil du site web schreifmaschinn.lu.

Les outils de reconnaissance vocale

En jargon technique les outils de reconnaissance de la voix sont appelés STT (Speech-to-Text) ou ASR (Automatic Speech Recognition). Un vétéran parmi les outils ASR est le projet KALDI qui a démarré en 2009 à l’université Johns-Hopkins. Aujourd’hui des géants du web comme Google, Microsoft, AWS, etc, proposent des services commerciaux de reconnaissance de la voix en ligne pour de nombreux langages. Ils ne sont toutefois pas intéressés aux langues à faibles ressources comme le luxembourgeois. D’autres géants comme Meta (Facebook) et des startup’s comme OpenAI et Coqui.ai ont développé des modèles à source ouverte qu’ils mettent à disposition de la communauté des chercheurs. L’état d’art actuel consiste à entraîner des larges réseaux neuronaux avec plusieurs langues et avec des millions de paramètres pour faire ensuite un réglage fin (fine-tuning) de ces modèles avec un entraînement supplémentaire pour une langue spécifique. Parmi les modèles à source ouverte il convient de relever les plus importants que je vais présenter plus en détail dans les prochains chapitres :

  • Wav2Vec de Meta (Facebook Research) (juin 2019)
  • Coqui-STT de Coqui.ai (mars 2021)
  • Whisper de OpenAI (septembre 2022)

Modèle Wav2Vec2

Le modèle wav2vec, développé par le laboratoire de recherche de Facebook (meta.ai), est le plus ancien et le plus connu des modèles ASR. Rien que sur la plateforme AI Huggingface on trouve 4.430 versions pré-entraînées de ce modèle, comme témoigne l’image ci-après:

Click to zoom

La version Wav2Vec2-XLSR-53 de ce modèle, publiée en décembre 2020, a été utilisée par Le Minh Nguyen. Elle a été pré-entraînée par Meta avec 56.000 heures d’enregistrements audio sans transcriptions en 53 langues, mais sans le luxembourgeois. Dans sa thèse de fin d’études Le Minh Nguyen présente les détails de son développement. Il a entraîné le modèle Wav2Vec2-XLSR-53 avec 842 heures d’enregistrements audio luxembourgeois sans transcriptions (unlabeled speech) et avec 14 heures d’enregistrements audio avec textes synchronisés (labeled speech). Un modèle de langage 5-gram, entraîné avec des textes luxembourgeois totalisant 20 millions de mots, a été ajouté au décodeur vocal. Les enregistrements audio et les textes ont été fournis par la Chambre des Députés et par RTL.

Une version plus récente du modèle, XLS-R, pré-entraîné avec 436.000 heures d’enregistrements audio en 128 langues, incluant le luxembourgeois, a été présentée par Facebook (meta.ai) en décembre 2021. A partir du début 2022, Peter Gilles, professeur de langage et linguistique et directeur du département Humanités à la faculté des Sciences Humaines, des Sciences de l’Éducation et des Sciences Sociales (FHSE) de l’université du Luxembourg, a développé le premier prototype d’une application de reconnaissance vocale luxembourgeois basée sur ce modèle. Il a présenté ses résultats en mai 2022 sur le site web Infolux de l’université du Luxembourg avec l’attribut “A very first model“. En février 2022 il avait déjà publié un premier espace de démonstration de ce modèle sur la plateforme Huggingface qui pouvait être testé par des initiés.

Click to zoom

Cette application incluait également un modèle de langage n-gram, mais ne supportait pas encore l”usage des lettres majuscules pour les substantifs. Elle n’atteignait pas le niveau des résultats qu’on obtient avec l’application schreifmaschinn.lu actuelle, mais c’était un jalon dans le développement des technologies de la voix au Luxembourg.

Pour l’application schreifmaschinn.lu, le modèle XLS-R a également servi de base. Pour l’entraînement du luxembourgeois, la durée des enregistrements audio avec transcriptions a été étendue à 16 heures. Elle sera portée prochainement à 100 heures.

Modèle Coqui-STT

La fondation Mozilla, qui est surtout connue pour son navigateur Firefox, est également un pionnier de la synthèse (Mozilla TTS) et de la reconnaissance (Mozilla-Deepspeech) de la parole. Mozilla a lancé en juillet 2017 le projet Common Voice pour collecter de vastes échantillons de données vocales. Hélas le luxembourgeois ne fait pas encore partie des langues supportées. En août 2021 la CEO de Mozilla informait son personnel que les activités de technologie de la voix seraient abandonnées au profit d’une focalisation sur Firefox. 250 personnes ont été licenciées. Dans la suite quelques anciens employés de Mozilla ont fondé en mars 2021 la start-up Coqui.ai sur les ruines des anciens projets vocaux de Mozilla. Les idées avancées par les fondateurs m’avaient incité à reprendre mes anciens travaux de développement d’une voix synthétique luxembourgeoise. J’ai résumé cette histoire en juin 2021 dans mes contributions “Text-to-Speech sound samples from Coqui-TTS” et “The best of two breeds” sur mon site web.

Les premiers résultats tangibles étaient prêts en janvier 2022 et ont été publiés sur mon site web dans les articles “Mäi Computer schwätzt Lëtzebuergesch” et “Mäi Computer schwätzt Lëtzebuergesch mat 4 Stëmmen“. En juillet 2022 j’ai publié sur Huggingface un espace de démonstration TTS multilingue et multi-orateur, incluant le luxembourgeois, qui a été très apprécié par la communauté Coqui.ai.

Click to zoom

Au printemps 2022, dans l’attente d’une correction de quelques bogues dans les modèles Coqui-TTS, je me suis focalisé sur la reconnaissance vocale du luxembourgeois moyennant le modèle Coqui-STT. J’ai décrit en juin 2022 mes expériences dans mon récit “Mäi Computer versicht Lëtzebuergesch ze verstoen” et j’ai publié fin juillet 2022 un modèle STT multilingue “Mir verstinn och Lëtzebuergesch !” sur la plateforme d’intelligence artificielle Huggingface. Je viens toutefois me rendre compte que cette application ne fonctionne plus correctement après une mise à jour de la plateforme.

Click to zoom

Vu les performances du modèle schreifmaschinn.lu et le potentiel du modèle Whisper présenté dans le prochain chapitre, la poursuite du développement d’un modèle Coqui-STT luxembourgeois ne fait plus de sens. Je vais me concentrer de nouveau sur le perfectionnement d’une voix luxembourgeoise avec la synthèse vocale Coqui-TTS.

Modèle Whisper

Le modèle de reconnaissance vocale pré-entraîné le plus récent s’appelle Whisper et a été présenté par la société OpenAI le 21 septembre 2022 et amélioré en décembre 2022 (version 2). OpenAI a été fondée en décembre 2015 comme organisation à but non lucratif avec l’objectif de promouvoir et de développer une intelligence artificielle à visage humain qui bénéficiera à toute l’humanité. Parmi les fondateurs se trouve Elon Musk, entrepreneur et milliardaire emblématique. L’organisation a été convertie en entreprise à but lucratif plafonné en mars 2019. OpenAI est surtout connue pour ses applications récentes Dall-E2 et ChatGPT qui font ravage sur le web.

Whisper a été entraîné avec 680,000 heures d’enregistrements audio avec transcriptions, dont 83% en anglais et 17% avec 96 langues différentes. Lors de la présentation du projet schreifmaschinn.lu Peter Gilles m’a informé qu’il s’est lancé dans l’adaptation de Whisper au luxembourgeois. Il y a quelques jours j’avais découvert les premières traces afférentes sur la plateforme Huggingface.

Click to zoom

Aujourd’hui j’ai constaté que cette application est maintenant opérationnelle sur Huggingface et tourne sur une infrastructure GPU T4. A première vue les performances de ce modèle sont géniales.

Click to zoom

Je vais tester cette version plus en détail dans les prochains jours, avec les mêmes jeux de tests que j’ai utilisé pour le projet schreifmaschinn.lu, et rapporter sur mes expériences.

Au rythme effréné actuel de l’évolution de l’intelligence artificielle, on va bientôt savoir si Whisper a le potentiel de détrôner le modèle Wav2Vec-XLS-R dans l’application schreifmaschinn.lu. De toute façon, se sont les données luxembourgeoises audio, avec les transcriptions soigneusement corrigées et assemblées, ainsi que l’expérience gagnée jusqu’à présent, qui constituent la vraie valeur d’un projet de reconnaissance vocale, et non l’architecture du réseau neuronal à la base.

Mise à l’épreuve de l’application schreifmaschinn.lu

Pour tester la qualité de reconnaissance de l’application schreifmaschinn.lu d’une façon reproductible j’ai utilisé trois jeux d’enregistrements pour mesurer la qualité de reconnaissance des mots transcrits :

  1. Fichiers audio enregistrés en studio
  2. Fichiers audio enregistrés en salle de réunion
  3. Fichiers audio enregistrés à la maison

Enregistrements en studio

J’ai sélectionné au hasard des enregistrements luxembourgeois dans mon corps de paroles multilingues TTS-12800, publié en juillet 2022 sur Huggingface. Ces enregistrements proviennent de dictées et d’histoires disponibles sur le site web de l’université du Luxembourg et d’émissions radio disponibles sur le site web de RTL. Ces enregistrements se distinguent par une très bonne qualité. Pour garder un équilibre entre hommes et femmes, j’ai choisi les fichiers audio de test parmi les contributions de 4 oratrices et de 4 orateurs, avec les transcriptions originales. Les enregistrements ont tous une durée inférieure à 10 secondes et sont échantillonnés avec une fréquence de 16 KHz. Les transcriptions ont été corrigées manuellement.

Enregistrements en salle de réunion

Il s’agit de six enregistrements de discours à la Chambre des Députés que Peter Gilles a utilisé pour le test de son premier modèle ASR luxembourgeois XLS-R. J’ai édité ces fichiers pour créer des enregistrements d’une durée maximale de 30 secondes. J’ai créé moi-même des transcriptions de référence. Il faut dire que même pour un humain c’est un exercice difficile car dans ces enregistrements on trouve des termes exotiques et des défauts d’élocution et il faut parfois deviner ce que le député voulait dire. J’ai généré des fichiers avec différentes fréquences d’échantillonnage et constaté que la reconnaissance des mots diffère en fonction de ce paramètre. Dans certains cas la version originale produit les meilleurs résultats, dans d’autres cas c’est la version avec un échantillonnage réduit à 8KHz qui est la plus compréhensible. Je n’ai toutefois pas pu déceler une dépendance systématique entre résultats et fréquence d’échantillonnage et j’ai finalement utilisé les versions originales, échantillonnées à 44,1 KHz respectivement à 16 KHz.

Enregistrements à la maison

J’ai enregistré et édité moi-même les fichiers audio pour le troisième jeu de test avec l’application Voice Memos sur mon iPhone. Comme référence, j’ai lu la fable d’Esope De Nordwand an d’Sonn dans un environnement calme. Ensuite j’ai édité ce fichier audio pour le couper en deux morceaux ayant des durées inférieures à 30 secondes. Ensuite j’ai ajouté du bruit de fond avec différentes intensités. Dans un premier cas on entend comme bruit de fond mes petits-enfants qui s’amusent avec des jeux vidéo sur iPAD. Dans le deuxième cas un sèche-cheveux perturbe l’enregistrement.

Evaluation des résultats de mes tests

Pour tester l’application schreifmaschinn.lu, j’ai téléchargé (upload) les différents enregistrements, un après l’autre, sur la page web listen. Ensuite j’ai copié la transcription affichée sur cette page, avec le bouton copier/coller, dans un éditeur de texte, pour le comparer avec la transcription de référence.

Click to zoom

Pour évaluer les résultats des comparaisons, j’ai demandé conseil auprès d’un nouveau programme d’intelligence artificielle (AI) qui impressionne aussi bien les profanes techniques que les spécialistes AI, à savoir le robot ChatGPT, lancé récemment (version du 15 décembre 2022) par la société OpenAI. Ma première question était “How to evaluate the performance of an ASR system ?“. La réponse est détaillée et correcte :

Click to zoom

Comme deuxième question j’ai demandé des précisions sur la mesure du WER dans la même session: “How to measure the WER ?“. La réponse est explicite et comprend un exemple de calcul :

Click to zoom

Je suis impressionné par cette application d’OpenAI. Pour obtenir ce genre d’informations dans le passé, j’étais obligé de faire des recherches sur Google, de visiter quelques sites web parmi les liens proposés et de formuler moi-même une synthèse des informations recueillies. ChatGPT facilite cette tâchreurs et offre un gain de temps appréciable.

Avec la confirmation que WER constitue un outil de mesure simple et valable, j’ai comparé les résultats fournis par schreifmaschinn.lu avec les transcriptions de référence des trois jeux de fichiers audio présentés ci-avant. Pour relever les erreurs, j’étais indulgent. Par exemple je n’ai pas compté des erreurs répétitives dans un même enregistrement plusieurs fois et j’ai compté une séquence de plusieurs fautes combinées comme une seule erreur. Comme je présente ci-après en détail les textes produits par schreifmaschinn.lu, avec les erreurs prises en compte marquées en rouge, ainsi que les transcriptions de référence, chacun est libre de faire ses propres interprétations et calculs.

Présentation des résultats détaillés

Les résultats détaillés des 3 jeux de fichiers audio sont relevés dans des tableaux ci-après dans 4 colonnes avec les contenus suivants:

  1. Identification de l’enregistrement
  2. Transcription de référence
  3. Texte reconnu par schreifmaschinn.lu
  4. Nombre d’erreurs / nombre de mots dans transcription de référence = taux d’erreurs en %

Premier jeu : enregistrements de dictées et d’émissions radio

Spriechergebraddelten Textgeschriwwenen TextWER
CarolineA villen Industrielänner brénge Regierungen et net fäerdeg, Komma, hire Bierger plausibel ze erklären,A villen Industrielänner brénge Regierungen et net fäerdeg kommen hire Bierger plausibel ze erklären.1 / 14 = 7,1%
JudithD’Hieselter sinn a ganz Europa doheem, bis op den aacht-an-siechzegste Breedegrad, an a Klengasien.D’ Hieselter sinn a ganz Europa doheem bis op den aachtasechzegste breede Grad an a kleng Asien.2 / 14 = 14,3%
NathalieVläicht steet den Dag vun haut, wou eng ganz Natioun sech d’Fangere beim Diktat wond geschriwwen huet, och eng Kéier an de Geschichtsbicher,Vläicht steet den Dag vun haut wou eng ganz Natioun sech d’Fangere beim Diktat Wont geschriwwen huet och eng Kéier an de Geschichtsbicher.1 / 23 = 4,3%
SaraMäi Bäcker geet mer op de Wecker, vu senge Bréidercher ass ee Bréitchen sou haart wéi dat anert.Mäi Bäcker geet ma op de Becker vu senge Bréidercher ass ee Bréitchen esou haart wéi dat anert.2 / 18 = 11%
GuyEt besteet also e groussen Ënnerscheed, wéi esou dacks, tëscht dem Wonschdenken an dem realisteschen Aschätze vun der politescher Situatioun;Et besteet also e groussen Ënnerscheed wéi sou dacks tëscht dem Wonschdenken an dem realisteschen Aschätze vun der politescher Situatioun.0 / 20 = 0%
JempE schafft, oder besser gesot, en ass am Ministère vun den ongeléiste Problemer.E schafft oder besser gesot, en ass am Ministère vun den ongeléiste Problemer.0 / 13 = 0%
LucD’Manipulatioun zeechent sech jo doduerch aus, datt een déi Beaflossung net an Uecht hëlt.Manipulatioun zeechent sech jo doduerch aus, datt een déi Beaflossung net an Nuecht hëlt.1 / 14 = 7,1%
MarcoD’Aféierung vum GSM ufanks de nonzeger Joren war fir d’Postverwaltung deen ambitiéiste Projet deen se bis dohin ënnerholl huet.D’ Aféierung vum Gsm ufanks den nonzeger Joren war fir d’Post Verwaltung deen ambitiéise Projet se bis dohinner ënnerholl huet.3 / 19 =
15,8%

Le taux de reconaissance des mots du premier jeu s’élève à 10 / 135 = 7,4%

Deuxième jeu : enregistrements de la Chambre des Députés

Identificationgebraddelten Textgeschriwwenen TextWER
Chambre-1Villmools merci, Här President, den Avis vun den Experten huet kloer gewisen, datt de Covid Kris nach net eriwwer ass, datt de Risk nach ëmmer do ass an datt d’Expektative fir September, zumindestens wat d’Experten ugeet, déi sinn, datt mer eventuell virun enger neier Well kënne stoen, wëlleg, op wëllegem Datum wëlleg Variante mat wëlleger Virulenz, wëlleger Ustiechlechkeet, dat wësse mer an dësem Moment selbstverständlech…Deemools merci, Här President, den Avis vun den Experten huet kloer gewisen, datt de Covid Kris nach net eriwwer ass, dass de Risk nach ëmmer do ass an datt d’Expektative fir September, zumindestens wat d’Experten ugeet, déi sinn, datt mer eventuell virun enger neier Welt kënne stoen, wellech op wellechem Datum, Wellegvariant mat Wëllegevirulenze Wellecher ustiechlech geet, dat wësse mer an dësem Moment selbstverständlech.4 / 65
=
6,1%
Chambre-2Mir hunn eng Regierung an och an deene Rieden, déi bis elo gehal goufen, ass eigentlech, mengen ech keen op Impfniewewierkungen agaangen, mee dat ass e reelle Problem, wann Der mat villen Doktere schwätzt, soen déi Iech, datt se dee Problem, de Problematik vun den Impfniewenierkungen an hirer Praxis als e reelle Problem gesinn a mir mussen och de Leit, an sinn der ganz vill déi sech dorëm Suerge maachen, einfach dat Gefill ginn, dat mer dat eescht huelen, et musse Prozedure ginn, net bürokratesch Prozeduren …Mir hunn eng Regierung an och mir an deene Rieden, déi bis elo gehal goufen, ass een, mengen ech, keen op d’Impf Niewewierkungen agaangen, mee dat ass e reelle Problem, wann Der mat villen Doktere schwätzt, soen déi Iech, datt se dee Problem, déi Problematik vun den imnieweniewe Wierkungen an hirer Praxis als e reelle Problem gesinn a mir mussen och de Leit an, sinn der ganz vill, déi sech dorëm Suerge maachen, einfach dat Gefill ginn, dat mat dat Eescht huelen? Et musse Prozedure ginn, net bürokratesch Prozeduren.5 / 86
=
5,8%
Chambre-3Ech denken, dass de Recul ons do wäert gutt doen an dass déi Evaluatioun, déi mer matmaachen, déi wärt eis mobiliséieren, mee dass déi eis Opschlëss gëtt, fir dann fir d’Zukunft eng gutt Gesetz en Place kënnen ze kréien, wou mer och aus den Erfarunge vun deenen anere Länner kënnen léieren, mmmh, ech wollt och nach agoen op déi Convin-Studie, déi ass ugeschwat ginn, jo, déi ass iwwerholl ginn, vun der Orchestra, dat leeft nach ëmmer, d’Resultater vun de Januar, Februar sinn eran, sinn nach net statistesch ausgewäert, mee dat leeft u sech riit weider.Ech denken, dass en de Recul ons do wäert gutt doen an dass déi Evaluatioun, wou mer matmaachen, iwwert eis mobiliséieren, mee dass déi eis opschlëssgëtt, fir da fir d’Zukunft eng gutt Gesetze en place kënnen ze kréien, wou mer och eis Erfarunge vun deenen anere Länner kënnen léieren a ech wollt och nach agoen op Dekonvinsstudien, déi ass ugeschwat ginn, jo, di ass iwwerholl ginn, vun der Okestrachtut, dat leeft nach ëmmer d’Resultater vun de Januar, Februar sinneratean net statistesch ausgewäert, mee dat leeft u sech Riad weider.12
/
95
=
12.7%
Chambre-4Leider kënne mer dat net maachen, well eis Iwwerzeegung ass déi, datt mer keng Impfflicht wëllen, Dir wollt de proposéiert an de Mentiounen avant projet de loi ebe just fir eng Impflicht der Chamber virzeleeën, do hu mer einfach eng fundamental aner Vue mir sin fir d’Fräiwëllegkeet vun der Impfung, wëllen also och keen esou en avant projet de loi, mir kënnen also net mat ënnerstëtzen, mee nach eng Kéier en häerzlechen Merci och fir Är Oppenheet gëintiwwert den Oppositiounsparteien. Merci.Leider kënne mer dat net maachen, well eis Iwwerzeegung ass déi, datt mer keng Impfflicht wëllen, Dir wollt dee proposéiert an de Motiounen a ven Projet de loi ebe just fir eng Impflicht der Chamber virzeleeën, do hu mer e fir eng fundamental aner Vue mir sin fir d’Fräiwëllegkeet vun der Impfung wëllen also och keen esou en Aven Projet de loi, mir kënne se also net mat ënnerstëtzen, mir neien Kieren Hercleche merci och fir Är Oppenheet geet iwwert de Oppositiounspartei Merci.5
/
81
=
6,2%
Chambre-5Do ass vun Exzellenz Zenteren geschwat ginn, nun Branche an der Ekonomie, déi gutt forméiert Leit brauchen a mir verstinn net wéi mer probéieren op där enger Säit Secteuren ze developpéieren, wou héich qualifizéiert Leit sollen herno eng Aarbecht fannen, op där anerer Säit probéiere mer dat Mëttelméissegkeet an eiser Schoul zum Standard, zum Standard gëtt, dat passt op jidde Fall net iwwerteneen, esou kréie mer weeder déi richteg Leit forméiert, fir an deene Secteuren täteg ze sinn an esou kréie mer weeder …Do ass vun Exzellenz Zentere geschwat ginn, nu Branche an der Ekonomie, déi gutt forméiert Leit brauchen a mir verstinn net wéi mer probéieren op där enger Säit Secteuren ze developpéieren, wou héich qualifizéiert Leit sollen herno eng Aarbecht fannen op där anerer Säit probéiere mer dat Mëttelméissegkeet an eiser Schoul et zum Standard, zum Standargëtt, dat passt op jidde Fall en net iwwerteneen, esou kréie mer weeder déi richteg Leit forméiert, fir an deene Secteuren täteg ze sinn an esou kréie mer weeder.4
/
83
=
4,8%
Chambre-6Här President, d’Ried vum Premierminister huet den Tour vun enger Partie vu wichtege Problemer vum moderne Lëtzebuerg gemaacht, et war jo och kloer gesot ginn, dass dëst en Astig war an eng Debatt, déi Mëtt November weidergeet mat deem wat mer han dann hei an der Chamber iwwert den nationale Plang am Kader vun der Lissabonstrategie …E President, d’Ried vum Premierminister huet den Tour vun enger Partie vu wichtege Problemer vum moderne Lëtzebuerg gemaacht, etwar jo och kloer gesot ginn, dass dëst en Astig war an eng Debatt, déi Mëtt November weidergeet mat deem wat mer a dann hei an der Chamber iwwert den nationale Plang am Kader vun der Lissabonstrategie.3
/
56
=
5,4%

Le taux de reconnaisance des mots du deuxième jeu s’élève à 33 / 466 = 7,1%

Troisième jeu : enregistrements à domicile avec bruit de fond

Nordwand-1 : texte de référence:

An der Zäit hunn sech den Nordwand an d’Sonn gestridden, wie vun hinnen zwee wuel méi staark wier, wéi e Wanderer, deen an ee waarme Mantel agepak war, iwwert de Wee koum. Si goufen sech eens, datt deejéinege fir dee Stäerkste gëlle sollt, deen de Wanderer forcéiere géif, säi Mantel auszedoen.

Identificationgeschriwwenen TextWER
Nordwand 1: sans bruit de fondAn der Zäit hunn sech den Nordwand an d’Sonn gestridden wie vun hunnen zwee wuel méi staark wier wéi e Wanderer deen an ee waarme Mantel agepaakt war iwwert de Wee koum si goufe sech eens datt deejéinege fir dee stäerkste gëlle sollt deen de Wanderer forcéiere géif säi Mantel auszedoen.2
/
51
=
3,9%
Nordwand 1: bruit enfants
0db peak
An der Zäit hu sech den Loft Wand an Son gestridden wie vun hinnen zwee wuel méi staark wier wéi e Wanderer deen an de waarme Wandel agepakt war iwwert de Wee koum si goufe sech eens datt deejéinege fir dee stäerkste gëlle sollt deen de Wanderer forcéiere géif säi Mantel auszedoen.
Nordwand 1: bruit enfants -10db peakAn der Zäit hu sech den Noftwand an d’Sonn gestridden wie vun hunnen zwee wuel méi staark wier wéi e Wanderer deen an ee waarme Mantel agepaakt war iwwert de Wee koum si goufe sech eens datt deejéinege fir dee stäerkste gëlle sollt deen de Wanderer forcéiere géif säi Mantel auszedoen.
Nordwand 1: bruit enfants
-20db peak
An der Zäit hunn sech den Nordwand an d’Sonn gestridden wie vun hunnen zwee wuel méi staark wier wéi e Wanderer deen an ee waarme Mantel agepaakt war iwwert de Wee koum si goufe sech eens datt deejéinege fir dee stäerkste gëlle sollt deen de Wanderer forcéiere géif säi Mantel auszedoen.2
/
51
=
3,9%

Nordwand-2 : texte de référence:

Den Nordwand huet mat aller Force geblosen, awer wat e méi geblosen huet, wat de Wanderer sech méi a säi Mantel agewéckelt huet. Um Enn huet den Nordwand säi Kampf opginn. Dunn huet d’Sonn d’Loft mat hire frëndleche Strale gewiermt, a schonn no kuerzer Zäit huet de Wanderer säi Mantel ausgedoen. Do huet den Nordwand missen zouginn, datt d’Sonn vun hinnen zwee dee Stäerkste wier.

Identificationgeschriwwenen TextWER
Nordwand 2: sans bruit de fondDen Nordwand huet mat aller Force geblosen awer wat e méi geblosen huet wat de Wanderer sech méi a säi Mantel agewéckelt huet um Enn huet den Nordwand säi Kampf opginn dunn huet d’Sonn d’Loft mat hire frëndleche Strale gewiermt a schonn no kuerzer Zäit de Wanderer säi Mantel ausgedoen do huet den Nordwand missten zouginn datt d’Sonn vun hinnen zwee dee stäerkste wier.2
/
65
=
3,1%
Nordwand 2: bruit sèche-cheveux
0db peak
Neeee Eeelere eenee.
Nordwand 2: bruit sèche-cheveux
-10db peak
Den Nord dann gëtt en aller a Eiese a Eegeninteresse geheien Eau huet d’Sonn oft mat hire frendleche Strale Gewienaschonn e Dezembere Anne ausgedoe huet den No Tandis zou ginn dat ëneen zwee beschte wier.
Nordwand 2: bruit sèche-cheveux
-20db peak
Den Nordwand huet mat aller Force geblosen awer wat e méi geblosen huet wat de Wanderer sech méi a säin Mandel agewéckelt hierum Enn huet den Nord a säi Kand dunn huet d’Sond d’Loft mat hire frëndleche Strale gewiert a schonn no kuerzer Zäit de Wanderer säi Mantel ausgedoen do huet den Nordwand missten zouginn datt d’Sonn vun hinnen zwee dee stäerkste wier.
Nordwand 2: bruit sèche-cheveux
-30db peak
Den Nordwand huet mat aller Force geblosen awer wat e méi geblosen huet wat de Wanderer sech méi a säi Mantel agewéckelt huet um Enn huet den Nordwand säi Kampf opginn dunn huet d’Sonn d’Loft mat hire frëndleche Strale gewiermt a schonn no kuerzer Zäit de Wanderer säi Mantel ausgedoen do huet den Nordwand missten zouginn datt d’Sonn vun hinnen zwee dee stäerkste wier.2
/
65
=
3,1%

Conclusions

Pour l’évaluation globale je n’ai pas considéré les résultats des enregistrements avec un bruit de fond élevé. Pour le calcul du WER moyen pour mon test complet je me suis de nouveau adressé au modèle AI ChatGPT, avec la question suivante: “What is the WER if I found 51 errors for 833 words in the reference transcriptions ?“.

Click to zoom

ChatGPT va remplacer ma calculatrice. J’ai demandé l’avis du ChatGPT au sujet du résultat avec la question “Is this WER value good or bad for a low resource language ASR system ?“.

Click to zoom

Je me rallie à cet avis et j’attribue cinq étoiles à l’application actuelle schreifmaschinn.lu. Pour terminer, j’ai demandé l’opinion personnelle de ChatGPT concernant le résultat. Voici sa réponse:

Click to zoom

Il n’y a rien à ajouter!

Bibliographie

Voice-Cloning mat Coqui.ai

Leschten update : 25.6.2022

Fake News, Photo Retouching, Deepfake a Voice Clonig sinn Begrëffer, déi een zënter e puer Joren ëmmer méi oft héiert.

Coqui.ai, eng Start-Up aktiv am Beräich vun der Sproochsynthees (TTS) a Sproocherkennung (STT), déi ufanks 2021 vun fréieren Mataarbechter vum Mozilla-Voice-Projet gegrënnt gouf, huet virun e puer Deeg eng flott Voice-Cloning-Applikatioun presentéiert.

Domat kann jiddereen seng eege Stëmm benotzen fir Texter a syntheetesch Sprooch ëmzewandelen.

Audio Datei ophuelen oder oplueden

Et brauch een dozou eng Audio-Datei vun maximal 30 Sekonnen, déi een um Website vun Coqui.ai kann ophuelen oder oplueden. Ech hunn dat haut emol ausprobéiert, mat menger eegener Stëmm an mat där vum Charel, ee vu mengen Enkelkanner.

Nodeems déi kënstlech TTS-Stëmm generéiert gouf, kann een se direkt ausprobéieren. Den Sproochsynthees-Modell schwätzt bis elo nëmmen Englesch, wat et e bësschen méi schwéier mécht fir d’original Stëmmen erëmzekennen.

Text mat Stëmm syntheetesch generéieren

Als Text hunn ech den Ufank vun deem bei Linguisten beléiwten Epos vum “Nordwand and der Sonn” benotzt:

The North Wind and the Sun were disputing which was the stronger, when a traveler came along wrapped in a warm cloak. They agreed that the one who first succeeded in making the traveler take his cloak off should be considered stronger than the other.

Den Tempo vun der generéierter Sprooch kann normal, schnell oder lues gewielt ginn.

Dem Charel seng Stëmm

Hei ënnen drënner kënnen mer dem Charel seng Opnam lauschteren an eis de Signalverlaf mam Audacity Programm ukucken.

Audio source Charel : 29 secondes

An hei ass dem Charel seng TTS-Stëmm an den entspriechenden Signalverlaf. Fantastesch!

TTS Charel slow

Dem Marco seng Stëmm

Als Input fir meng Stëmm hunn ech den Ufank vum Interview iwwert d’Aféierung vum GSM zu Lëtzebuerg benotzt, dat vum C2DH vun der uni.lu zum 175ten Gebuertsdag vun der Post gefouert gouf.

D’Sproochsynthees hunn ech mat den dräi Vitessen duerchgeféiert.

Audio source Marco : 29 secondes
TTS Marco medium
TTS Marco slow
TTS Marco fast

Als Vergläich meng TTS-Stëmm mat engleschem Input:

TTS Marco-eng-medium

Coqui.ai Konto

Zum Schluss gesi mer op mengem Coqui.ai Konto déi zwou Stëmmen a kënnen déi generéiert Audio-Datei eroflueden.

Schlusswuert


Ech hoffen deemnächst Voice-Cloning mat engem Multi-Sprooch TTS-Modell, inklusiv Lëtzebuergesch, virzestellen.

Mäi Computer versicht Lëtzebuergesch ze verstoen

Dernière mise à jour : 1er août 2022

Introduction

Dans l’attente de l’élimination de quelques bogues dans les modèles de synthèse vocale (TTS) par la communauté Coqui.ai, aux fins de progresser avec mon projet de création d’une voix TTS luxembourgeoise, je me suis focalisé les dernières semaines sur la reconnaissance automatique de la parole luxembourgeoise (STT: Text to Speech ou ASR: Automatic Speech Recognition).

Mes premiers essais effectués dans ce domaine en janvier 2022 étaient encourageants. Impressionné par la présentation du premier modèle STT luxembourgeois par le Pr Peter Gilles de l’université du Luxembourg sur la plateforme d’intelligence artificielle HuggingFace en février 2022, j’ai poursuivi mes tests avec le projet Coqui-STT (version 1.3.0).

Bases de données LB-2880 et LB-27072

Pour entraîner un modèle STT avec des réseaux neuronaux, il faut disposer d’une base de données audio avec les transcriptions de la parole enregistrée. Au début 2022 j’avais finalisé une base de données avec les enregistrements de quatre oratrices (au total 1005 échantillons) pour l’entraînement d’un modèle TTS luxembourgeois avec quatre voix. Entretemps j’ai complété cette base avec des enregistrements publics de trois orateurs (1.676 échantillons) et je l’ai étoffé avec les enregistrements audio du dictionnaire luxembourgeois LOD (24.678 échantillons).

Ainsi j’ai pu constituer deux ensembles de données avec 2.880, respectivement 27.072, échantillons qui se prêtent pour l’entraînement de modèles TTS et STT. Je vais prochainement publier ces bases de données LB-2880 et LB-27072 sur mon compte Github.

Les deux ensembles sont segmentés en trois volets. Le plus large (train.csv) est utilisé pour l’entraînement du modèle, le deuxième (val.csv) sert à mesurer le progrès de l’entraînement après chaque cycle d’itérations (époque) et le troisième (test.csv) permet de tester la performance du modèle à la fin de l’entraînement. Les détails sont indiqués dans le tableau qui suit:

Base de donnéesLB-2880LB-27072
Durée totaleca 7 heuresca 13 heures
échantillons train256025600
échantillons val1921344
échantillons test128128

Transfert d’apprentissage

Convaincu que le seul moyen pour réussir l’entraînement d’un modèle STT luxembourgeois consiste à se baser sur un large modèle pré-entraîné dans une autre langue, je me suis tout de suite concentré sur cette option de transfert d’apprentissage. Les résultats impressionnants que le Pr Peter Gilles a obtenu sur base du modèle wav2vec2-XLS-R-300m créé par Meta AI (Facebook) ont renforcé ma conviction.

Coqui.ai a mis un modèle pré-entraîné en langue anglaise à disposition de la communauté. Comme la langue luxembourgeoise utilise un alphabet plus large que l’Anglais avec les caractères accentués suivants

['à','á','â','ä','ç','è','é','ê','ë','î','ï','ô','ö','û','ü']

il faut supprimer la dernière couche de neurones du modèle pré-entraîné anglais pour pourvoir l’entraîner avec une base de données luxembourgeoise. Le hyper-paramètre de configuration ‘--drop_source_layers 1‘ permet de remplacer la dernière couche avec une nouvelle couche, initialisée avec l’alphabet luxembourgeois.

Hélas les premiers résultats ne répondaient pas du tout à mes attentes et les métriques affichées étaient plus mauvaises que celles obtenues lors de mes premiers tests, effectués à partir de zéro au début de l’année.

Modèles HuggingFace

Pour exclure que la qualité de ma base de données soit insuffisante, j’ai essayé de reproduire l’entraînement du premier modèle STT luxembourgeois sur HuggingFace avec mes propres données. Comme l’utilisation du modèle géant wav2vec2-XLS-R-300m, qui a servi de base pour le premier modèle, dépassait avec 300 millions de paramètres la capacité de traitement de mon ordinateur desktop, ainsi que celle de mon compte Pro sur la plateforme Google Colab, j’ai choisi un modèle pré-entraîné plus simple sur HuggingFace, à savoir le modèle Wav2Vec2-XLSR-53.

Avec un résultat WER de 0,17 j’ai réussi à obtenir des valeurs de même niveau que celles rapportées par le Pr Peter Gilles. Je vais prochainement publier mon modèle résultant sur mon compte HuggingFace.

Modèle Coqui-STT

On peut se demander quel est l’intérêt de s’acharner sur d’autres modèles STT que ceux offerts en source ouverte sur la plateforme formidable HuggingFace qui constitue aujourd’hui la référence en matière de l’apprentissage automatique profond et la plus grande communauté d’intelligence artificielle (AI) sur le web.

La réponse n’est pas simple. Une raison est certainement la taille des modèles STT entraînés. Si la taille est de quelques Giga Bytes dans le premier cas, elle est de quelques dizaines de Mega Bytes dans le cas du modèle Coqui-STT, ce qui permet de le porter sur un mobilophone (iOS et Android) ou sur un nano-ordinateur mono-carte comme le Raspberry Pi. Une deuxième raison est l’adaptation plus simple à son propre environnement. La configuration fine du modèle Coqui-STT simplifie son optimisation pour une utilisation spécifique. Personnellement je suis d’avis que la majeure raison constitue toutefois la transparence des processus. Les recettes HuggingFace sont une sorte de boîte noire d’usine à gaz qui fournit des résultats spectaculaires, mais dont le fonctionnement interne est difficile à comprendre, malgré l’ouverture du code. Pour apprendre le fonctionnement interne de réseaux de neurones un modèle comme Coqui-STT est plus approprié. J’ai donc continué à explorer l’apprentissage automatique profond du modèle Coqui-STT à partir de zéro, avec la certitude que ma base de données est de qualité.

Comme le fichier de configuration Coqui-STT comporte 96 hyper-paramètres, j’ai essayé de comprendre le rôle de chaque hyper-paramètre. J’ai vérifié également l’influence de quelques hyper-paramètres clés sur l’entraînement du modèle à l’aide d’une base de données restreinte de 100 échantillons. Les résultats significatifs sont commentés ci-après:

Similarité des entraînements

La taille d’un réseau de neurones est déterminée par le nombre de couches, le nombre de neurones par couche et le nombre de connexions entre neurones. Le total constitue le nombre de paramètres du modèle, à ne pas confondre avec les hyper-paramètres qui spécifient la configuration du modèle. Les paramètres du modèle sont initialisés au hasard au début de l’entraînement. Pour cette raison chaque processus d’entraînement produit des résultats différents. Le graphique qui suit montre en trois différentes vues que les différences sont négligeables.

Nombre de couches

Le nombre de couches par défaut du modèle Coqui-STT est de 2048. Ce nombre est trop élevé pour une petite base de données. La figure suivante montre en deux vues l’évolution de l’entraînement en fonction du nombre de couches.

Nombre de lots

Les échantillons de la base de données pour entraîner le modèle STT sont répertoriés dans un fichier csv dans le format suivant:

wav_filename,wav_filesize,transcript

wavs/guy/walresultat-04.wav,232854,awer och net op eng spektakulär manéier obwuel a prozenter ausgedréckt ass de minus dach méi staark wéi a sëtz ausgedréckt

wavs/sara/Braun_042.wav,113942,ech hunn am bësch eng heemeleg kaz fonnt

wavs/jemp/WD-2007-jemp-07.wav,197962,wou en dag fir dag e puer vun deene fäll klasséiert

wavs/judith/marylux_lb-wiki-0138.wav,132754,florange ass eng franséisch uertschaft a gemeng am departement moselle a loutrengen

........... 

Chaque ligne du fichier csv correspond à un échantillon et comporte le chemin et le nom d’un fichier audio, la taille de ce fichier et la transcription de l’enregistrement audio, en lettres minuscules et sans signes de ponctuation. Les échantillons sont regroupés par lots lors de l’entraînement. Une itération d’entraînement comprend le traitement d’un seul lot. Une époque comprend le total des itérations pour traiter tous les échantillons. Si la taille d’un lot est égal à un, le nombre des itérations est égal au nombre des échantillons. Dans le cas d’un lot de 10, le nombre des itérations est seulement un dixième du nombre des échantillons. Comme le temps de calcul d’une itération n’augmente presque pas avec l’accroissement de la taille d’un lot, le temps d’entraînement se réduit de la même manière. On a donc intérêt à spécifier une taille élevée des lots. Hélas, la taille des lots est fonction de la mémoire disponible du processeur graphique (GPU). Une taille trop élevée génère des erreurs “memory overflow” .

J’ai réalisé tous mes entraînements sur mon ordinateur desktop avec GPU NVIDIA RTX2070 avec des lots de 32, respectivement de 16 dans certains cas spécifiques.

Rapport entre entraînement et validation

Le graphique qui suit montre l’évolution de l’entraînement pour une base de données déterminée en fonction de la répartition des échantillons pour l’entraînement et pour la validation.

La segmentation de 93:7 que j’ai chois semble être appropriée.

Taux Dropout

Le mécanisme de “dropout” permet de réguler l’apprentissage d’un réseau de neurones et de réduire le “overfitting“. Il consiste à la suppression au hasard de connexions entre neurones pendant chaque itération à un taux spécifié dans la configuration. Le graphique suivant montre l’influence de ce taux sur l’entraînement. La valeur par défaut est de 0.05 et produit les meilleurs résultats.

Taux d’apprentissage

Le taux d’apprentissage (learning rate) est un hyper-paramètre important dans la configuration d’un modèle STT ou TTS. La valeur par défaut du modèle Coqui-STT est de 0.001. La figure qui suit montre l’influence de ce taux sur l’entraînement.

Une option de configuration intéressante proposée par le modèle Coqui-STT est la suite des hyperparamètres suivants:

--reduce_lr_on_plateau true
--plateau_epochs 3
--plateau_reduction 0.5

Elle permet de modifier le taux d’apprentissage si la performance de l’entraînement ne progresse plus pendant trois époques. On parle de plateau dans la métrique affichée. J’ai utilisé cette option dans tous mes entraînements.

Augmentation des données

En général les modèles d’apprentissage automatique en profondeur sont très gourmands en données. Que faire si on ne dispose pas d’un nombre important de données pour alimenter un modèle ? On augmente les données existantes en ajoutant des copies modifiées des échantillons ! Dans le cas du modèle Coqui-STT on créé par exemple des fichiers audio modifiés avec les mêmes transcriptions. En changeant le volume, le ton, la cadence ou le spectre des enregistrements, on peut créer des échantillons supplémentaires.

L’outil data_augmentation_for_asr de Frederic S. Oliveira permet de générer aisément des nouveaux fichiers .wav et .cvs à ajouter à la base de données existante. J’ai réalisé des tests afférents en désignant ce processus comme augmentation externe. Le modèle Coqui-STT inclut une telle option sans recourir à un outil externe et sans augmenter le temps d’entraînement. L’hyper-paramètre suivant, ajouté au script d’entraînement,

--augment "pitch[p=1.0,pitch=1~0.2]" "tempo[p=1.0,factor=1~0.5]"

permet par exemple de tripler le nombre des échantillons.

Suivant mes tests l’augmentation des donnés ne présente plus d’intérêt si le nombre des échantillons originaux dépasse quelques milliers.

Un type d’augmentation pour l’entraînement STT que je n’ai pas encore testé est la création d’échantillons synthétiques moyennant un modèle TTS luxembourgeois. C’est une piste que je vais encore explorer.

Résultats des entraînements avec les deux bases de données

LB-2880

La base de données LB-2880 comprend 2530 échantillons enregistrés par 4 oratrices et par 3 orateurs, ainsi que 350 mots du dictionnaire LOD. Le tableau qui suit relève les résultats pour des entraînements avec différents paramètres, pendant 30 époques chacun:

coucheslotaugmentationmeilleur modèle acoustiqueWERCERLOSS
102416sansbest_dev_17600.7050.22173,9
102416internebest_dev_27200,7170.22269,0
204816sansbest_dev-14400.7230.22478.5
204816externebest_dev-23950.7760.27178.4
204816internebest_dev-35200.7100.23170,8

LB-27072

La base de données LB-72072 est identique à la base LB-2880, mais avec l’addition de 24.192 échantillons (mots) du dictionnaire LOD. Les résultats sont affichés ci-après:

coucheslotaugmentationmeilleur modèle acoustiqueWERCERLOSS
102416sansbest_dev-256000.7290.25394.2
204816sansbest_dev-192000.7320.24797.2
204816internebest_dev-416000.8700.33892.8

Comparaison

Contrairement à mes attentes, l’inclusion de tous les mots du dictionnaire LOD ne produit pas un meilleur modèle STT, au contraire. Les métriques des modèles LB-27072 sont globalement moins performants que celles des modèles entraînés avec la base de données LB-2880. Je vais prochainement explorer si la base de données LB-27072 présente des avantages pour l’entraînement d’un modèle TTS.

Les performances des cinq modèles entraînés avec la base de données LB-2880 ne diffèrent pas sensiblement. Je me propose de retenir le modèle à 1024 couches et entraîné sans augmentation de données comme meilleur modèle acoustique.

Tensorflow Lite

Il est recommandé de convertir le meilleur modèle en format Tensorflow Lite (.tflite) pour pouvoir le déployer sur des systèmes à ressources restreintes comme des mobilophones. Le script pour exporter le modèle est le suivant:

python3 -m coqui_stt_training.train \
--checkpoint_dir /home/mbarnig/STT/losanaju-camaguje/lb-datasets/checkpoints-2880-1024/ \
--export_dir /home/mbarnig/STT/losanaju-camaguje/lb-datasets/exported-model \
--export_tflite true

Le modèle exporté a une taille de 12.2 MB. Je signale qu’il existe un standard ouvert pour les modèles AI, appelé ONNX (Open Neural Network Exchange), qui n’est pas encore supporté par Coqui-STT.

Modèle de langage

Un système de reconnaissance de la parole ne comporte pas seulement un modèle acoustique comme nous l’avons vu jusqu’à présent, mais également un modèle de langage qui permet de corriger et de parfaire les résultats du modèle acoustique. L’outil KenML représente actuellement l’état d’art dans la création d’un modèle de langage. HuggingFace et Coqui-STT supportent tous les deux cet outil, en combinaison avec le modèle acoustique.

Dans le cas du projet Coqui-STT, dont le code est exécuté dans un conteneur Docker, sans intégration de l’outil KenML, la réalisation du modèle de langage luxembourgeois demande quelques bricolages informatiques. J’ai toutefois réussi à créer un modèle de langage à l’aide de la base de données LB-27072. Ce modèle se présente comme suit et comprend un vocabulaire de 25.000 mots uniques.

kenlm-luxembourgish.scorer  2.2 MB
lm.binary  887,6 kB
vocab-25000.txt  271,5 kB

Comparaison des modèles HuggingFace et Coqui-STT

A la fin de cet exposé il convient de comparer les performances de mon meilleur modèle acoustique Coqui-STT, combiné avec mon modèle de langage KenML, avec celles du modèle pgilles/wavevec2-large-xls-r-LUXEMBOURGISH-with-LM.

A ces fins j’ai sélectionné au hasard cinq échantillons qui ne font pas partie des entraînements effectués sur les deux modèles:

  • wavs/Braun_066.wav,233912,hues de do nach wierder et koum en donnerwieder an et huet emol net gereent
  • wavs/alles_besser-31.wav,168348,déngschtleeschtungen a wueren ginn automatesch och ëm zwee komma fënnef prozent adaptéiert
  • wavs/lb-northwind-0002.wav,82756,an der zäit hunn sech den nordwand an d’sonn gestridden
  • wavs/mbarnig-gsm-75.wav,104952,a wou den deemolege president et war e finnlänner
  • wavs/dictate_dict9-18.wav,182188,dobäi muss de bierger imperativ op allen niveaue méi am mëttelpunkt stoen

Les résultats sont présentés dans le tableau qui suit:

transcription sourcereconnaissance HuggingFaceWERreconnaissance
Coqui-STT
WER
hues de do nach wierder et koum en donnerwieder an et huet emol net gereenthues de do nach wierder et koum en donnerwieder an etude monet gereent0.267hues de do nach wierder et koum en donnerwieder an et huet mol net gereent0.067
déngschtleeschtungen a wueren ginn automatesch och ëm zwee komma fënnef prozent adaptéiertdéng schlecht jungenawouren ginautomatech or zweker a déiert1.0angscht leescht engen a wueren ginn automatesch och am zwee komma fanne prozent adapter0.500
an der zäit hunn sech den nordwand an d’sonn gestriddenan der zäit hunn sech de nocturnen zon gestridden0.4an der zeitung sech e nach finanzen lescht rieden0.700
a wou den deemolege president et war e finnlännerwou den deemolege president war e finnlänner0.222a wou den deemolege president et war finn aner0.222
dobäi muss de bierger imperativ op allen niveaue méi am mëttelpunkt stoendobäi muss de bierger imperativ op alle nivo méi a mëttepunkt stoen0.333do bei muss de bierger imperativ op allen niveaue ma am et e punkt stoen0.500

 

Conclusions

Il semble que le modèle HuggingFace fait moins d’erreurs, mais je pense qu’il faut faire plus de tests pour évaluer correctement la performance des deux modèles. Les résultats me réconfortent de continuer l’exploration du modèle Coqui-STT avec un apprentissage à partir de zéro. Je me propose de suivre les pistes suivantes:

  • étendre ma base de données LB-2880 avec la création d’échantillons supplémentaires à partir d’enregistrements audio de RTL Radio pour parfaire mes modèles Coqui-STT et Coqui-TTS
  • porter le modèle Coqui-STT sur iPhone
  • examiner la possibilité d’extension de ma base de données STT moyennant des échantillons synthétiques créés à l’aide de modèles TTS luxembourgeois
  • explorer l’utilisation de l’augmentation des données et d’échantillons synthétiques sur mon modèle HuggingFace

Application interactive de démonstration

J’ai publié le 31 juillet 2022 une application interactive lb-de-en-fr-pt-COQUI-STT de mon modèle sur la plateforme d’intelligence artificielle Huggingface. Veuillez utiliser un navigateur Chrome pour explorer la démo.

Bibliographie

Mäi Computer schwätzt Lëtzebuergesch mat 4 Stëmmen

Mise à jour : 1er août 2022

Introduction

Suite à mes premières expériences avec l’apprentissage profond (deep machine learning) pour réaliser un système de synthèse vocale pour la langue luxembourgeoise, dont les résultats ont été publiés sur mon blog “Mäi Computer schwätzt Lëtzebuergesch“, j’ai constaté que le recours au seul corpus de données Marylux-648 ne permet pas d’entraîner un meilleur système que le modèle VITS, présenté le 6 janvier 2022. Il fallait donc étendre la base de données TTS (text-to-speech) luxembourgeoise pour améliorer les résultats.

Le ZLS (Zentrum fir d’Lëtzebuerger Sprooch) m’a offert sa collaboration pour enregistrer un texte d’envergure par deux orateurs, l’un féminin, l’autre masculin, dans son studio d’enregistrement. Comme un tel projet demande de grands efforts, j’ai proposé d’explorer d’abord tous les enregistrements audio, avec transcriptions, qui sont disponibles sur le web. Une telle approche est typique pour le Grand-Duché de Luxembourg : réaliser des grands exploits avec un minimum de moyens.

Une première source pour l’extension du corpus TTS constitue les dictées luxembourgeoises publiées sur le site web infolux de l’Institut de linguistique et de littératures luxembourgeoises de l’Université du Luxembourg, dirigé par Pr Peter Gilles. Avec l’accord aimable de tous les ayants droit, j’ai converti les fichiers audio et texte de ces dictées dans un format qui convient pour l’apprentissage profond, avec les mêmes procédures que celles décrites dans mon dépôt Github Marylux-648.

Pour faciliter l’apprentissage du corpus TTS luxembourgeois étendu, j’ai seulement retenu les dictées lues par des orateurs féminins. Heureusement c’est le cas pour la majorité des dictées. Les oratrices sont Caroline Doehmer, Nathalie Entringer et Sara Martin.

Les résultats sont les suivants:

  • 10 Übungsdictéeën : 179 échantillons, 2.522 mots, ca 26 minutes
  • 100 Sätz : 100 échantillons, 1.117 mots, ca 9 minutes
  • Walfer-Dictéeën : 78 échantillons, 1.177 mots, ca 9 minutes

Ensemble avec Marylux-648, la nouvelle base de données TTS comprend 1005 échantillons, avec quatre voix. J’appelle ce corpus “Luxembourgish-TTS-Corpus-4-1005”. Dans une première étape j’ai utilisé ces données pour entraîner le modèle COQUI-TTS-VITS-multispeaker à partir de zéro.

Entraînement TTS avec quatre voix à partir de zéro

Après 32.200 itérations, les métriques des performances du modèle, affichés régulièrement dans les logs lors de l’entraînement, n’ont plus progressé. Mais comme le best_model.pth.tar, sauvegardé à cette occasion, n’est pas nécessairement le plus performant pour la synthèse de textes luxembourgeois inconnus, j’ai continué l’entraînement jusqu’à 76.000 itérations. Le checkpoint le plus avancé est dénommé checkpoint_76000.pth.tar.

Lors de la synthèse vocale, il faut spécifier non seulement le texte à parler, le fichier de configuration, le fichier du modèle TTS et le nom du ficher audio à sauvegarder, mais également la voix à utiliser pour la synthèse. Comme dans mes expériences précédentes, j’ai utilisé la fable “De Nordwand an d’Sonn” comme texte à synthétiser. A titre d’information j’indique un exemple de commande entrée dans le terminal linux pour procéder à la synthèse.

tts --text "An der Zäit hunn sech den Nordwand an d’Sonn gestridden, wie vun hinnen zwee wuel méi staark wier, wéi e Wanderer, deen an ee waarme Mantel agepak war, iwwert de Wee koum. Si goufen sech eens, datt deejéinege fir dee Stäerkste gëlle sollt, deen de Wanderer forséiere géif, säi Mantel auszedoen. Den Nordwand huet mat aller Force geblosen, awer wat e méi geblosen huet, wat de Wanderer sech méi a säi Mantel agewéckelt huet. Um Enn huet den Nordwand säi Kampf opginn. Dunn huet d’Sonn d’Loft mat hire frëndleche Strale gewiermt, a schonn no kuerzer Zäit huet de Wanderer säi Mantel ausgedoen. Do huet den Nordwand missen zouginn, datt d’Sonn vun hinnen zwee dee Stäerkste wier." --use_cuda True --config_path /media/mbarnig/T7/lb-vits-multispeaker/vits_vctk-January-21-2022_07+56AM-c63bb481/config.json --model_path /media/mbarnig/T7/lb-vits-multispeaker/vits_vctk-January-21-2022_07+56AM-c63bb481/checkpoint_76000.pth.tar --out_path /media/mbarnig/T7/lb-vits/vits_vctk-January-21-2022_07+56AM-c63bb481/walfer_checkpoint_76000.wav --speakers_file_path /media/mbarnig/T7/lb-vits-multispeaker/vits_vctk-January-21-2022_07+56AM-c63bb481/speakers.json --speaker_idx "VCTK_walfer"

Je vais présenter ci-après les auditions pour les différents cas de figure :

Voix “Judith”

Voix “Judith” : best_model à 32200 itérations (648 échantillons pour l’entraînement)
Voix “Judith” : checkpoint à 76000 itérations (648 échantillons pour l’entraînement)

Voix “Caroline”

Voix “Caroline” : best_model à 32200 itérations (179 échantillons pour l’entraînement)
Voix “Caroline” : best_model à 76000 itérations (179 échantillons pour l’entraînement)

Voix “Sara”

Voix “Sara” : best_model à 32200 itérations : (100 échantillons pour l’entraÎnement)
Voix “Sara” : checkpoint à 76000 itérations : (100 échantillons pour l’entraÎnement)

Voix “Nathalie”

Voix “Nathalie” : best_model à 32200 itérations (78 échantillons pour l’entraînement)
Voix “Nathalie” : checkpoint à 76000 itérations (78 échantillons pour l’entraînement)

Même si les résultats sont impressionnants à la première écoute, il ne s’agit pas encore de l’état d’art en matière d’apprentissage profond pour la création d’un modèle de synthèse vocale.

Entraînement TTS avec quatre voix et apprentissage par transfert

Un des atouts des réseaux neuronaux qui sont à la base de l’apprentissage profond des machines est l’apprentissage par transfert (transfer learning). Wikipedia le décrit comme suit :

L’apprentissage par transfert est l’un des champs de recherche de l’apprentissage automatique qui vise à transférer des connaissances d’une ou plusieurs tâches sources vers une ou plusieurs tâches cibles. Il peut être vu comme la capacité d’un système à reconnaître et appliquer des connaissances et des compétences, apprises à partir de tâches antérieures, sur de nouvelles tâches ou domaines partageant des similitudes.

Dans le cas de la synthèse vocale, l’apprentissage par transfert consiste à utiliser un modèle TTS, entraîné avec une large base de données dans une langue à ressources riches, pour l’entraîner dans la suite avec une petite base de données dans une langue à faibles ressources, comme le Luxembourgeois.

La communauté COQUI-TTS partage un modèle TTS-VITS anglais, entraîné avec le corpus VCTK pendant un million d’itérations et avec un large jeu de phonèmes IPA, y compris ceux que j’ai retenu pour mes modules de phonémisation luxembourgeoise gruut et espeak-ng. La base de données de référence VCTK comprend environ 44.000 échantillons, prononcés par 46 orateurs et 63 oratrices.

J’ai téléchargé ce modèle tts_models–en–ljspeech–vits et j’ai continué son entraînement avec ma base de données “Luxembourgish-TTS-Corpus-4-1005”. Le best_model.pth.tar a été sauvegardé à 1.016.100 itérations. Après mon interruption de l’entraînement, le dernier checkpoint a été enregistré à 1.034.000 itérations. Je présente ci-après seulement les auditions des synthèses réalisées avec ce checkpoint.

Voix “Judith”

Voix “Judith” : : checkpoint à 1.034.000 itérations (648 échantillons pour l’entraînement)

Voix “Caroline”

Voix “Caroline” : checkpoint à 1.034.000 itérations (179 échantillons pour l’entraînement)

Voix “Sara”

Voix “Sara” : checkpoint à 1.034.000 itérations : (100 échantillons pour l’entraÎnement)

Voix “Nathalie”

Voix “Nathalie” : checkpoint à 1.034.000 itérations (78 échantillons pour l’entraînement)

Spécifications techniques

Contrairement à ma première contribution “Mäi Computer schwätzt Lëtzebuergesch“, je n’ai pas présenté des détails techniques dans le présent rapport pour faciliter la lecture. Je vais toutefois publier prochainement les graphiques, métriques et autres caractéristiques techniques en relation avec les entraînements sur mon dépôt Github Luxembourgish-TTS-Corpus-4-1005. Avis aux amateurs des technologies de l’intelligence artificielle.

Conclusions

Les résultats obtenus avec l’apprentissage par transfert donnent envie à parfaire le modèle de synthèse vocale luxembourgeois. Plusieurs pistes restent à creuser :

  • création d’une base de données TTS luxembourgeoise multi-voix plus large avec les contenus audio et texte disponible sur le site web de RTL-Radio. Un grand Merci aux responsables de RTL qui m’ont autorisé à utiliser les ressources afférentes pour constituer un tel corpus.
  • utilisation d’un modèle TTS pré-entraîné avec une large base de données allemande, au lieu du modèle TTS anglais, pour l’apprentissage par transfert
  • utilisation d’un modèle TTS pré-entraîné multi-voix et multilingue pour l’apprentissage par transfert
  • perfectionnement du modèle de phonémisation luxembourgeoise
  • réalisation de tests avec d’autres architectures de modèles TTS

En parallèle à mes expériences de création d’un système de synthèse vocale luxembourgeoise, j’ai démarré les premiers essais avec un système de reconnaissance de la langue luxembourgeoise (STT : speech to text) avec transcription automatique, en utilisant mes bases de données TTS luxembourgeoises, converties dans un format approprié. Les premiers résultats sont encourageants.

Application interactive de démonstration

J’ai publié le 12 juillet 2022 une application interactive étendue multilingue et multivoix lb-de-en-fr-pt-COQUI-STT de mon modèle sur la plateforme d’intelligence artificielle Huggingface.

Mäi Computer schwätzt Lëtzebuergesch

Mise à jour : 15 avril 2022

Introduction

En 1960, J.C.R. Licklider a publié son fameux article au sujet de la symbiose homme-machine qui préfigurait l’informatique interactive. Huit ans plus tard, en 1968, il publiait, ensemble avec Robert W. Taylor, la contribution visionnaire The Computer as a Communication Device. Le dessin humoristique qui suit, réalisé à l’époque pour cette publication par Rowland B. Wilson, montre l’ordinateur OLIVER qui annonce à un visiteur que son patron n’est pas au bureau.

Dessin réalisé en 1968 par Roland B. Wilson pour la publication
“The Computer as a Communication Device”

Toutefois il fallait attendre presque 40 ans avant que cette vision soit devenue une réalité. Aujourd’hui la reconnaissance de la parole humaine et la synthèse vocale sont des tâches quotidiennes effectuées par les ordinateurs. La parole devient de plus en plus importante pour la communication Homme-Machine.

Hélas la majorité des humains est encore écartée de la facilité de s’entretenir avec un ordinateur dans sa langue maternelle. Des interfaces vocales performantes sont disponibles depuis quelques années pour les langues les plus parlées : anglais, mandarin, hindi, espagnol, français, allemand, … Plus que la moitié de la population mondiale parle une des autres 7.000 langues qui existent sur la planète. Parmi ce groupe il y a de nombreuses langues à faibles ressources qui ne disposent pas de règles pour l’écriture ou pour la vocalisation.

Bien que le Luxembourgeois a obtenu en 1984 le statut de langue nationale, dispose d’une orthographie, grammaire et phonologie standardisées, d’un commissaire à la langue luxembourgeoise, d’un Conseil permanent de la langue luxembourgeoise, du Zenter fir d’Lëtzebuerger Sprooch, d’un Institut National des Langues, d’une chaire de luxembourgeois à l’Université du Luxembourg, d’un outil informatique Spellchecker et d’un outil de traduction Google, il n’est pas supporté par les interfaces vocales (Alexa, Siri, Cortona, … ) proposées par les géants du web (GAFAM’s) ou par d’autres fournisseurs de systèmes informatiques.

Marylux

Depuis l’antiquité les humains ont été fascinés par les technologies de synthèse vocale. J’ai raconté l’histoire de ces technologies dans mon livre Synthèse vocale mécanique, électrique, électronique et informatique. Un des systèmes TTS (Text-to-Speech) informatiques les plus universels et performants est MaryTTS de l’université de la Sarre, dont le développement remonte à l’année 2000. En 2015, la langue luxembourgeoise a été ajoutée à ce système sous le nom de Marylux. La base de données Marylux comporte un fichier audio enregistré en 2014 par Judith Manzoni sur base de phrases luxembourgeoises (63 minutes), françaises (47 minutes) et allemandes (22 minutes), avec les textes correspondants.

Pour donner une idée sur la qualité de la voix synthétique Marylux je vais présenter l’enregistrement original et la génération synthétique par MaryTTS de la fable d’Esope “Borée et le Soleil” en langue luxembourgeoise. Voici le texte de cette fable :


Den Nordwand an d’Sonn.

An der Zäit hunn sech den Nordwand an d’Sonn gestridden, wie vun hinnen zwee wuel méi staark wier, wéi e Wanderer, deen an ee waarme Mantel agepak war, iwwert de Wee koum. Si goufen sech eens, datt deejéinege fir dee Stäerkste gëlle sollt, deen de Wanderer forcéiere géif, säi Mantel auszedoen. Den Nordwand huet mat aller Force geblosen, awer wat e méi geblosen huet, wat de Wanderer sech méi a säi Mantel agewéckelt huet. Um Enn huet den Nordwand säi Kampf opginn. Dunn huet d’Sonn d’Loft mat hire frëndleche Strale gewiermt, a schonn no kuerzer Zäit huet de Wanderer säi Mantel ausgedoen. Do huet den Nordwand missen zouginn, datt d’Sonn vun hinnen zwee dee Stäerkste wier.

On peut écouter ci-après la parole enregistrée

Enregistrement original de la fable “Nordwand” par Judith Manzoni en 2014

et la parole synthétisée de ce texte avec MaryTTS :

Synthèse vocale de la fable “Nordwand” par le système MaryTTS en 2015
avec la base de données Marylux

Les figures suivantes montrent l’évolution du son dans le temps pour la première phrase de la fable, ainsi que les spectrogrammes correspondants :

Signal analogique : en haut : enregistrement (ground truth) ; en bas : synthèse vocale
Spectrogramme : en haut : enregistrement (ground truth) ; en bas : synthèse vocale

Synthèse vocale avec réseaux neuronaux

La technologie de synthèse Marylux reposait sur un modèle informatique utilisant une méthode de sélection d’unités. Cette technique est devenue obsolète aujourd’hui, suite à la progression fulgurante des technologies d’apprentissage approfondi des machines (deep machine learning) sur base de réseaux neuronaux.

Lors de la conférence Interspeech 2017 à Stockholm, Google a présenté un nouveau système de synthèse vocale appelé Tacotron qui repose sur la superposition de deux réseaux neuronaux. Les résultats étaient proches d’une prononciation par des humains. La publication académique afférente porte les noms de 14 auteurs.

Depuis cette date ce modèle a été perfectionné et de nouveaux modèles neuronaux TTS ont été développés : Tacotron2-DCA, Tacotron2-DDC, GlowTTS, Fast-Pitch, Fast-Speech, AlignTTS, Speedy-Speech, VITS, … En 2021 on a pu découvrir tous les quelques jours une nouvelle publication scientifique au sujet de TTS dans l’archive ouverte de prépublications électroniques ArXiv sur Internet.

Marylux-648

Pour entraìner un modèle TTS neuronal avec la base de données Marylux, enregistrée en 2014, j’ai ajusté les fichiers correspondants pour les adopter d’une façon optimale aux besoins de l’apprentissage automatique profond (deep machine learning). J’ai publié la nouvelle base de données publique sous le nom de Marylux-648-TTS-Corpus sur mon dépôt de développement Github. Il s’agit de 648 clips audio luxembourgeois, chacun ayant une durée inférieure à 10 secondes, et des transcriptions y associées. La durée totale est de 57 minutes et 31 secondes. Le lecteur intéressé est invité à consulter les détails sur Github.

Comme les modèles TTS neuronaux sont gourmands en données et entraînés en général avec des enregistrements audio d’une durée de plusieurs dizaines d’heures, j’ai exploré dans une première phase le potentiel et les contraintes de différents modèles TTS face à une base de données dont la durée totale n’atteint même pas une heure.

Avant de présenter les résultats de mes premiers tests, je vais décrire sommairement le cadre de mes expériences.

Modèles TTS neuronaux à source ouverte

Les modèles TTS neuronaux les plus courants peuvent être répartis en quatre grandes familles:

  • Tacotron
  • Glow
  • Forward-Feed
  • Vits

Pour les trois premières familles, la synthèse (inference) de la parole à partir d’un texte se fait en deux étapes. Le texte est d’abord converti en spectrogramme, puis transformé en signal audio avec un vocodeur (vocoder). Les vocodeurs les plus courants sont relevés ci-après:

  • Griffin-Lim
  • WaveNet
  • WaveRNN
  • WaveGrad
  • WaveGAN
  • HifiGAN
  • MelGAN
  • UnivNet

À l’exception du premier vocodeur (Griffin-Lim) qui est algorithmique, les autres vocodeurs sont également entraìnés avec des réseaux neuronaux sur base d’enregistrements audio, de préférence avec la même base de données que celle utilisée pour l’apprentissage du modèle TTS. Hélas les différents vocodeurs ne sont pas tous compatibles avec les différents modèles TTS.

La quatrième famille (VITS) dispose d’une architecture de bout-à-bout (end-to-end) avec vocodeur intégré.

A côté du type de modèle TTS et du type de vocodeur, on fait la distinction entre les caractéristiques suivantes:

  • support d’une seule langue avec une voix (mono-speaker)
  • support d’une seule langue avec plusieurs voix (multi-speaker)
  • support de plusieurs langues avec une voix (multilingual, mono-speaker)
  • support de plusieurs langues avec plusieurs voix (multilingual, multi-speaker)

En ce qui concerne le choix des modèles TTS et des vocodeurs pour mener mes tests, je me suis limité à l’utilisation de projets tiers à source-ouverte (open-source) et avec des licences libres de droits (MIT, CC, …). À côté de projets de développeurs individuels que je vais présenter dans la suite, je me suis notamment basé sur les développements réalisés par les communautés Coqui-TTS et Rhasspy.

Entraînement d’un modèle TTS avec une nouvelle base de données

L’entraînement d’un modèle TTS avec une nouvelle base de données peut se faire à partir de zéro (from scratch) ou à partir d’un modèle existant. Dans le deuxième cas on parle de transfert d’apprentissage (transfer learning) ou de fin réglage (fine tuning).

Les 648 échantillons de la base de données Marylux-648 sont d’abord mélangés (shuffling), puis répartis en 640 exemples pour l’entraînement proprement dit et en 8 exemples pour l’évaluation, effectuée après chaque cycle d’apprentissage. Les six phrases de la fable “De Nordwand an d’Sonn”, qui ne font pas partie du jeu d’apprentissage, sont utilisées pour les tests automatiques réalisés après chaque évaluation.

Pour l’entraînement des modèles j’utilise les infrastructures suivantes:

  • mon ordinateur personnel avec carte graphique NVIDIA RTX 2070, système d’exploitation Linux Ubuntu 20.4 et système de développement Python 3.8
  • mon compte Google-Colab pro dans les nuages, avec CUDA P100 et système de développement Python 3.7

Un cycle d’apprentissage complet est appelé une époque (epoch). Les itérations sont effectuées par lot (batch). La durée d’une itération est fonction de la taille du lot. On a donc intérêt à choisir une taille élevée pour un lot. La différence s’exprime par des durées d’apprentissage de plusieurs heures, jours, semaines ou voire des mois. Hélas la taille des lots est tributaire de la taille de mémoire disponible sur la carte graphique (CUDA).

En général je ne peux pas dépasser une taille de lot supérieure à 10 sur mon ordinateur personnel, sans provoquer une interruption de l’entraînement à cause d’un débordement de la mémoire (memory overflow). Sur Google-Colab je ne peux guère dépasser une valeur de 32.

Pour faciliter la comparaison des performances et qualités des différents modèles TTS, j’ai défini une limite de 1000 époques pour chaque entraînement. Sur mon ordinateur personnel une époque prend donc 64 itérations, sur Google-Colab le nombre se réduit à 20. Le temps d’exécution d’une époque est en moyenne de 95 secondes sur mon ordinateur personnel, ce qui fait environ 26 heures pour l’entraînement complet d’un modèle TTS avec Marylux-648 (64.000 itérations).

Avec un lot de 32, on s’attend à une réduction du temps d’entraînement d’un facteur 3,2, c.à.d. à environ 8 heures. Or à cause du partage des ressources entre plusieurs utilisateurs sur Google-Colab, le gain est plus faible. J’ai observé un temps de calcul moyen de 72 secondes par époque, ce qui donne une durée totale d’entraînement d’environ 20 heures pour 1000 époques (20.000 itérations).

Pour entraîner une base de données de référence comme LJSpeech, VCTK ou Thorsten Voice, qui ont chacune une durée d’enregistrement d’environ 24 heures, le temps de calcul se situe donc entre 3 et 4 semaines, dans les mêmes conditions. On peut réduire le temps d’apprentissage en augmentant la taille des lots à 64, voire à 128 échantillons. Une autre possibilité consiste à utiliser plusieurs cartes graphiques connectées en réseau. Le projet Coqui-TTS supporte une telle interconnexion CUDA. Des témoignages recueillis auprès de développeurs de modèles TTS neuronaux confirment que dans la pratique il faut compter une à deux semaines pour exécuter un entraînement avec une nouvelle base de données, ayant une durée d’enregistrements d’une dizaine d’heures, sur un ensemble ordinateur & CUDA performant.

Marylux-648 Tacotron2-DCA

Pour présenter les résultats obtenus avec l’entraînement de la base de données Marylux-648, il convient de commencer avec le doyen des modèles TTS neuronaux: Tacotron. L’apprentissage profond a été réalisé à partir de zéro. Avant d’entrer dans les détails, nous allons écouter la synthèse de la fable “De Nordwand an d’Sonn”.

Clip audio de la synthèse vocale de la fable “Nordwand” avec le modèle TTS Tacotron2-DCA

Le résultat n’est pas fameux !

La prochaine image montre la séquence temporelle des signaux audio. La figure confirme qu’il y a problème.

Signal audio temporel de la synthèse vocale de la fable “Nordwand” avec le modèle TTS Tacotron2-DCA

En utilisant un vocodeur entraìné au lieu du vocodeur algorithmique Griffin-Lim, on peut améliorer la qualité de la synthèse. La première phrase de la fable Nordwand sert d’échantillon de comparaison. La synthèse avec vocodeur Griffin-Lim est reprise ci-après, suivie par la synthèse avec un vocodeur Hifigan.

Clip audio d’une synthèse TTS avec modèle Tacotron2-DCA et vocodeur Griffin-Lim
Clip audio d’une synthèse TTS avec modèle Tacotron2-DCA et vocodeur Hifigan

Le signal temporel de ces deux clips audio est affiché dans l’image qui suit. Une différence notable entre les deux clips est bien visible, mais la qualité auditive n’est pas encore satisfaisante.

Signaux temporels des clips audio synthétisés avec vocodeur Griffin-Lim (en haut) et Hifigan (en bas)

Le modèle Coqui-TTS Tacotron2-DCA (Dynamic Convolution Attention) constitue une n-ième évolution du premier modèle TTS Tacotron avec une nouvelle architecture qui est cofigurée par un ensemble de plus de 150 hyper-paramètres, en format json. La liste complète de configuration peut être téléchargée sur mon site web, un extrait est présenté dans la figure qui suit.

Présentation de la configuration d’un modèle TTS en format JSON dans le navigateur Firefox

Une possibilité théorique d’améliorer la qualité de synthèse d’un modèle TTS est de mieux régler la configuration, suivant une procédure “essai-erreur (trial and error)” ou sur base d’analyses complexes supplémentaires de la base de données. Avec le grand nombre de paramètres de configuration et les durées d’entraînement dépassant une journée pour effectuer un nouveau essai avec la base de données Marylux-648, ce n’est guère praticable.

Une deuxième possibilité consiste à prolonger l’apprentissage en continuant l’entraînement pendant plusieurs époques supplémentaires. Mais comme dans notre cas le dernier fichier de contrôle (checkpoint) avec le nom “best_model.pth.tar” a été enregistré après xxx itérations (steps), cela ne fait pas de sens de dépasser mon seuil fixé à 1000 époques (64.000 itérations).

La seule solution valable consiste à étudier en détail la progression du livre de bord (logs), enregistré lors de l’entraînement. Le modèle TTS Tacotron2-DCA de coqui.ai, comme d’ailleurs tous les modèles TTS partagés par cette jeune start-up, utilisent le fameux kit de visualisation de TensorFlow, appelé TensorBoard. L’outil permet le suivi et la visualisation de métriques relatifs à l’apprentissage profond (deep machine learning), telles que la perte (loss) et la justesse. TensorBoard peut également afficher des histogrammes de pondérations et de biais, des images, des textes et des données audio, au fur et à mesure de leur évolution.

Les métriques générés lors de l’entraînement du modèle TTS Tacotron2-DCA permettent l’affichage, sous forme graphique, de la progression des résultats relatives aux évaluations (13 scalaires, 4 images, 1 fichier audio), aux époques, respectivement aux tests (16 scalaires, 12 images, 6 fichiers audio) et aux itérations, respectivement à l’entraînement (16 scalaires, 4 images, 1 fichier audio).

Les trois images qui suivent donnent un aperçu sur l’affichage de scalaires, d’images (spectrogrammes et attentions) et de fichiers audio du modèle TTS Tacotron2-DCA, à la fin de l’entraînement avec la base de données Marylux-648.

On peut également consulter les paramètres de configuration en vigueur pour l’entraînement dans le menu “Text”.

Google, le créateur des outils TensorFlow et TensorBoard, offre une plateforme gratuite de partage des résultats d’expériences d’apprentissage profond, sous le nom de TensorBoard.dev. Malheureusement cette plateforme ne permet pas encore le partage des spectrogrammes et des données audio. J’ai toutefois installé mon livre de bord relatif au modèle Tacotron2-DCA sur cette plateforme, ce qui permet à chacun d’analyser l’évolution des scalaires afférents en temps réel.

La prochaine image donne un aperçu sur cet outil TensorBoard.dev.

Sans vouloir entrer dans les détails, l’exploration du livre de bord montre que l’entraînement dun modèle TTS Tacotron2-DCA avec la base de données Marylux-648 est entré dans une phase de sur-apprentissage (overfitting), ce qui ne permet pas de synthétiser correctement des mots ou phrases non vus lors de l’apprentissage. Il faut se rendre à l’évidence que la taille de la base de données Marylux-648 est insuffisante pour entraîner un modèle TTS Tacotron2-DCA.

Il est vrai que Tacotron est connu pour être gourmand en données.

Je vais présenter les résultats obtenus avec d’autres modèles TTS lors de prochaines contributions sur mon présent site web. Mais pour ne pas laisser le lecteur intéressé sur sa faim jusque-là, je vais rapidement introduire le dernier né des familles TTS neuronaux. Il s’appelle VITS.

Marylux-648 VITS

VITS est l’abréviation pour Conditional Variational Autoencoder with Adversarial Learning for End-to-End Text-to-Speech. La prochaine figure montre les signaux temporels des six phrases de la fable “Nordwand”, synthétisées avec le modèle Coqui-TTS VITS. L’allure donne confiance, et l’audition qui suit confirme que la qualité de la synthèse dépasse largement celle du modèle Tacotron2-DCA.

Signaux temporels des six phrases de la fable “Nordwand”, synthétisées avec le modèle TTS VITS
Synthèse vocale des six phrases de la fable “Nordwand”, réalisée avec le modèle TTS VITS

Les deux figures qui suivent montrent un aperçu de l’évolution des métriques lors de l’entraînement de la base de données Marylux-648 avec le modèle TTS VITS. Les graphiques peuvent être visualisés en détail sur TensorBoard.dev.

Mot de la fin

L’apprentissage profond de machines est une technique passionnante. Le comportement des réseaux neuronaux à la base des architectures de systèmes de synthèse de la parole me rappellent parfois les réactions de mes cinq petits-enfants lorsqu’ils faisaient de nouvelles découvertes ou lors d’un nouvel apprentissage. J’ai également constaté que des anciennes techniques réapparaissent dans des nouveaux systèmes. Les spectrogrammes utilisés dans les modèles neuronaux TTS ont déjà été utilisés dans la machine Pattern Playback, développé par Franklin S. Cooper à la fin des années 1940.

Assemblage de photos de la machine Pattern Playback (Laboratoires Haskins)

Liens

The best of two breeds

Last update : June 25, 2021

Coqui.ai and Rhasspy are two outstanding projects, dealing with modern speech technologies and sharing their open-source code on GitHub. Coqui.ai states that it frees speech technology and brings research into reality. Rhasspy provides a fully offline set of voice assistant services for home automation.

Rhasspy – Larynx TTS Demo Server

Both projects have released TTS (Text-to-Speech) and STT (Speech-to-Text) models for several languages, based on deep machine learning. Rhasspy has developed an excellent system for grapheme to phoneme conversion (sort of frontend) called gruut and offers a flexible output interface (sort of backend), with various intent recognition systems and intent handling systems. The focus of Coqui.ai is the research, development and teaching of different ML (Machine Learning) models for TTS and STT : Tacotron-DCA, Tacotron2-DDC, Glow-TTS, SpeedySpeech, DeepSpeech etc.

Coqui TTS Demo Server

Recently, the main developer of Coqui-TTS, Eren Gölge, alias erogol, and the creator of Rhasspy, Michael Hansen, alias synesthesiam, worked together to integrate gruut into Coqui-TTS. The GitHub pull request, prepared by synesthesiam, was ready for merging on June 17, 2021. I am very interested to work with this combined TTS release to eventually create a synthetic voice for the luxembourgish language.

A few days ago, I cloned the branch add-gruut of the Coqui-TTS GitHub repository, forked by synesthesiam, on my Desktop-PC to check if the new tool allows to train a synthetic voice, with a small dataset, during a limited training period.

I used a part (4.500 utterances) of the french public SIWIS dataset to train a Glow-TTS model. My hyper-parameters to configure the model are based on the Rhasspy-Larynx configuration file of the french Larynx Glow-TTS model, trained with the full SIWIS dataset.

My configuration file can be downloaded from this link.

The model was trained with 1000 epochs with a batch size of 45, which equals to 99.000 steps. The main scalars and images displayed on the Tensorboard at the end of the training are shown hereafter :

The final model is available here : fr-siwis-coqui-glow-99k.pth.tar

I run the following script to synthesize the french version of the fable The North Wind and the Sun :

tts --text "La bise et le soleil se disputaient, chacun assurant qu'il était le plus fort, quand ils ont vu un voyageur qui s'avançait, enveloppé dans son manteau. Ils sont tombés d'accord que celui qui arriverait le premier à faire ôter son manteau au voyageur serait regardé comme le plus fort. Alors, la bise s'est mise à souffler de toute sa force mais plus elle soufflait, plus le voyageur serrait son manteau autour de lui et à la fin, la bise a renoncé à le lui faire ôter. Alors le soleil a commencé à briller et au bout d'un moment, le voyageur, réchauffé, a ôté son manteau. Ainsi, la bise a dû reconnaître que le soleil était le plus fort des deux." \
--model_path /home/mbarnig/myTTS-Project/experiments/fr-siwis-part1-glow-99k.pth.tar \
--config_path /home/mbarnig/myTTS-Project/experiments/fr-siwis-part1-glow-config.json \
--out_path /home/mbarnig/myTTS-Project/experiments/bise-et-soleil-gl.wav 

Here are the results when using the default Griffin-Lim vocoder :

To improve the voice we must continue the training. The SIWIS Larynx voice, released by Rhasspy, was trained with 270.000 steps and more utterances.

Below the audio signals and sounds of the SIWIS voice, trained with 195.000 steps, are displayed:

Text-to-Speech sound samples from Coqui-TTS

Last update : June 1, 2021

The present contribution is related to my recent thread in the Coqui discussion forum.

Before telling the story of my experience with Text-To-Speech (TTS) synthesis, I would like to show the current state-of-art of open-source machine-learning (ML) technologies, by presenting sound samples synthesized with english, french and german TTS models, created by Coqui.ai, a young start-up launched in March 2021 on the ruins of the Mozilla speech projects.

The test utterance that I used for the synthesis is the first sentence of the fable The North Wind and the Sun. This fable is made famous by its use in phonetic descriptions as an illustration of spoken language in the Handbook of the International Phonetic Association and the Journal of the International Phonetic Association.

Here are the three test sentences in english, french and german :

The North Wind and the Sun were disputing which was the stronger when a traveller came along wrapped in a warm cloak. 

La bise et le soleil se disputaient, chacun assurant qu’il était le plus fort, quand ils ont vu un voyageur qui s’avançait, enveloppé dans son manteau.

Einst stritten sich Nordwind und Sonne, wer von ihnen beiden wohl der Stärkere wäre, als ein Wanderer, der in einen warmen Mantel gehüllt war, des Weges daherkam.

Here are the synthesized sound samples and waveforms of several released Coqui-TTS models :

1. Model : tacotron2 ; Language : english ; Dataset : EK1 ; Wav-Size : 296,5 KB

2. Model : tacotron2-DDC ; Language : english ; Dataset : LJSpeech ; Wav-size : 328,3 KB

3. Model : tacotron2-DDC ; Language : english ; Dataset : SAM ; Wav-size : 256,6 KB

4. Model : tacotron-DCA ; Language : english ; Dataset : LJSpeech ; Wav-size : 303,7 KB

5. Model : glow-tts ; Language : english ; Dataset : LJSpeech ; Wav-size : 361,0 KB

6. Model : speedy-speech-wn ; Language : english ; Dataset : LJSpeech ; Wav-size : 338,0 KB

7. Model : tacotron-DDC ; Language : french ; Dataset : MAI ; Wav-size : 237,6 KB (problem)

8. Model : tacotron-DCA; Language : german ; Dataset : Thorsten ; Wav-size : 479,8 KB

My TTS story

Over the next decade, speech is expected to become the primary way people interact with devices — from phones and laptops to digital assistants.  Today’s voice-enabled devices are inaccessible to most of the planet’s languages and accents. Currently, neither Amazon’s Alexa, Apple’s Siri, nor Google Home support luxembourgish, a West Germanic language that is spoken by about 600,000 people inside Luxembourg and in the border regions of the neighbour counries Belgium, France and Germany. The same is true for Africa. No single native african language is supported by the GAFAM companies.

I has always been interested in voice technologies. Last year I published a book about the history of speech synthesis, starting with the mechanical speaking heads in the middle Ages.

Next to the speaking heads the talking machines of Wolfgang von Kempelen and Josef Faber became famous. In the second half of the 19th century the first electromagnetic speech devices were designed. The pioneers were Joseph Henry, Graham Bell, Thomas Edison. Pedro the Voder, created by Homer Dudley, was exposed at the World Exhibition 1939 in New York.

Late 1940 Franklin S. Cooper designed the pattern-playback machine which converted spectrograms to speech. It was a sort of forerunner of the Tacotron.

At an MIT conference in 1956 Gunnar Fant and Walter Lawrence demonstrated their synthesizers OVE-I and P.A.T. in an interactive dialog session. Both equipments were controlled by several parameters to change the formants and features of the speech. The first commercial speech synthesizer was the electronic Bell speech kit launched early 1960. It was the last project developed by Homer Dudley.

Progressively transistors were replaced by integrated circuits. State of art of the speech synthesis at this time was the linear predictive coding (LPC). This technology was implemented in the integrated circuit TMC0281 developed by Texas Instruments for the famous toy Speak & Spell launched in June 1978.

In 1974 Richard Thomas Gagnon obtained a license for an electronic phoneme based synthesizer called VOTRAX. His employer, the company Federal Screw Works, produced these devices with great success. Ten years later, in 1984, this synthesizer was renamed Votalker and sold as PC card for the computers IBM PC, Apple II and Commodore 64. The same year Digital Equipement Corporation (DEC) launched an autonomous synthesizer with an RS-232 serial computer interface. It was based on the program KlatTalk developed by Dennis Klatt in 1982.

Dennis Klatt is considered as the father of the speech synthesis software. He recorded his own voice to extract the speech features for the program. The first synthesizer used by Stephen Hawkins spoked with the voice of Dennis Klatt.

The Klatt synthesizer became famous with the general public when Jonathan Duddington added this technology in his speech software for the Acorn Computers. He started the development of this tool, named Speak, in 1995. In 2006 Speak became eSpeak and was at that time a very popular open-source program running on all kind of operating systems. The last message by Jonathan Duddington on Internet was on April 16, 2015. At my knowledge nobody in the large eSpeak community knows what happened to Jonathan Duddington.

At the end of 2015, the coordination of the project has been entrusted to Reece Dunn by the community and a new GitHub repository with the name eSpeak-NG (new generation) was created. Because eSpeak-NG supports more than 100 different languages, the tool is commonly used today as a grapheme-to-phoneme conversion front-end for high-end TTS and STT engines.

The development of hight quality speech synthesizers began at the end of the 20th century. Edinburgh, Mons, Nagoya, Pittsburg and Saarbrucken were the capitals where the related technologies have been developed in universities and marketed by spin-offs or licensed to big companies. Every software engineer committed to the development of speech tools knows the big projects like CMU-Spinx, Festival, Festvox, Flite, FreeTTS, HTK, HTS, Kaldi, MaryTTS, MBROLA or SPTK.

MaryLux is the unique luxembourgish synthetic voice created until now. It was developed in 2014 with the MaryTTS technology.

Ten years ago the landscape of the speech technologies changed. Deep-machine learning became the new fetish. Amazon, Apple, AT&T, Baidu, Facebook, Google, IBM, Microsoft were the dominant players in the fields of artificial intelligence (AI), neural-networks (NN) and machine-learning (ML) to create TTS and STT models. The new ML-projects were named DeepVoice, GAN, Glow, Tacotron, WaveGrad etc. In the hardware domain of ML, NVIDIA became the new king.

In July 2017, Mozilla launched the project Common Voice to help make voice recognition open to everyone. The same year in November the initial release off the open source speech recognition ML-model DeepSpeech, using the common voice dataset, which was contributed to by nearly 20,000 people worldwide at this time, was described by Mozilla.

Early 2018 the GitHub repository Mozilla-TTS was created, but the first and unique version 0.0.9 was only released in January 2021. In August 11, 2020, Mitchell Baker, CEO of Mozilla, announced that the World, Internet and Mozilla will be changing and that Mozilla will be restructured to focus on Firefox in the future.  In an internal message the Mozilla employees were informed that the changes also include a significant reduction of the workforce by approximately 250 people. This was the beginning of the end of Mozilla STT and Mozilla TTS.

This restructuration of Mozilla was probably also the start of the initiative Coqui.ai, dedicated to open speech technology and to serving as the hub where speech researchers, developers, and practitioners congregate. The start-up Coqui.ai was founded in March 2021 by four machine learning (ML) experts with a strong experience on the Mozilla deep-learning voice STT (speech-to-text) and TTS (text-to-speech) projects.

The founders of the start-up Coqui.ai are :

Kelly Davis worked at Mozilla in Germany from April 2015 to September 2020. The last three years he was the manager of the Mozilla Machine Learning Group. Before he worked as software engineer and research programmer at different companies and startup’s and he founded the startup forty.to in 2012. Kelly Davis has a BS from MIT and a PhD from the Rutgers University (1997).

Eren Gölge was senior research engineer at Mozilla Germany from January 2018 to February 2021. He has a MS from the Bilkent University (2014) and was PhD candidate up to mid-2017. During his studies he worked for different companies and he cofounded the startup 8bit.ai in 2014. He announced the creation of Coqui.ai on March 15, 2021 in the Mozilla discussion forum.

Josh Meyer has a BA from the Seton Hall University and a PhD in computational linguistics from the University of Arizona (2019). During his studies he worked as research assistant and consultant for different companies and projects, among them an internship at Mozilla in the San Francisco Bay Area. From January 2020 to April 2021 he worked as a Machine Learning Fellow at Mozilla on open voice technology projects in East Africa.

Reuben Morais has a technical degree in industrial informatics from CEFET-MG in Belo Horizonte (2011). Since 2010 he was a volunteer contributor at Mozilla and he worked for several companies. In 2015 he continued his studies at the Federal University (UMFG) in Belo Horizonte and obtained a BS in information systems in 2018. During his studies he continued to work as ML research engineer at Upwork Global Inc as contractor for Mozilla. Since July 2019 he works as senior research engineer for Mozilla.

Besides Coqui.ai there are some other great communities dealing with TTS and STT, for example Rhasspy, an open source, fully offline set of voice assistant services, created by Michael Hansen, alias synesthesiam. Another example is Microft AI, the open answer to Amazon Echo and Google Home, launched on Kickstarter in 2015.

I will eventually write a second book about speech synthesis to present the history of the open-source ML-projects realized by the communities of Microft.ai (Mimic), Rhasspy, Coqui.ai and others. Before starting this undertaking, I will fulfill my dream to develop a high quality luxembourgish speech synthesizer, with the tools and kind help of these communities. Perhaps I can even go further and create a multilingual (luxembourgish, german, french and english) and multispeaker model.

Rodange, June 1, 2021

Marco Barnig

Synthèse vocale

Dernière mise à jour : 3 juillet 2021

En juillet 2020 j’ai publié le présent contenu dans un livre, en auto-édition, auprés de Books-on-Demand (BoD). Le livre peut être commandé dans la librairie de BoD, auprès de Amazon ou de toute autre grande libraire.

1. Avant-propos

Pour rédiger le présent historique sur la synthèse vocale, je me suis basé, dans la mesure du possible, sur des sources originales des récits et descriptions édités. La digitalisation des bibliothèques nationales et des archives dans les universités, centres de recherche et entreprises privées a permis à ces institutions d’offrir des accès en ligne à leurs précieux documents et anciennes collections. Je peux confirmer que de nombreux auteurs de contributions scientifiques et historiques sur Internet copient l’un de l’autre, sans se soucier de l’exactitude et de la véracité du contenu. Même le statut de Wikipedia comme première référence des connaissances sur le web est souvent contesté. Suite de mes propres expériences je peux toutefois certifier que les articles de Wikipédia qui contiennent de nombreuses références bibliographiques académiques sont en général de qualité élevée.

L’accès généralisé à des anciens documents montre que dans le passé où il n’y avait pas encore Internet ni téléphone et où la mobilité était restreinte, les scientifiques de renom avaient déjà des contacts réguliers entre eux et se consultaient l’un l’autre. La vue globale qu’on obtient grâce aux bibliothèques numériques fait apparaître que dans certains cas le mérite d’une invention ne revient pas nécessairement au plus brillant qui avait l’idée initiale,  mais au plus raffiné qui était le premier à déposer un brevet ou à faire une publication afférente. Dans ces cas il faudrait réécrire l’histoire des sciences.

Aujourd’hui il est de plus en plus difficile d’identifier un inventeur individuel. Dans la majorité des cas ce sont des équipes multidisciplinaires qui font avancer la recherche dans tous les domaines.

2. Introduction

Aujourd’hui la synthèse vocale constitue une technique informatique de synthèse sonore qui permet de créer de la parole artificielle à partir de textes. Grâce à l’intelligence artificielle et l’apprentissage approfondi (deep learning), on peut créer des synthétiseurs vocaux qui transforment le texte orthographique directement en sons numérisés, sans se soucier de la phonologie.

Dans le passé la synthèse vocale informatique se basait largement sur des techniques de traitement linguistique pour transformer le texte orthographique en une version phonétique. Les phonèmes traduits sont ensuite convertis en sons moyennant des techniques de traitement du signal.

Mais avant de devenir une science informatique, la synthèse vocale se basait sur des constructions mécaniques, ensuite sur des circuits électriques. Je me suis très tôt intéressé à ces techniques. En 1976, je supervisais un travail de diplôme à l’Institut d’électronique de l’EPFZ qui consistait à réaliser un circuit de synthèse vocale avec des filtres électroniques réglés. À la fin, le synthétiseur était capable de prononcer la phrase “Ich bin ein Computer”.

Mon bureau-laboratoire à l’Institut d’Électronique de l’École Polytechnique Fédérale à Zurich en 1976

En 1978, j’ai joint l’Administration des P&T comme ingénieur de télécommunications. Pour le rapport de gestion de 1978, les ingénieurs avaient rédigé un premier volet, appelé Les Nouveaux Services de Télécommunications. C’était la toute première tentative d’expliquer au grand public à quoi il pouvait s’attendre jusqu’à l’an 2000 en matière de création de prestations et de facilités additionnelles dans le domaine des télécommunications. La table des matières de ce volet, présentée ci-après, montre que la synthèse et la reconnaissance de la parole faisaient partie du chapitre 4.1.1.

Rapport de gestion des PT 1978 : Table des matières de la première partie -> Les nouveaux services de télécommunications

La synthèse vocale fait partie de la communication sonore, le moyen le plus efficace et le plus répandu de communication des êtres vivants. Dans sa forme la plus évoluée, elle permet aux humains la mise en place d’un langage construit, grâce à la richesse des phonèmes (éléments sonores distinctif du langage) produits.

3. Automates (têtes) parlants

Dans l’antiquité la parole était d’origine divine. Les colosses de Memnon en Égypte avaient la renommée d’être des têtes parlantes à cause du chant qu’émettait l’un d’eux au lever du soleil. Aujourd’hui on sait que ces sons étaient produits sous l’effet d’un brusque changement de température et d’hygrométrie qui faisait éclater la surface de la pierre. Une légende dit que des prêtres se cachaient à l’intérieur des statues.

Dans les récits du Moyen Âge on fait parfois référence à des têtes en métal (bronze, laiton) qui étaient capables d’émettre des sons ou qui pouvaient même parler comme des humains. Ainsi il est rapporté que Gerbert d’Aurillac, qui exerçait comme pape Sylvestre II de 999 à 1003, disposait d’une tête en bronze qui répondait par “oui” ou “non” à une question qu’on lui posait. Une autre tête parlante (en laiton) est attribuée à Roger Bacon, un moine et savant anglais qui vivait de 1214 à 1294. On cite également les noms de Robert Grosseteste (1175 – 1253) et de Albertus Magnus (Albert le Grand : 1193 – 1280).

Thomas d’Aquin casse la tête parlante construite par son maître Albert le Grand (Cyclopædic science simplified, John Henry Pepper, Google Books)

L’illustration ci-dessus est extraite de l’encyclopédie scientifique simplifiée éditée par John Henry Pepper en 1869. L’encyclopédie, qui publie plus que 600 illustrations, montre également une image de la fille parlante invisible.

Fille parlante invisible, (Cyclopædic science simplified, John Henry Pepper, Google Books)

Il faut penser qu’il s’agissait dans tous les cas des têtes parlantes du Moyen Âge de tricheries, soit moyennant des tubes vocaux comme représenté sur l’image ci-dessus, soit par la maîtrise de la ventriloquerie.

Un cas particulier plus récent d’un vrai mécanisme vocal constitue l’automate à deux têtes parlantes de l’abbé Mical. Né à côté de Lyon en 1727, il a construit, après ses études et son ordination, plusieurs automates musicaux et une tête parlante en bronze. Il semble qu’il ait détruit ces premières constructions parce qu’il n’était pas satisfait des résultats. En 1783, il a présenté son innovation de deux têtes parlantes qui pouvaient dialoguer entre eux.

prospectus de l’exposition : Wikipedia

La première tête prononçait la phrase “Le Roi a donné la paix à l’Europe“, la deuxième tête répondait “La paix fait le bonheur des peuples“.

Dans les procès-verbaux de l’Académie Royale des Sciences du 2 juillet 1783 il est noté que, suite à une demande de l’abbé Mical d’examiner ses têtes parlantes, MM. Le Roy, de Lalande, de Milly, Laplace, Lavoisier, Ferrein et Vicq-d’Azier ont été nommés commissaires pour procéder à cette tâche.

Extrait du procès-verbal de la séance du 2 juillet 1783 de l’Académie Royale des Sciences (Bibliothèque Nationale de France)

Quelques-uns étaient franc-maçons appartenant au même Loge des Neufs Soeurs que Mical lui-même.

Les commissaires ont rendu compte de leur expertise dans la séance du 3 septembre 1783 de l’Académie Royale des Sciences.

Première page du procès-verbal de la séance du 3 septembre 1783 de l’Académie Royale des Sciences (Bibliothèque Nationale de France)

 

Compte rendu des commissaires de l’Académie Royale des Sciences en charge de l’examen des têtes parlantes de l’abbé Mical (Bibliothèque Nationale de France)

Dans ce rapport (voir mon texte converti), dont l’original est disponible en ligne à la Bibliothèque Nationale de France, les commissaires disent d’emblée que les phrases ne sont pas prononcées distinctement dans toutes leurs parties, que la réunion des syllabes ne se fait pas avec toute la précision possible et que plusieurs consonnes ont besoin d’être perfectionnés. Ils concluent que malgré ces défauts, le mécanisme de la machine leur a paru intéressant.

Le procès-verbal décrit la composition de la machine parlante. Une chambre à vent avec un soufflet, un cylindre qui actionne des leviers, un ensemble de différentes boîtes avec des conduits sonores, cavités et soupapes, des structures semblables à celles qu’on observe dans les orgues, des diaphragmes formés d’une peau très fine, des languettes vibrantes et des plaquettes de métal qui se déplacent.

Le premier quotidien français, le Journal de Paris, a rapporté plusieurs fois sur le projet de l’abbé Mical sous les rubriques “Arts” ou “Mécanique”.  Le 1er mai 1778 le journal s’empressait à annoncer au Public un spectacle étonnant d’une tête en airain qui parle. Il était précisé que la modestie de l’auteur de l’ouvrage cache son nom. Le 6 juillet 1783 le journal rapportait que M. l’abbé M*** avait demandé à l’Académie Royale des Sciences de désigner des commissaires pour examiner son chef-d’oeuvre. Le 17 juillet 1783 une lettre anonyme, adressée aux auteurs du journal, était publiée au sujet des têtes parlantes. Le contenu et le style de cette lettre font penser que l’auteur était Antoine de Rivarol, un essayiste et pamphlétaire royaliste français. Il écrivait la même année sa lettre à M. le Président de ***  Sur le Globe aérostatique, sur les Têtes parlantes, et sur l’état présent de l’opinion publique à Paris (pages 207 – 246). Le 1er avril 1784, le journal annonçait la présentation prochaine des têtes parlantes dans le cabinet de l’auteur, situé dans la rue de Marivaux, toujours sans mentionner  son nom. Ce n’est que le 11 avril 1784 que le nom Mical est communiqué dans le journal de Paris qui signale qu’à partir du lendemain le public pourra visiter, au prix de 3 liv., les têtes parlantes lors de deux séances par jour (à midi et à 5 heures). Le 22 mai 1784 (page 625) une contribution signée Le Comte de *** au sujet des réactions du public lors des présentations des têtes parlantes a été publiée dans le journal (voir première page ci-après).

Journal de Paris No 143 – 22 mai 1784 (Bibliothèque Nationale de France)

On ne connaît pas grand-chose sur la biographie de l’abbé Mical, même pas son prénom. Une source non vérifiée rapporte qu’il avait abandonné sa carrière à la Cathédrale de St. Maurice à Vienne pour aller à Paris, qu’il était poursuivi en justice à cause de ses dettes (notamment par le sculpteur qui avait fabriqué les têtes) et que, accablé par des problèmes, il est arrivé à l’échec final de son projet vers 1787, deux ans avant le début de la révolution française.

Si on compare la construction de l’abbé Mical à celles des savants Gottlieb Kratzenstein (voir 6.1.2) qui ont réalisé des machines mécaniques de synthèse vocale à la même période (1780), il faut se demander pourquoi la technologie plus avancée du premier est restée une curiosité jusqu’à nos jours, tandis que les constructions des deux autres sont considérées comme des innovations qui ont contribué à faire avancer la science.

Une des raisons est certes la mauvaise réputation des têtes parlantes à l’époque qu’on associait d’emblée à des tricheries. Une autre raison est peut-être la personnalité modeste de l’abbé Mical et sa façon de présenter son innovation. Mais je pense que la raison principale de l’échec de l’abbé Mical est le fait qu’il était au mauvais endroit à la mauvaise date.

4. Appareil phonatoire humain

Le schéma ci-dessous présente la structure générale du système vocal humain :

appareil vocal humain

Les poumons servent de soufflerie et font vibrer les cordes vocales. Cette vibration entraîne la création d’une onde sonore. Celle-ci va résonner dans un ensemble de cavités souples (pharyngienne et buccale). Les différents phonèmes sont produits en modifiant la géométrie des cavités.

On distingue les sons voisés (voyelles) et les sons non voisés (consonnes). La source des voyelles est la vibration périodique des cordes vocales en réponse au flux d’air dans les poumons. La source sonore des consonnes est une vibration apériodique causée par des flux turbulents dus à une constriction dans le conduit vocal. Dans les deux cas les phonèmes sont modulés par le même filtre, composé par les cavités pharyngiennes et buccales.

Les voyelles sont les composantes essentielles de l’intelligibilité du langage. Les différentes voyelles sont caractérisées par les fréquences des trois premiers formants qui se réfèrent à des pics dans le spectre harmonique du son.

L’ouverture de la mâchoire, qui resserre la cavité buccale du côté de la glotte et la dilate du côté des lèvres, est le facteur décisif de réglage du premier formant. Le second formant correspond à la forme du corps de la langue. Le troisième formant, plus sensible, se détermine soit par la position de la pointe de la langue, soit par l’intervention de la cavité nasale.

L’esquisse qui suit montre un schéma très simplifié pour la simulation de l’appareil vocal humain. Un générateur d’impulsions produit des impulsions périodiques  pour créer des voyelles, un générateur de bruit produit les signaux pour créer des consonnes. Les impulsions et les signaux sont amplifiés et formés par un filtre.

schéma simplifié pour simuler l’appareil vocal humain

Les sons de la parole qui sont les plus faciles à produire sont les consonnes bilabiales comme m, p et b et la voyelle ouverte a. Les premiers sons babillés par les bébés sont ma-ma, pa-pa respectivement ba-ba. Comme les parents tendent à associer les premiers mots de leurs enfants à eux-mêmes, les termes mama et papa ou baba désignent la mère, respectivement le père, dans presque toutes les langues du monde entier. On parle de cognats.

5. La voix humaine de l’orgue

On peut faire un parallèle entre la production de la parole et la pratique d’un instrument de musique à vent. Dans un tel instrument le son est produit grâce aux vibrations d’une colonne d’air provoquées par le souffle d’un instrumentiste (flûte, trompette, …), d’une soufflerie mécanique (orgue, accordéon) ou d’une poche d’air (cornemuse). La comparaison la plus pertinente peut se faire avec l’orgue. C’est un instrument qui produit les sons à l’aide d’ensembles de tuyaux sonores, accordés suivant une gamme définie et alimentés par une soufflerie. L’orgue se joue avec une console qui peut comporter jusqu’à sept claviers et avec un pédalier. Moyennant des registres qui actionnent un mécanisme propre à l’orgue on peut appeler un jeu qui change son timbre. Le nombre de registres peut varier de 1 à 400. Les tuyaux sonores se répartissent en deux grandes catégories: les jeux à bouche et les jeux d’anche. L’anche est une languette métallique qui vibre à la base du tuyau et dont les caractéristiques physiques conditionnent le son émis. Un grand orgue comprend des centaines de tuyaux allant de 10,4 mètres de haut jusqu’au plus petit de 1 cm. Les tuyaux sont groupés par famille en fonction des jeux sélectionnés.

La figure ci-après montre le schéma d’un tuyau d’orgue à anche :

image de Wikipedia

Une soufflerie envoie un flux d’air sur une anche, placé au bas du tube. Sous l’action du flux d’air, l’anche (vibreur) est mise en vibration et génère ainsi une onde périodique qui se propage alors dans le tube (résonateur) générant un son. La fréquence du son dépend du diamètre et de la longueur du tuyau.

Avec les poumons comme soufflerie, les cordes vocales comme vibreur et les cavités buccale et pharyngienne déformables, l’appareil de production de la parole fonctionne donc selon un schéma proche de l’orgue.

Il y a un jeu d’orgue particulier appelé “vox humana” qui évoquait l’impression d’une chorale ou d’un soliste humain au Moyen Âge. Nous allons voir que cette voix humaine de l’orgue a joué un certain rôle dans la réalisation des premiers appareils de synthèse vocale mécanique.

6. Histoire de la synthèse vocale

Nous avons lu dans l’introduction que la synthèse vocale est aujourd’hui une science informatique, mais qu’elle était précédée par des techniques mécaniques, électriques et électroniques. Jusqu’à la fin du 19e siècle la synthèse vocale était basée uniquement sur des constructions mécaniques.

Suite à l’introduction du téléphone en 1876, les synthétiseurs vocaux ont évolué vers des équipements électromécaniques, pour devenir purement électriques dès la fin des années 1930, et des équipements électroniques 40 années plus tard. Pour manipuler les synthétiseurs mécaniques et électriques il fallait être un expert qui maîtrisait la génération de sons. Les synthétiseurs vocaux électroniques et informatiques disposaient d’une interface permettant d’entrer du texte et de le convertir en parole. On commençait à parler de synthèse de la parole et de TTS (Text to Speech). L’utilisation de ces équipements était à la portée de tout le monde, tandis que les développeurs de ces machines devaient avoir des connaissances approfondies en linguistique, phonologie, phonétique et sémantique.

À partir des années 1980 les scientifiques qui faisaient des recherches dans le domaine de la synthèse vocale, respectivement de la synthèse de la parole, se sont focalisés uniquement sur l’informatique. Depuis quelques années c’est l’intelligence artificielle qui domine le domaine. L’apprentissage approfondi permet aux ordinateurs d’apprendre à parler de la même manière que les petits enfants, sans se soucier de grammaire, d’orthographe ou de syntaxe.

Le revers de la médaille est qu’il faut des centaines, voire des milliers d’heures d’enregistrements audio, avec le texte annoté, pour faire de l’apprentissage approfondi, ce qui pose un problème pour les langues rares comme le luxembourgeois. À l’heure actuelle il faut donc se contenter de synthétiseurs de la parole luxembourgeoise qui utilisent les méthodes informatiques classiques, basées sur des phonèmes, règles et dictionnaires.

6.1. Synthétiseurs vocaux mécaniques

La thèse de doctorat rédigée en 2015 par Fabian Brackhane à l’université de la Sarre avec le titre Kann was natürlicher, als Vox humana, klingen ? Ein Beitrag zur Geschichte der mechanischen Sprachsynthese constitue une source exceptionnelle et précieuse sur les travaux de synthèse vocale réalisés après la fin du Moyen Âge.

6.1.1. Christian Gottlieb Kratzenstein (1723 – 1795)

La première machine de synthèse vocale mécanique connue à ce jour a été construite par le scientifique allemand Christian Gottlieb Kratzenstein. Né le 30 janvier 1723 à Wernigerode, il obtenait à l’âge de 23 ans des doctorats en médecine et physique à l’université de Halle pour ses thèses Theoria fluxus diabetici et Theoria electricitatis mores geometrica explicata concernant la nature de l’électricité. Deux ans plus tard, il a été appelé à l’Académie des Sciences à Saint-Pétersbourg. En 1753, il est engagé comme professeur de physique expérimentale à l’université de Copenhague où il fût nommé recteur quatre fois de suite.

Gottlieb Kratzenstein était un proche (certains disent un protégé) du mathématicien renommé suisse Leonhard Euler qui exerçait également à l’Académie des Sciences à Saint-Pétersbourg. Dans sa correspondance (conservée aux archives de l’université de Bâle) avec le mathématicien Johann Heinrich Lambert, Leonhard Euler exprimait dès 1758 ses réflexions sur la nature des voyelles a, e, i, o, u et proposait la construction d’une machine parlante pour mieux comprendre l’organisme du langage humain. Sur initiative de Leonhard Euler, l’Académie des Sciences à Saint-Pétersbourg organisait en 1778 une compétition pour réaliser un appareil de synthèse des voyelles de la voix humaine.

Après son départ à Copenhague, Gottlieb Kratzenstein avait gardé de bonnes relations avec ses pairs à l’académie et il était très intéressé à cette compétition. En se  basant sur les études afférentes de Leonhard Euler, il a parfait sa machine parlante construite dès 1773, en utilisant des tubes et des tuyaux organiques pour créer des cordes vocales artificielles. Il s’est surtout inspiré du jeu vox humana de l’orgue.

Tentamen Resolvendi Problema – fig 3 (Bayrische Staatsbibliothek)

En 1780, il a gagné le premier prix de la compétition avec son projet d’un orgue vocal. Une année plus tard il a publié une description en latin du projet : Tentamen Resolvendi Problema. Une version traduite en allemand de cette oeuvre a été publiée en 2016.

Tentamen Resolvendi Problema (Bayrische Staatsbibliothek)

Gottlieb Kratzenstein n’a pas seulement fourni une contribution appréciée pour la synthèse vocale, mais il a également fait avancer la science dans les domaines de la chimie, de la navigation, de l’astronomie, de la neurologie et de l’électricité. En 1743 il avait même rédigé une oeuvre philosophique Beweis, dass die Seele ihren Körper baue. Dans la suite il publiait Abhandlung von dem Nutzen der Electricität in der Arzeneiwissenschaft concernant l’électrothérapie.

Gottlieb Kratzenstein était marié et il avait quatre enfants. Il est décédé en 1795. Un de ses petits-fils est Christian Gottlieb Stub, un peintre danois renommé qui porte les prénoms de son grand-père et qui a ajouté dans la suite également le nom de famille Kratzenstein à son nom. Né en 1783, il est décédé en 1816 à l’âge de 33 ans.

Dans ce contexte il convient de mentionner également l’échange de lettres entre Gottlieb Kratzenstein et l’astronome renommé Johann III Bernouilli après la mort de l’épouse du premier. Susan Splinter a rédigé une contribution Ein Physiker auf Brautschau à ce sujet.

6.1.2. Johann Wolfgang von Kempelen (1734 – 1804)

Si on s’intéresse pour l’histoire de la synthèse vocale on pense d’abord à Johann Wolfgang von Kempelen. Né le 23 janvier 1734 à Presbourg (aujourd’hui Bratislava) et décédé le 26 mars 1804 à Vienne, Wolfgang von Kempelen (Farkas Kempelen en hongrois) était ingénieur et conseiller aulique à la Cour impériale de Vienne. Il est surtout connu sous le nom de Baron von Kempelen pour l’invention du Turc mécanique en 1769, un automate célèbre qui avait l’apparence d’un Turc et actionnait les pièces d’un jeu d’échecs.

Wolfgang von Kempelen a commencé au début des années 1770 à construire une machine parlante, c.à.d. à la même époque où Gottlieb Kratzenstein commencait à s’intéresser pour la synthèse vocale à Copenhague.

Wolfgang von Kempelen fabriquait plusieurs prototypes qui menaient à des échecs. Pour la première version il utilisait un soufflet de cuisine, une anche (roseau) de cornemuse et une cloche de clarinette.

Livre de von Kempelen, page 76 (digitalcommons.ohsu.edu)

Pour la seconde version il utilisait une console d’orgue avec un clavier où les différentes touches étaient associés à des lettres. Les sons étaient produits avec des tubes de différentes formes et longueurs. Le problème était toutefois le chevauchement (co-articulation) des différents sons qui empêchait la génération de syllabes.

Livre de von Kempelen, page 400 (digitalcommons.ohsu.edu)

Wolfgang von Kempelen concluait qu’il fallait mieux comprendre le fonctionnement de l’appareil phonatoire humain pour progresser. Ce n’est qu’au début des années 1780 que son modèle réalisé lui donnait satisfaction et qu’il le présentait au public. Contrairement à la machine de Gottlieb Kratzenstein, la construction de Wolfgang von Kempelen était la première à produire, non seulement certaines voyelles, mais surtout des mots entiers et des courtes phrases.

En 1791 Wolfgang von Kempelen a publié un livre Mechanismus der menschlichen Sprache nebst der Beschreibung seiner sprechenden Maschine pour expliquer aux personnes intéressées les principes de sa machine. Le livre comprenait 456 pages. L’objectif de cet ouvrage n’était pas seulement d’élucider le mystère de l’étonnant appareil, mais aussi d’inciter le lecteur à le perfectionner de sorte qu’on puisse enfin en obtenir ce pour quoi il fut imaginé. On peut considérer la description de Wolfgang von Kempelen comme un premier projet “open-source”.

Livre de von Kempelen, page 400 (digitalcommons.ohsu.edu)

L’auteur formule dans son livre quelques hypothèses essentielles sur la production de la parole humaine. Il proposait une conception de la langue qui n’était plus envisagée comme souffle de l’âme, mais tout simplement comme de l’air s’échappant à travers des fentes de formes variables. En s’observant lui-même, Wolfgang von Kempelen décrivait également les différents sons et les positions que devaient prendre les organes phonateurs pour les produire.

Le musée des sciences et de la technique à Munich (Deutsches Museum), créé en 1903, expose dans un coin du département des instruments de musique une machine parlante désignée comme celle construite par Wolfgang von Kempelen. Elle a été offerte au musée en 1906 par l’Académie de la Musique à Vienne. Suite à ses recherches, Fabian Brackhane conteste qu’il s’agit de l’original de Wolfgang von Kempelen. Il estime plutôt qu’il s’agit d’une réplique construite par Charles Wheatstone (voir 6.1.4).

Deutsches Museum : exposition 8 objets, 8 musées (Leibniz Association)

Il s’agit d’une construction composée d’un caisson en bois, d’un entonnoir en caoutchouc qui faisait office de bouche et d’un second, plus petit, divisé en deux, qui remplissait les fonctions d’un nez. Le mécanisme interne était un soufflet qui simulait les poumons. Le flux d’air était conduit dans la “bouche” par l’intermédiaire d’un couloir très étroit. Une hanche vibrante, sorte de glotte et de cordes vocales réunies, produisait un son. Celui-ci était ensuite modulable par différents petits leviers et l’utilisation des doigts de l’opérateur pour modifier l’air à la sortie de la “bouche” afin de simuler le mouvement des lèvres.

Grâce au livre de Wolfgang von Kempelen, plusieurs chercheurs ont réussi à construire une réplique de sa machine parlante. Un exemple a été créé au département des sciences et technologies du langage à l’université de la Sarre.

Réplique de la machine parlante de von Kempelen à l’université de la Sarre : Wikipedia

Le lecteur intéressé trouve dans la bibliographie quelques liens vers des vidéos qui montrent la manipulation de la machine parlante du Baron von Kempelen.

L’association allemande Leibniz a organisé du 7 novembre 2016 au 30 juin 2017 une exposition simultanée des musées de recherche Leibniz, intitulée 8 Objekte, 8 Museen. Le musée des sciences et de la technique à Munich y a présenté sa machine parlante de von Kempelen. Cette exposition virtuelle peut encore être visitée sur la plate-forme Arts & Culture de Google qui était partenaire de l’exposition.

Extraits de l’exposition virtuelle 8 Objekte, 8 Museen sur Google Arts & Culture

6.1.3. Robert Willis (1800 – 1875)

Né en 1800, Robert Willis était un académicien anglais, renommé comme ingénieur en mécanique et pour ses publications au sujet de l’architecture. Il a été ordonné prêtre en 1827. Le révérend Willis a publié deux contributions très appréciées sur la mécanique de la parole humaine dans le journal Transactions of the Cambridge Philosophical Society : On vowel sounds, and on reed-organ pipes en 1828 et On the Mechanism of the Larynx en 1829.

Transactions of the Cambridge Philosophical Society, 1830, Vol III (digilib)

La contribution de Robert Willis a été traduite en allemand en 1832 dans le journal scientifique Annalen der Physik und Chemie.

Robert Willis a repris les travaux pratiques de Gottlieb Katzenstein et il a testé plusieurs variantes de résonateurs pour parfaire la génération des voyelles.

Transactions of the Cambridge Philosophical Society, 1830, Vol III (Hathi Trust Digital Library)

6.1.4. Charles Wheatstone (1802 – 1875)

Né en 1802, Charles Wheatstone est un physicien et inventeur anglais. On lui doit le premier télégraphe électrique au Royaume-Uni, le pont de Wheatstone, le stéréoscope, un microphone, et l’instrument de musique Concertina.

En 1835, Charles Wheatstone présentait une réplique de la machine parlante de Wolfgang von Kempelen. Il profitait des progrès technologiques réalisés dans les dernières décennies pour parfaire la construction. En 1837 il publiait un article au sujet des inventions de Gottlieb Kratzenstein et de Wolfgang von Kempelen ainsi que sur la contribution “On vowel sounds” de Robert Millis, dans le journal The London and Westminster Review.

The London and Westminster review, Vol 28, october 1837 (Hathi Trust Digital Library)

Deux années plus tôt, Charles Wheatstone avait déjà exposé ses études et présenté sa réplique d’une machine parlante  à l’association britannique pour l’avancement des sciences lors de son assemblée à Dublin en août 1935.

Rapport de la réunion à Dublin en 1835 (Google Books, page 302)

En 1930 Richard Paget, un avocat anglais et amateur des sciences, publiait son livre Human Speech. C’est le dernier qui rapportait au sujet de la réplique de la machine parlante réalisé par Charles Wheatstone sur base de la description de Wolfgang von Kempelen. Dans son livre il a publié l’esquisse suivante de l’engin :

Livre Human Speech de Richard Page, 1930, page 18 (archive.org)

Fabian Brackhane a signalé dans sa dissertation Kann was natürlicher, als Vox humana, klingen ? de 2015 que la réplique de Charles Wheatstone se trouve aujourd’hui dans un dépôt du Musée des Sciences à Londres avec l’attribution Wheatstone’s artificial voice box. Il a même réussi à obtenir des photos de la construction qu’il a publiée dans sa dissertation (page 87).

Wheatstone’s artificial voice box (Fabian Brackhane)

Une recherche dans la collection des objets du musée avec le mot clé Wheatstone fournit 133 résultats, mais hélas sans mentionner la voice box.

6.1.5. Joseph Faber (1800 – 1850)

Joseph Faber est né aux environs de 1796 à Fribourg-en-Brisgau. Il a fait des études de physique, mathématiques et musique à l’Institut polytechnique impériale et royale à Vienne. Pour se remettre d’une grave maladie, il est retourné à sa ville de naissance en 1820. Pendant sa reconvalescence, il s’est mis à construire pendant 17 ans une machine parlante améliorée sur base du livre de Wolfgang von Kempelen.

Une ancienne gravure, dont on ignore l’auteur et la date de création (éventuellement 1835), montre une jeune dame (probablement l’épouse de Joseph Faber) qui manipule le clavier à 16 touches de la machine parlante. La face de la tête est posée sur la table et on peut voir la bouche de la machine avec des lèvres et une langue.

Gravure ancienne de la machine parlante Euphonia (domaine public)

En 1840, il a présenté son invention, qu’il appelait Euphonia, au public à Vienne et au Roi de Bavière en 1841. L’instituteur Schneider de Bauernwitz décrit en 1841 dans un journal pédagogique (Der katholische Jugendbildner) le fonctionnement de la machine qu’il a pu voir lors de sa visite à Vienne la même année. L’existence de cette machine a été signalée en janvier 1841 dans le même journal.

En 1842 il exposait la machine à Berlin et à Dresde, une année plus tard à Leipzig. Comme il ne rencontrait pas l’intérêt souhaité, il décidait de l’exposer aux États-Unis. En 1844 il la présentait à New York, une année plus tard à Philadelphia (Musical Fund Hall), sans succès. Ce fût Phineas Taylor Barnum, l’entrepreneur américain de spectacles (cirque Barnum) qui la rendit célèbre. Il amena Joseph Faber à Londres et  présenta la machine à l’Egyptian Hall à partir de 1846.

Le périodique Illustrated London News du 8 août 1846 (page 16) rapportait sur cette nouvelle attraction exposée à Londres.

La face de la tête a été appliquée et le mécanisme de la machine a été caché par un rideau et un buste de poupée pour faire ressembler la machine à un vrai personnage.

Le journal satirique anglais Punch (The London Charivari) a publié dans son volume 11, 1846, page 83, une contribution Speaking Machine avec un dessin humoristique au sujet de la machine parlante Euphonia de Joseph Faber.

extrait du journal satirique anglais Punch Vol XI 1846 (Google Books)

Le dessin est attribué à l’auteur anglais William Makepeace Thackeray qui se moque des parlementaires Lord George Bentinck et Benjamin Disraeli. Richard Daniel Altick a repris dans son livre The Shows of London, publié en 1978, ces illustrations.

Après Londres, P. T.  Barnum a exposé la machine parlante de Joseph Faber dans son musée américain des curiosités à New York. C’est là que le photographe américain Mathew Brady prenait la photo suivante vers 1860.

En novembre 1870, le périodique The London Journal a publié une nouvelle contribution sur la machine parlante.

extrait du The London Journal, november 1870 (Hathi Trust Digital Library)

L’article précise qu’une Talking Machine du Professeur Faber de Vienne est exposée au Palais Royal, Oxford-Circus, et qu’une visite vaut la peine. Il semble donc que la machine a été retournée des États-Unis à Londres. L’affiche suivante qui fait partie de la collection de Ricky Jay date probablement de cette époque.

Poster from the Euphonia exhibition (Collection de Ricky Jay)

En 1873, les affiches, courriers et annonces dans la presse concernant le nouveau cirque itinérant de P. T. Barnum, sous le nom de P. T. Barnum’s Great Traveling World’s Fair, incluaient des images de la machine parlante de Joseph Faber.

Courier for P.T. Barnum’s Great Traveling World’s Fair at Boston, Mass., May 12, 1873 (Connectitute Digital Archive)

P. T. Barnum mettait la machine parlante en évidence avec les attributs wonderful, marvelous, amazing, greatest invention of modern times. P. T. Barnum se vantait même d’avoir payé 20.000 $ pour la présentation exclusive de cette attraction durant 6 mois.

Publicités de Barnum (domaine public)

Sur les publicités de P. T. Barnum pour la machine parlante du Professeur Faber on voit un jeune homme qui manipule le clavier. Il s’agit probablement du mari de la nièce de Joseph Faber. Après le décès de celui-ci le 2 septembre 1866 à Vienne, sa nièce avait hérité la machine parlante et son mari se faisait passer pour le professeur Faber. Le cirque Barnum exposait la machine jusqu’en 1875. Ensuite la nièce, avec la complicité de son mari, continuait à la présenter jusqu’en 1885 à Londres et Paris (Grand-Hôtel en 1877, salle à proximité du théâtre Robert-Houdin en 1879) sous le nom de Amazing Talking Machine.

Après 1885, on ne trouve plus trace de la machine.

Malgré tous les efforts, l’Euphonia n’a jamais dépassé le stade d’une curiosité. En réalité l’invention de Joseph Faber était vraiment une version améliorée de la machine parlante de Wolfgang von Kempelen. Un clavier de 16 touches actionnait un mécanisme comprenant une série de six plaques de métal coulissantes qui avaient des ouvertures de formes variées à leurs extrémités. Quand ces plaques étaient soulevées ou rabaissées, elles créaient un courant d’air finement nuancé envoyé par un soufflet. L’air atteignait ensuite une cavité qui imitait l’anatomie humaine du palais avec des joues en caoutchouc, une langue en ivoire et une mâchoire inférieur. Avec cette construction Joseph Faber pouvait produire des voyelles et consonnes dans différentes langues. Il est rapporté que la machine pouvait même chanter “God save the Queen”.

Parmi les visiteurs des présentations de la machine parlante de Joseph Faber figurent des personnalités comme Frédéric Chopin (lettre du 11.10.1846 à ses parents),  Robert W. Patterson, Joseph Henry, Graham Bell et le Duc de Wellington.

Aujourd’hui Joseph Faber est considéré comme un vrai pionnier de la synthèse vocale.

6.1.6. Hermann Ludwig Ferdinand von Helmholtz (1821 – 1894)

Né le 31 août 1821 à Potsdam, Hermann von Helmholtz était un physiologiste et physicien prussien qui a commencé sa carrière comme médecin militaire. Dans la suite il devenait professeur d’anatomie et de physiologie, puis professeur de physique à Berlin en 1871. Il est surtout connu pour ses contributions à l’étude de la thermodynamique, de la thermochimie, de l’optique et de la musique. Son nom reste associé à l’équation de Helmholtz, le théorème de Gibbs-Helmholtz et la loi de Lagrange-Helmholtz. Il est l’auteur du livre Die Lehre von den Tonempfindungen als physiologische Grundlage für die Theorie der Musik, paru en 1863.

Hermann von Helmholtz est moins connu pour sa contribution à la synthèse vocale. Il a synthétisé les voyelles à l’aide de diapasons d’accord, lesquels ont été réglés sur les fréquences de résonance du tractus vocal dans certaines positions de voyelles.

Helmholtz Resonator (Wikipedia)

6.1.7. Robert R. Riesz (1903 – )

Né en 1903 à New-York, Robert R. Riesz a été engagé dans les laboratoires Bell Téléphone en 1925, après avoir effectué des études en mathématiques et physique. En 1929 son innovation Artificial Larynx a été breveté au profit de Bell. Il s’agissait d’une prothèse pour des personnes ayant subi une ablation du larynx. Le projet a été décrit en 1930 dans le journal de la société acoustique américaine.

Brevet d’un larynx artificiel introduit par R.R. Riesz en 1929 (Google : Patents)

En 1937 Robert Riesz présentait un modèle réaliste de l’appareil vocal humain. Abstraction faite de quelques projets récents entrepris au Japon dans le domaine de la robotique, le modèle vocal de Robert Riesz est la dernière tentative de construire une machine de synthèse vocale mécanique.

Modèle de la tête parlante de R.R.Riesz (Haskins Laboratories) – SIMULACRUM

Dans la suite Robert Riesz contribuait au développement des premiers projets de synthèse vocale électroniques.

6.2. Histoire : synthétiseurs vocaux électriques et électroniques

Pour tracer l’histoire de la synthèse vocale électrique, il faut retourner dans la seconde moitié du 19e siècle. Après l’introduction de la télégraphie électrique, l’invention du téléphone en 1876 et du phonographe en 1877 a interrompu l’intérêt pour la synthèse vocale d’un jour à l’autre, et ceci pendant une longue période. Il convient donc de jeter également un regard sur les pionniers de la téléphonie et de la reproduction du son pour comprendre la renaissance de l’intérêt pour la synthèse vocale soixante ans plus tard, à la fin des années 1930.

6.2.1. Joseph Henry (1797 – 1878)

Joseph Henry est un physicien américain qui découvrit l’auto-induction et le principe de l’induction électromagnétique des courants induits, ce qui contribuait à la fabrication du premier télégraphe électromagnétique.

L’invention du télégraphe électromagnétique est attribuée à Samuel Morse qui présentait sa première version opérationnelle le 6 janvier 1838 à Speedwell Ironworks près de Morristown aux États-Unis. Toutefois l’idée du télégraphe électromagnétique revient à Joseph Henry qui montrait dès 1831 aux étudiants du collège à Albany, où il enseignait, un concept d’un télégraphe qui fonctionnait avec un aimant électrique.

Esquisse du modèle d’un télégraphe de Joseph Henry (Smithsonian annual report for 1857, p. 105)

En décembre 1845, juste avant l’exposition publique de la machine parlante de Euphonia au Musical Fund Hall à Philadelphia, Joseph Henry avait visité Joseph Faber en privé, accompagné de son ami Robert M. Patterson. Joseph Henry était impressionné par l’ingéniosité de la machine et il envisageait de transmettre des mots via le télégraphe en actionnant les touches par des électro-aimants. Avec une petite astuce, des mots générés moyennant le clavier à une extrémité du télégraphe pourraient être reproduits à l’autre extrémité.

Alors qu’il avait les compétences requises, Joseph Henry n’avait jamais mis en pratique cette idée. Trente ans plus tard, en février 1875, le jeune Alexandre Graham Bell, qui avait l’idée du téléphone en tête, venait demander conseil à Joseph Henry, qui à l’époque approchait ses 80 ans. Devenu en 1846  le premier secrétaire de la Smithsonian Institution, une institution américaine de recherche et d’éducation scientifique, Joseph Henry était alors reconnu comme sommité dans le domaine de l’électromagnétisme et de la télégraphie. Il encourageait Graham Bell de persévérer et confirmait qu’il était sur le bon chemin.

6.2.2. Alexandre Graham Bell (1847 – 1922)

Le jeune Alexandre Graham Bell, né en 1847 à Édimbourg en Écosse, a hérité l’intérêt pour l’acoustique de son père, Alexandre Melville Bell, qui était enseignant et chercheur dans le domaine de la phonétique. Il est l’inventeur du Visible Speech, une méthode créée afin d’enseigner la parole aux sourds.

En 1863, Graham Bell a été emmené par son père à une visite à Londres de la machine parlante reconstruite par Charles Wheatstone. Il était fasciné par la machine. Charles Wheatstone lui prêtait la description de Wolfgang von Kempelen et, avec son frère Melville, il réalisa sa propre version de cet automate. Dans la suite, Alexandre Graham Bell pratiqua des expériences sur la physiologie de la parole et étudia la hauteur et la formation des voyelles à l’université d’Édimbourg. La fascination par la machine parlante semble donc être à l’origine de l’intérêt pour la parole humaine qui ont conduit Graham Bell à faire breveter le téléphone en 1876.

Brevet du 7 mars 1876 attribué à Graham Bell (Wikipedia) Google : Patents

Il convient toutefois de signaler que la paternité de Graham Bell dans l’invention du téléphone a donné lieu de suite à des controverses qui persistent encore aujourd’hui. À côté de Graham Bell, les personnes suivantes se considèrent comme les inventeurs du téléphone : Antonio Meucci, Johann Philipp Reis, Innocenzo Manzetti, Charles Bourseul, Amos Dolbear, Daniel Drawbaugh et Elisha Gray. Un collectionneur français de téléphones, Jean Godi, a écrit la véritable histoire du téléphone sur son site web.

6.2.3. Thomas Edison (1847 – 1931)

Né le 11 février 1847 à Milan dans l’Ohio, Thomas Edison a travaillé au début comme télégraphiste. À l’âge de 19 ans il déposait son premier brevet pour l’invention d’un transmetteur-récepteur duplex automatique de code Morse. En 1874 il devenait patron de sa première entreprise grâce aux fonds récoltés pour son brevet. Avec deux associés, il dirigeait un laboratoire de recherche avec une équipe de 60 chercheurs salariés. Il supervisait jusqu’à 40 projets en même temps, et se voyait accorder un total de 1.093 brevets américains. Sa société a donné naissance à la General Electric, aujourd’hui l’une des premières puissances industrielles mondiales.

En 1877, Thomas Edison a achevé la mise au point de son phonographe, capable non seulement d’enregistrer mais aussi de restituer toute forme de sons, dont la voix humaine. Les premiers phonographes étaient munis d’un cylindre phonographique d’acier en rotation, couvert d’une feuille d’étain, et la gravure était effectuée par une aiguille d’acier. L’enregistrement était lu par la même aiguille dont les vibrations sur un diaphragme mince étaient amplifiées par un cornet acoustique.

Phonographe d’Edison au musée des sciences à Madrid (Wikipedia)

6.2.4. Homer Dudley (1896 – 1980)

Né en 1896 en Virginie, Homer Dudley était un pionnier de l’ingénierie acoustique. Après ses études il a joint la division téléphonie des laboratoires Bell en 1921. Quelques années plus tard le premier service téléphonique commercial transatlantique entre l’Amérique du Nord et l’Europe a été établi. C’était le 7 janvier 1927, la liaison passait par ondes radio.

Le premier câble transatlantique a déjà été posé en 1858 et il était utilisé pour la télégraphie. Le premier message a été envoyé le 16 août 1858. Le câble s’est rapidement détérioré et la transmission d’un message d’une demi-page de texte prenait jusqu’à un jour. Après 3 semaines, le câble est tombé en panne et n’a pas pu être réparé. Dans la suite d’autres câbles ont été posés qui étaient plus durables. En 1866 on arrivait à transmettre 8 mots par minute sur un câble télégraphique transatlantique. Au début du XX siècle la vitesse dépassait 120 mots par minute.

La performance des câbles télégraphiques a été améliorée par l’alliage magnétique permalloy qui compense ll’induction électromagnétique. Inventé par le physicien Gustav Elmen en 1914 dans les laboratoires Bell sur base des théories de Oliver Heaviside, un nouveau procédé de fabrication de câbles sous-marin afférent a été testé avec succès en 1923. Les nouveaux câbles télégraphiques construits avec ce procédé ont atteint des bandes passantes de 100 hertz, ce qui permettait de transmettre jusqu’à 400 mots par minute.

L’objectif de Homer Dudley était de comprimer la voix humaine de façon à pouvoir la transmettre sur un tel câble télégraphique ayant une bande passante de 100 hertz. Homer Dudley se disait que la langue, les lèvres et les autres composants du conduit vocal ne sont rien d’autre que des clés télégraphiques qui bougent à une cadence maximale de quelques dizaines de hertz. Il suffit d’analyser les principales composantes spectrales de la voix et de fabriquer un son synthétique à partir du résultat de cette analyse.

Il faut se rappeler que Joseph Henry faisait les mêmes réflexions 80 ans plus tôt.

Aujourd’hui on sait que la limite théorique minimum de débit pour un codage conservant l’information sémantique contenue dans la parole est d’environ 60 bits par seconde, si l’on compte environ 60 phonèmes dans une langue et une vitesse d’élocution moyenne d’une dizaine de phonèmes par seconde. Pour un débit aussi faible, les informations concernant le locuteur et ses émotions sont perdues.

Homer Dudley a pu profiter des études effectuées par les chercheurs Harry Nyquist et Ralph Hartley qui travaillaient également dans les laboratoires Bell. Le premier est à l’origine du théorème d’échantillonnage de Nyquist-Shannon, le deuxième a contribué à la fondation de la théorie de l’information. En octobre 1928, il a esquissé les premiers circuits et édité une description de sa future invention : le VOCODER.

Démonstration du VOCODER par Homer Dudley (Bell System Technical Journal  No 4, October 1940)

Le nom VOCODER résulte de la composition des termes codeur et décodeur. Le codeur analyse le signal pour en extraire un nombre réduit de paramètres pertinents qui sont représentés par un nombre restreint de bits pour la transmission. Le décodeur utilise ces paramètres pour reconstruire un signal de parole synthétique. Le principe du codeur de Homer Dudley consistait à évaluer l’énergie, le voisement, le formant F0 et les puissances relatives du signal dans un ensemble de douze bandes de fréquences adjacentes. Le décodeur générait la parole synthétique en passant le signal d’excitation dans un banc de filtres passe-bande dont les sorties étaient pondérées par les puissances relatives du signal original dans ces différentes bandes. Les sorties des filtres ont été ajoutées ensuite et cette somme a été mise à l’échelle en fonction de l’énergie de la trame originale.

La qualité de la voix reproduite par le vocodeur de Homer Dudley (aujourd’hui connu sous le nom de spectrum channel vocoder) était insuffisante pour envisager une introduction commerciale. Avec l’aide de Robert R. Riesz, Homer Dudley s’est alors focalisé sur la partie décodeur avec la parole synthétique. Le codeur a été remplacé par une console avec un clavier pour générer les paramètres de la voix. Cet appareil a été nommé VODER et breveté en 1937 au profit de Homer Dudley et des laboratoires Bell. Il a été présenté au grand public lors de l’exposition mondiale à New York en 1939.

Présentation de PEDRO the VODER au stand de Bell à l’exposition mondiale 1939 à New York

Le VODER découpait le spectre vocal en 10 bandes et comprenait des oscillateurs et des générateurs de bruit pour produire des signaux électriques qui passaient ensuite par des filtres pour produire les différents sons. Les oscillateurs et filtres étaient commandés par 10 touches. La manipulation était complexe et il fallait entraîner des opératrices (vodettes) pendant plusieurs mois pour produire une synthèse vocale intelligible.

assemblage de photos du VODER ; Homer Dudley en haut à gauche

Pendant la deuxième guerre mondiale, Homer Dudley a contribué aux recherches du projet SIGSALY concernant les transmissions sécurisées sur base du vocodeur. Il est resté auprès de Bell jusqu’au début des années 1960. Le dernier projet de Homer Dudley était le développement d’un kit de synthèse vocale pour des étudiants et hobbyistes. Fabriqué à partir de 1963, le kit a été commercialisé jusqu’à la fin des années 1960.

Kit de synthèse vocale de Bell

La recherche sur la synthèse vocale a été poursuivie dans les laboratoires Bell. Au début des années 1960 c’étaient John L. Kelly, Carol Lockbaum, Cecil Coker, Paul Mermelstein et Louis Gerstman qui étaient engagés dans le développement de systèmes de simulation de l’appareil vocal humain.

Le vocodeur inventé par Homer Dudley est devenu célèbre dans les années 1970 comme instrument de création sonore utilisé par des groupes de musique électronique comme Kraftwerk, The Buggles et d’autres. En réalité, Kraftwerk utilisait surtout le synthétiseur Votrax, inventé par Richard T. Gagnon (voir 6.2.10), comme sa fille a témoigné en 2013.

6.2.5. Franklin S. Cooper (1908 – 1999)

En 1941, pendant la deuxième guerre mondiale, les chercheurs W. Koenig, H. K. Dunn et L. Y .Lacy des laboratoires Bell ont inventé le premier spectrographe acoustique qui convertit une onde sonore en spectre sonore.

Sound Spectrograph D-165529 (Griffonage-dot-com)

Si vous êtes intéressé à obtenir plus de détails sur les spectres sonores, veuillez lire ma contribution Spectrograms and speech processing sur le présent site web.

Franklin Seaney Cooper a eu l’idée de faire le processus inverse, c’est-à-dire convertir un spectre sonore en onde sonore. Né en 1908, il a obtenu un doctorat en physique au MIT en 1936. Une année plus tôt, il a fondé ensemble avec Caryl Parker Haskins les laboratoires Haskins, une institution de recherche sans but lucratif, spécialisée dans le langage oral et écrit. Franklin S. Cooper a été le président et directeur des recherches des laboratoires Haskins de 1955 à 1975.

À la fin des années 1940, Franklin S. Cooper, assisté de John M. Borst et Caryl P. Haskins, a développé la machine appellée Pattern Playback pour convertir des spectrogrammes en paroles.

Assemblage de photos de la machine Pattern Playback (laboratoires Haskins)

L’appareil pouvait reproduire des images de spectrogrammes réels ou bien des modèles artificiels recomposés à la main avec une peinture blanche sur une base d’acétate de cellulose. La production des sons se faisait par l’intermédiaire d’un faisceau lumineux modulé par une roue tonale et réfléchie par les parties blanches du spectrogramme. Comme le spectrogramme se déroulait dans l’appareil à une vitesse uniforme, on pouvait dessiner sur le modèle synthétique les trois paramètres fondamentaux du son : le temps (axe horizontal), la fréquence (axe vertical) et l’amplitude (épaisseur des traits). Un spectrogramme synthétique de la phrase These days a chicken leg is a rare dish est présenté dans la figure suivante :

La machine Pattern Playback a été perfectionnée au fur et à mesure et a servi à faire de nombreuses recherches au sujet de la perception de la voix et de la synthèse et reconnaissance de la parole, notamment par Alvin Liberman, Pierre Delattre et d’autres phonéticiens.

La machine a été utilisée une dernière fois en 1976 pour une étude expérimentale réalisée par Robert Remez et elle se trouve maintenant au musée des laboratoires Haskins.

6.2.6. Gunnar Fant (1919 – 2009)

Carl Gunnar Michael Fant était professeur émérite à l’Institut royal de technologie de Stockholm (KTH). Gunnar Fant obtint une maîtrise en génie électrique en 1945. Il s’était spécialisé dans l’acoustique de la voix humaine, en particulier dans la constitution des formants des voyelles. Il a effectué ses recherches auprès de Ericsson et du MIT à ce sujet  et créait un département des sciences vocales (Speech Transmission Laboratory) auprès du KTH. Gunnar Fant développait en 1953 le premier synthétiseur par formants Orator Verbis Electris (OVE-1). Des résonateurs ont été connectés en série, le premier résonateur pour le formant F0 a été modifié avec un potentiomètre, les deux autres pour les formantes F1 et F2 avec un bras mécanique.  En 1960 Gunnar Fant publiait la théorie associée à ce synthétiseur, le modèle source-filtre pour la production de la parole.

Gunnar Fant avec le synthétiseur OVE-I  en 1953 (KTH)

Après sa retraite, Gunnar Fant a continué ses recherches dans le domaine de la synthèse vocale en se focalisant notamment sur la prosodie. Pour son 60e anniversaire en 1979 ses collaborateurs avaient édité un numéro spécial du journal interne de son département.

En 2000 Gunnar Fant a tenu un discours au congrès FONETIK à Skövde en Suède sur ses travaux effectués dans le domaine de la phonétique durant un demi-siècle. Il a décrit sa fascination pour la machine Pattern Playback de Franklin S. Cooper qu’il a pu voir en 1949. Son propre synthétiseur en cascade OVE II  utilisait une technique similaire pour générer les signaux d’entrée qui varient les fréquences et amplitudes des oscillateurs et des générateurs de bruits afin de produire des voyelles et des consonnes pour parler des phrases complètes. Cette deuxième machine, réalisée en collaboration avec Janos Martony et qui fonctionnait avec des tubes à vide électriques, a été présentée en 1961.

Janos Martony et Gunnar Fant (à droite) avec le synthétiseur OVE-II en 1958 (KTH)

Une troisième version électronique du synthétisuer OVE III a été réalisée par Johan Liljencrants en 1967 avec des transisteurs. Elle  a été raccordée à un ordinateur et gérée par un programme informatique.

Après sa mort en 2009, un portrait en mémoire de Gunnar Fant a été publié sur le site web du KTH.

6.2.7. Walter Lawrence ( – 1984)

Walter Lawrence était un ingénieur anglais qui  a travaillé après ses études au SRDE (Signals Research and Developement Establishment), une institution militaire créée en 1943 (pendant la deuxième guerre mondiale) par le ministère de l’approvisionnement du gouvernement britannique. Walter Lawrence était en charge d’examiner des moyens de réduction de la bande passante pour améliorer la sécurité de l’encryption des messages militaires. Un deuxième objectif était de rendre la transmission des communications téléphoniques plus efficace et plus économique sur les grandes distances, en particulier  sur les nouveaux câbles transatlantiques.

Pour ce faire, il s’est basé sur l’invention du vocodeur de Homer Dudley et il se focalisait sur la partie VODER. Il publiait en 1953 un article The Synthesis of Speech from Signals which have a low Information Rate dans lequel il proposait six paramètres pour transmettre et restituer la parole : les trois fréquences des résonances dominantes (formants), l’amplitude et la fréquence de l’excitation du larynx et l’intensité de l’excitation fricative.

Walter Lawrence appelait son synthétiseur basé sur ces principes Parametric Artificial Talker, abrégé en P.A.T. Aux fins de parfaire sa première construction réalisée en 1952 au SRDE qui n’exploita que quatre paramètres, il contacta l’université d’Edimbourg qui avait une bonne renommée dans le domaine des sciences linguistiques. Un synthétiseur qui utilisait les six paramètres décrits était opérationnel en 1956 dans les laboratoires de l’université. L’entrée des paramètres se faisait par des plaques en verre sur lesquelles on dessinait le flux des six paramètres qui étaient scannées par un faisceau lumineux.

Plaques en verre avec des paramètres pour le synthétiseur P.A.T. pour dire les phrases “What have you done with it?” et “What sound comes next?” (National Museums Scotland)

L’installation est conservée aujourd’hui dans le musée national de l’Ecosse.

La même année (1956), Walter Lawrence et Gunnar Fant ont présenté leurs projets respectifs à une conférence au MIT à Cambridge. Le sommet de la présentation a été une conversation en temps réel entre les deux synthétiseurs P.A.T. et OVE.

Le P.A.T. a évolué en une version avec huit paramètres au début des années 1960, notamment grâce à l’apport de Frances Ingemann qui assistait le constructeur principal de la machine, James Tony Anthony, à la parfaire. Frances Ingemann a publié en 1960 une contribution Eight-Parameter Speech Synthesis dans le journal de la société acoustique américaine.

James Tony Anthony et Frances Ingemann avec le P.A.T. en 1958 (University of Kansas)

Le synthétiseur P.A.T. a connu une certaine notoriété auprès du grand public suite à la diffusion d’un film afférent à la télévision. Eye en Research était une série de télévision produite par la BBC au sujet de la recherche scientifique dans les années 1957 à 1962. La transmission se faisait en direct à partir des laboratoires de recherche avec une caméra mobile. Un journaliste de la BBC présentait et commentait le sujet. Le 28 octobre 1958 le sujet portait sur les six paramètres du synthétiseur P.A.T., développé dans les laboratoires de l’université d’Édimbourg.

Images extraites du film (de gauche à droite, de haut en bas) : Baxter, Strevens, Anthony, Lawrence, Abercrombie, Lagefoged, mesure de la force de la voix avec un ballon introduit dans le larynx, mesure des vibrations de la voix au cou, visualisation des cordes vocales avec un miroir introduit dans la bouche, coloration de la langue avec de la poudre, observation des taches colorées dans la bouche causées par les  mouvements de la langue, mesure des fréquences de la voix avec un oscilloscope, démonstration du P.A.T. par Strevens et Anthony, présentation d’un spectrogramme, schéma du P.A.T., carte postale à envoyer par les spectateurs à BBC pour répondre aux questions de Walter Lawrence.

L’introduction est faite par le journaliste Raymond Baxter dans le studio à Londres. Le synthéthiseur P.A.T. est présenté par Peter Strevens et James Tony Anthony du départment phonétique de l’université. Walter Lawrence explique pourquoi il s’est adressé à l’université d’Edimbourg dans le cadre de ses travaux d’optimisation de la transmission de la parole sur les câbles téléphoniques transatlantiques. Le directeur du département David Abercrombie relève l’intérêt de combiner la recherche fondamentale effectuée à l’université avec la recherche appliquée pratiquée par Walter Lawrence. Le linguiste Peter Ladefoged, ensemble avec son assistante Lindsay Criper, présente de manière brillante comment mesurer et évaluer dans le  palais vocal humain les six paramètres requis pour manipuler le synthétiseur P.A.T. A la fin du film, Walter Lawrence demande aux spectateurs d’écouter quelques mots synthétisés par la machine et de les noter sur une carte postale à adresser à la BBC afin d’examiner l’intelligibilité de la voix artificiel.

Cette vidéo montre d’une façon très pertinente le fonctionnement de la synthèse vocale.

Après sa retraite au SRDE en 1965, Walter Lawrence a rejoint l’université d’Édimbourg comme maître de conférences. Il est décédé en 1984.

6.2.8. John N. Holmes ( – 1999)

John N. Holmes est un ingénieur en génie électrique britannique qui a obtenu son diplôme en 1953 à Londres. En 1956 il a rejoint la Joint Speech Research Unit (JSRU) qui a été formée la même année par la fusion de plusieurs agences gouvernementales en charge de la recherche dans le domaine vocal. L’intérêt de la JSRU se focalisait sur les télécommunications, aussi bien pour des applications militaires que civiles. La JSRU était affiliée administrativement au Post Office qui était responsable à l’époque pour la téléphonie.

L’analyse de la parole était l’activité principale de la JSRU. La synthèse vocale était un outil  important à ces fins. John Holmes visitait en 1960 le KTH à Stockholm pour se familiariser avec le synthétiseur OVE II de Gunnar Fant. Après son retour à Londres en 1961 il a construit son propre synthétiseur désigné dans la suite comme JSRU formant synthesizer. Au lieu de la cascade de résonateurs connectés en série appliquée pour OVE, il utilisait un arrangement parallèle qui fournissait une meilleure qualité de la voix synthétique. Avec un jeu de paramètres optimisés manuellement à partir de valeurs déduites de la voix naturelle, John Holmes était capable de reproduire des phrases pour lesquelles des interlocuteurs ne pouvaient plus faire la distinction entre la parole naturelle originale et la parole synthétique.Il appelait ce principe la copie-synthèse.

Un schéma du synthétiseur de John Holmes est présenté dans la figure qui suit :

Schéma du synthétiseur parallèle de formants de John Holmes (semanticscholar.org)

En 1970 John Holmes est devenu directeur de la JSRU. À l’occasion de la conférence internationale sur la communication vocale qui a eu lieu en avril 1972 à Boston, il a présenté les conclusions de ses travaux. Il était d’avis qu’avec la technologie actuelle il suffisait d’avoir les bons paramètres d’entrée pour produire de la parole synthétique qu’on ne peut plus distinguer de la parole naturelle. Pour le prouver il faisait des démonstrations lors de la conférence. Avec des paramètres configurés manuellement (peintes à la main) les phrases prononcées étaient très proches de la parole naturelle, mais avec des paramètres extraits à partir des enregistrements de la parole naturelle la situation était une autre.

Invitation à la conférence internationale sur la communication vocale en 1972 à Boston

À partir du début des années 1970 les scientifiques concentraient leurs recherches sur la production automatique des paramètres de contrôle des synthétiseurs vocaux à formants. On commençait à générer les paramètres à partir de textes et la linguistique prenait un rôle de plus en plus important. En outre le but de la synthèse vocale changeait. Au lieu d’être un outil d’analyse de la voix humaine pour comprendre comment fonctionne l’appareil phonatoire humain, le nouvel objectif était de produire des interfaces pour faciliter la communication avec les ordinateurs qui faisaient leur entrée à grands pas dans les entreprises et institutions.

En 1977 John Holmes publiait l’article Extension of the JSRU synthesis by rule system, en 1984 l’article Use of flexible voice output techniques for machine-man communication. Après son départ de la JSRU en 1985 John Holmes travaillait comme consultant indépendant et il continuait à publier des articles et livres au sujet de la synthèse et reconnaissance vocale. Il est décédé en 1999. Sa dernière contribution porte le nom de Robust Measurement of Fundamental Frequency and Degree of Voicing.

6.2.9 Forrest S. Mozer (1929 – )

Forrest Mozer est un physicien expérimental, inventeur et entrepreneur américain, reconnu pour ses travaux novateurs sur les mesures de champ électrique dans un plasma spatial. Il est en outre le développeur de circuits électroniques pour la synthèse et la reconnaissance de la parole.

Auteur de plus de 300 publications et détenteurs de 17 brevets, il a reçu de nombreuses reconnaissances pour ses travaux scientifiques. Né en 1929 à Lincoln au Nebraska, il a travaillé comme chercheur nucléaire dans différentes institutions après ses études et son doctorat. En 1970 il a été nommé professeur en physique à l’université de Californie à Berkeley.

Parmi ses étudiants se trouvait un aveugle qui demandait son assistance, ce qui incitait Forrest Mozer à s’intéresser pour la synthèse de la parole. Il a alors inventé le codage de la parole connu sous le nom de Mozer Compression pour comprimer la voix enregistrée par microphone de façon à pouvoir la reproduire moyennant les microprocesseurs à 8 bits, disponibles en mi-1970. Cette technique était un précurseur de l’ADPCM.

Le brevet américain afférent (US4214125A) a été introduit en 1974 et modifié plusieurs fois. Le brevet a été licencié d’abord à Telesensoriy Systems Inc pour l’utilisation dans le calculateur TSI Speech+, destiné aux personnes aveugles. Le circuit intégré S14001A, développé en 1975 par Silicon Systems Inc. pour ce calculateur est considéré comme le premier circuit intégré de synthèse vocale. 

Dans la suite le brevet a été licencié à l’entreprise National Semiconductor qui a créé le circuit intégré DigiTalker MM54104 qui a été utilisé dans différents ordinateurs personnels, des jeux d’arcade et des interfaces de synthèse de la parole.

En 1984, Forrest Mozer a co-fondu l’entreprise Electronic Speech System pour commercialiser son système de synthèse de la parole breveté. Dix ans plus tard, il a fondé, ensemble avec son fils Todd Mozer, l’entreprise Sensory Circuits Inc., qui est spécialisée dans la reconnaissance de la parole.

Dans un entretien vidéo sur Skype avec le fondateur du magazine Scene World, Joerg “Navcom” Droge, Forrest Mozer raconte pendant plus d’une heure l’historique de ses travaux sur la synthèse de la parole.

6.2.10 Richard Thomas Gagnon (1939 – 2017)

Richard Thomas Gagnon était un ingénieur électronique qui a travaillé pour l’entreprise Federal Screw Works. Cette entreprise a été fondée en 1917 comme fournisseur de pièces métalliques pour l’industrie automobile. Depuis sa jeunesse Richard Gagnon était fasciné par les sciences et les technologies audio.

Il s’est intéressé tôt à la synthèse de la parole parce qu’il avait des problèmes avec la vue et il craignait de devenir aveugle.

Pendant son temps libre, il développait à partir de 1970 un appareil de synthèse vocale dans son laboratoire, situé au sous-sol de sa maison à Michigan. Il s’est basé sur sa propre voix pour définir les phonèmes. Il a réalisé plusieurs versions comme prototype et comme modèle de démonstration sous les noms VS1, VS2 et VS3. Il s’agissait de synthétiseurs à formants avec architecture parallèle.

Il avait soumis une demande de brevet auprès des autorités compétentes en 1971 pour son invention qui a été approuvée en 1974, après quelques modifications, sous le numéro US 3.836.717.

Richard Gagnon licenciait le brevet à son patron qui créa la division Vocal Interface au sein de l’entreprise Federal Screw Works pour fabriquer la version VS4 du synthétiseur au nom de VOTRAX. Les circuits électroniques fabriqués étaient encapsulés par de la résine pour éviter une rétro-ingénierie du produit. Une centaine d’équipements a été vendue. La division a été renommée dans la suite en Votrax Division.

D’autres versions ont été réalisées, dont les modèles VS6.x qui ont été vendues à plusieurs milliers d’exemplaires jusqu’à la fin des années 1970. Les versions supportaient entre 32 et 128 phonèmes.

En 1980, la fabrication d’un circuit intégré SC-01 a été commandée auprès de la société Silicon Systems Inc. pour le synthétiseur vocal, suivi du circuit SC-02 en 1983. Ces circuits ont été utilisés par des producteurs tiers pour la fabrication de terminaux parlants et de consoles arcades. A côté de l’anglais, quelques autres langues ont été supportées. À partir de 1984 le synthétiseur Votrax a été commercialisé comme carte PC sous la désignation Votalker pour les ordinateurs IBM PC, Appel II et Commodore 64. L’œuvre de Richard Gagnon est considéré comme une One Man Show. C’est le dernier inventeur dans le domaine de la synthèse vocale qui a agi seul et sous sa propre responsabilité. Il détenait 18 brevets et il était également l’auteur de quelques publications scientifiques.

En 1994, Richard Gagnon a subi un accident vasculaire cérébral et il ne pouvait plus communiquer avec ses proches, ce qui explique que ses contributions à la synthèse de la parole étaient longtemps ignorées par la communauté scientifique et par le public.

Grâce au témoignage de la fille de Richard Gagnon, Sheila Janis Gagnon, qui a établi en 2013 l’inventaire des documents et équipements qui se trouvaient encore dans le laboratoire au sous-sol de la maison familiale, pour les remettre au musée de l’institution Smithsonian, il a été possible de donner le crédit mérité au développeur ingénieux du Votrax.

6.2.11. Speak & Spell (1976)

En juin 1978 Texas Instruments (TI) présentait à la CES un équipement, appelé Speak & Spell, destiné aux enfants pour apprendre l’orthographie. Ce jouet prononçait environ 200 mots qu’il fallait épeler correctement moyennant le clavier intégré.

Capucine avec la Dictée Magique (Speak & Spell de TI) en 2017

Speak & Spell marque la transition entre la synthèse vocale électronique et informatique et constituait une étape importante (milestone) dans l’évolution des circuits intégrés. Le premier circuit intégré a été développé par Jack Kilby auprès de Texas Instruments en 1958. Il a reçu le prix Nobel de physique en 2000 pour son invention.

Au milieu des années 1970, les ingénieurs du département Produits de Consommation de Texas Instruments cherchaient une idée pour créer un équipement grand public pour mettre en valeur les mémoires à bulles, une technologie de stockage électromagnétique miniaturisée, sans parts mouvantes, qui était en vogue à l’époque, mais qui a été abandonnée à la fin des années 1980. L’ingénieur Paul Breedlove de TI proposait le développement d’un jouet didactique utilisant la synthèse de la parole, dans la tradition de la calculette Little Professor qui a connu un grand succès, suite à son introduction par TI en 1976.

Calculette “Little Professor” de Texas Instruments

L’idée a été approuvée et une équipe projet de quatre ingénieurs a été constituée au sein de TI sous la direction de Paul Breedlove; les autres membres étaient Gene Frantz, Richard Wiggins et Larry Branntingham. 

Richard Wiggings était en charge de concevoir le système de synthèse de la parole, Larry Branntingham était responsable pour le développement des circuits intégrés et Gene Frantz gérait la collaboration avec d’autres développeurs de TI qui contribuaient au projet. Il s’est avéré rapidement que la digitalisation et le stockage de mots parlés dans des mémoires bulles ou dans des ROM’s (Read Only Memories) était trop couteux et qu’il fallait recourir aux méthodes de synthèse existantes à l’époque. La solution retenue était basée sur le codage prédictif linéaire (LPC) qui permet de comprimer sensiblement la voix,  de stocker pour chaque mot à prononcer un nombre très limité de données et de reproduire la parole enregistrée moyennant un circuit intégré de traitement numérique du signal (DSP).

Fondamentalement il s’agissait toujours d’une simulation du fonctionnement de l’appareil phonatoire humain, sauf que les dispositifs pour synthétiser des sons à partir de paramètres spécifiques étaient mécaniques il y a 250 ans, puis électriques analogiques il y a 100 ans, dans la suite électroniques analogiques il y a 50 ans, et donc pour la première fois numériques dans le cas de Speak & Spell. Bien sûr le nombre et la qualité des paramètres de commande pour produire un son a augmenté au fil des années, mais le principe de base restait le même.

Le circuit intégré LPC développé par TI pour réaliser la synthèse vocale portait la désignation TMC0281, renommé plus tard en TMS5100. L’architecture a fait l’objet de plusieurs brevets et le circuit a été inclus dans le temple de la renommée (hall of fame) des circuits intégrés de l’IEEE en 2017, bien que ce n’était pas le premier circuit intégré de synthèse vocale. A côté de ce circuit le jouet Speak & Spell comportait un microprocesseur TMS1000 pour gérer le clavier, l’affichage, le processus LPC et l’interface avec l’usager.  Les paramètres des mots à prononcer étaient stockés dans deux ROM’s à 128 Kbits. C’était la capacité de ROM la plus élevée disponible à l’époque. Pour enregistrer ces mots on faisait recours à un modérateur radio, Hank Carr.

Speak & Spell comportait également un dispositif pour connecter des cartouches de jeu échangeables. Son prix de lancement était de 50 $ US. Le jouet a été commercialisé avec grand succès pendant plus de 10 ans au monde entier, en plusieurs variantes (Speak & Read, Speak & Math), avec des voix pour différents langages et avec de nombreuses cartouches de jeux. En France, le jouet a été vendu sous le nom de Dictée magique. En 2009 Speak & Spell a été nommé comme milestone IEEE.

En 1982, l’équipement Speak & Spell a été utilisé par E.T. dans le film culte de Steven Spielberg pour téléphoner avec les habitants de sa planète. C’est une des raisons pourquoi le jouet lui-même est devenu un objet culte qui bénéficie encore aujourd’hui d’une large communauté de fans qui maintiennent des émulateurs du synthétiseur, des cartouches de jeu et des instructions comment pirater le système pour l’utiliser à d’autres fins.

Le circuit intégré TMC0281 et ses successeurs ont également été vendus séparément par Texas Instruments sous la désignation TMS5100, etc. Ils ont été implémentés dans des ordinateurs  personnels, des consoles de jeu et des voitures. La technique LPC constituait la base pour le codage et la compression de la voix dans les terminaux GSM au début des années 1990 et elle est encore utilisée aujourd’hui.

Team de développement du Speak & Spell : Gene Frantz, Richard Wiggins, Paul Breedlove, and Larry Branntingham

6.3. Synthétiseurs vocaux informatiques

Le lecteur attentif a certainement compris que les inventeurs des synthétiseurs vocaux mécaniques et électriques ont tous essayé de simuler le fonctionnement de l’appareil phonatoire humain. Bien qu’il y a eu des progrès dans la qualité de la voix synthétique au fil du temps, le principe de base est resté le même. Il n’est donc pas étonnant que le portage de la synthèse vocale sur les premiers ordinateurs est resté au début dans la même lignée. Les oscillateurs et résonateurs sont devenus numériques et ont été réalisés moyennant des programmes informatiques pour générer les formants des voyelles et les sons des consonnes. Au lieu d’une cascade sérielle ou d’un arrangement parallèle on distinguait la synthèse sonore additive, soustractive ou FM. Comme la génération des sons est commandée par les valeurs de plusieurs paramètres on parle de synthèse par règles.

L’évolution des ordinateurs avec des processeurs de plus en plus puissants et des capacités de stockage de plus en plus grandes a permis de remplacer la simulation classique de l’appareil phonatoire humain par des procédés plus modernes. Une première méthode consistait à enregistrer des bribes de parole (phonèmes) et de les enchaîner. Les phonèmes sont les éléments minimaux de la parole. La langue luxembourgeoise comporte par exemple 55 phonèmes, en tenant compte des mots étrangers. Mais comme la parole est un processus temporel continu, les phonèmes sont trop courts et inappropriés pour obtenir une synthèse vocale par concaténation de qualité acceptable. La prochaine étape consistait à utiliser des diphones qui sont définis comme la portion du signal de parole comprise entre les noyaux stables de deux phonèmes consécutifs. Le nombre de diphones est théoriquement le carré du nombre de phonèmes, c’est-à-dire 3.025 pour la langue luxembourgeoise. Mais comme certaines transitions n’ont pas lieu en pratique, on obtient environ 2.000 diphones à considérer. Si on utilise des unités plus longues que les diphones, on parle de synthèse par sélection d’unités. Ces unités sont extraites automatiquement par des programmes utilisant des méthodes statistiques, à partir d’enregistrements vocaux avec annotation des textes correspondants, pour les sauvegarder dans une base de données indexée. Le nombre d’unités peut dépasser les 15.000 pour une voix.

Schéma simplifié de synthèse de la parole par sélection d’unités

La voix artificielle résultante est proche d’une voix humaine. La plupart des systèmes de synthèse vocale commerciaux est basée sur la synthèse de concaténation par sélection d’unités. Le désavantage de cette méthode est que le contrôle sur la voix est presque nul;  la synthèse est peu flexible : elle restitue bien ce qui est dans la base mais ne permet guère d’aller au-delà.

Une méthode plus récente est appelée synthèse paramétrique statistique (HMM : Hidden Markov Model). Elle repose de nouveau sur le modèle source-filtre et le vocodeur qu’on a rencontré dans le passé pour simuler le fonctionnement de l’appareil phonatoire humain. Mais contrairement à la synthèse par règles ou les paramètres sont définis explicitement par un expert de façon déterministe, ici les paramètres sont appris grâce à des modèles statistiques, sur un gros corpus de parole, sous forme de chaînes de Markov, et générés de façon probabiliste.

Le recours à des réseaux neuronaux permet de remplacer l’apprentissage par des modèles statistiques du type HMM par un apprentissage profond issu de l’intelligence artificielle. Ce type de synthèse vocale est actuellement à la une de tous les laboratoires de recherche actifs dans ce domaine.

Jusqu’au début des années 1990 il était possible de désigner des particuliers ayant le mérite d’une nouvelle invention dans le domaine de la synthèse vocale. Ensuite c’est devenu de plus en plus difficile. C’est pour cette raison que je vais présenter dans les derniers chapitres concernant la synthèse vocale informatique des centres de compétences afférents, sans oublier toutefois de mentionner les chercheurs individuels qui jouent un rôle important au sein de ces institutions.

6.3.1. Dennis H. Klatt (1938 – 1988)

Dennis H. Klatt était un chercheur américain spécialisé dans les sciences de l’audition et de la parole. Il est né en 1938 à Milwaukee. Après ses études universitaires accomplies en 1961 et son doctorat obtenu en 1964, il a joint le MIT comme assistant-professeur une année plus tard. En 1978 il est devenu chercheur principal au MIT où il est resté jusqu’à sa mort en 1988. En 1979 il a publié dans le journal de la société américaine d’acoustique un article intitulé Software for a cascade/parallel formant synthesizer.

Dennis Klatt est considéré comme le pionnier de la synthèse de la parole informatisée. Il était le premier à développer un système de conversion d’un texte écrit en parole sans intervention d’un spécialiste. Il appelait son programme KlatTalk et le présentait à la communauté scientifique en mai 1982 lors de la conférence internationale du IEEE concernant l’acoustique, la parole et le traitement des signaux. Sa contribution portait le nom de The klattalk text-to-speech conversion system. Le mot KlatTalk est un palindrome, c’est l’inversion de l’ordre des lettres du nom Klatt.

Dennis Klatt avec son synthétiseur en 1987 (RLE MIT)

Bien que le système utilisait une méthode de synthèse vocale basée sur la génération de formants pour les voyelles et sur des règles de conversion spécifiques, Dennis Klatt avait utilisé sa propre voix pour extraire les paramètres de synthèse. La voix synthétique résultante ressemblait donc à la voix réelle de Dennis Klatt.

En 1984, la société américaine Digital Equipment Corporation (DEC) démarrait la commercialisation d’une unité de synthèse de la parole autonome qu’on pouvait raccorder par une connexion asynchrone RS-232 à un ordinateur. Pour cet équipement, appelé DECTalk, DEC avait négocié une licence exclusive pour l’utilisation du système Klattalk.

Pour la conversion de textes en phonèmes un jeu de règles avait été développé par Sharon (Sheri) Hunnicutt à l’Institut Royal des Technologies Suédois (KHT). La théorie adjacente a été présentée en 1985 dans le rapport interne périodique du KHT avec le titre Lexical prediction for a text-to-speech system. Pour l’intégration du jeu de 625 règles pour la langue anglaise DEC n’avait reçu qu’une licence non-exclusive.

L’équipement DECTalk disposait également de connecteurs pour le raccordement au réseau téléphonique, ce qui permettait de créer les premiers répondeurs téléphoniques assistés par ordinateur. DECTalk a été vendu pendant plus de dix ans, sous différentes formes de hardware et de software et en plusieurs versions. Le premier modèle DCT01 coutait environ 4.000 $ US lors du lancement. Un des premiers gros usagers était le service national américain de météorologie (wheather infos).

DECTalk comme équipement autonome et comme carte PC

Au début le système comprenait plusieurs voix américaines intégrées qui portaient des noms fantaisistes comme Beautiful Betty, Kit the Kid, Uppity Ursula, Doctor Dennis et Whispering Wendy. La voix la plus populaire était la voix par défaut, appelée Perfect Paul, du fait qu’elle a été utilisée par le fameux scientifique britannique Stephen Hawking qui, depuis 1985, était incapable de parler à cause d’une trachéotomie, pratiquée suite à l’aggravation de sa maladie neurologique.

Dennis Klatt s’était très tôt engagé à faire profiter les personnes handicapées de l’utilisation de son système Klattalk, respectivement de DECTalk, pour communiquer avec leur environnement. Les personnes aveugles s’en servaient pour lire des livres, et plus tard pour surfer sur Internet. Des personnes incapables de parler, comme Stephen Hawkins, l’utilisaient pour s’entretenir avec leurs proches.

Par l’ironie du sort, Dennis Klatt, qui a donné une voix aux ordinateurs, a perdu sa propre voix au milieu des années 1980, suite à un cancer de la gorge. Il a rapidement perdu la lutte contre la maladie et il est décédé en décembre 1988.

Dennis Klatt a laissé un héritage précieux aux historiens par sa publication Review of text-too-speech conversion for English en 1987 qui comprend une archive de 36 enregistrements audio de synthétiseurs vocaux, segmentée dans 4 sections (A, B, C et D) pour la période de 1939 à 1985.

En juillet 2013, BBC Radio diffusait un entretien entre Laura Fine, la fille de Dennis Klatt, et Lucy Hawking, la fille de Stephen Hawking, au sujet de la synthèse de la parole en général et en particulier sur l’utilisation de la voix du père de l’une par le père de l’autre. Cette émission faisait partie de la documentation Klatt’s Last Tapes de BBC Radio 4.

Au début de l’année 2000 la licence DECTalk a été vendue à Force Computers Inc, ensuite revendue à Fonix Speech qui est devenue SpeechFX. À l’heure actuelle la dernière version du kit de développement (SDK) de DECTalk est toujours commercialisée par la société SpeechFX. Il existe également une large communauté de fans de la technologie DECTalk, un exemple est le projet 80speak de LixieLabs.

6.3.2. Jonathan Duddington (1995)

Jonathan Duddington est le développeur du logiciel de synthèse de la parole Speak. Il s’agissait d’une suite d’outils pour les ordinateurs ACORN avec le système opératoire RISC. À côté du module TTS (text-to-speech) il y avait un éditeur de parole, un éditeur de phonèmes, un module Talk as you Type et un outil de vérification des règles phonétiques. Les débuts du développement de ce logiciel remontent à 1995.

Sur la Internet Wayback Machine on trouve l’ancienne page web de Jonathan Duddington (version du 14 juin 1997) où il annonce la disponibilité d’une nouvelle version pour les ordinateurs RiscOS 3.0 au prix de 19,50 £.  Une version 2 améliorée a été annoncée en 1999.

Page web Speak de Jonathan Duddington sur l’Internet Wayback Machine

A l’époque Jonathan Duddington a présenté son logiciel aux membres de différents clubs d’utilisateurs d’ordinateurs ACORN dans la région du Coventry au Royaume-Uni, par exemple au Derbyshire Acorn RISC Club (DARC), au ARM Club, au Manchester Acorn User Group et à la RISC OS 99 Show.

Speak utilisait la méthode de synthèse par formants. L’application comprenait plusieurs voix masculines et féminines, mais seulement pour la langue anglaise. Vers 2006 Jonathan Duddington portait Speak sur Linux et offrait le code en source libre sur la plateforme Sourceforge. La première version disponible était speak-1.5 publiée le 17.2.2006. À côté de la langue anglaise cette version supportait l’Esperanto et l’allemand. Plusieurs nouvelles versions ont été ajoutées au fil de l’année. En août 2006 l’application a été renommée eSpeak et un site web dédié afférent a été mis en ligne. eSpeak supportait des langues supplémentaires, l’africain, le grec, l’espagnol, l’italien et le polonais.

À partir de la version 1.16 les fichiers avaient également été renommées espeak. Des nouvelles versions ont été publiées à un rythme effréné jusqu’à la version espeak-1.48.4 en mars 2014. Cette version supportait 45 langues ainsi que les voix Mbrola.

eSpeak jouissait d’une très grande communauté et Jonathan Duddington était très engagé à fournir son aide aux utilisateurs et développeurs inscrits sur les listes de messages du projet. Pendant les quelques années il avait édité plusieurs centaines de réponses et d’annonces. Son dernier message date du 16 avril 2015.

Suite à l’allongement du silence de Jonathan Duddington, la communauté eSpeak commençait à s’inquiéter. Malgré plusieurs tentatives, personne n’a réussi à savoir ce qui s’était passé avec le développeur et on ne trouvait plus trace d’aucune biographie sur lui sur le net.

Après de longs débats au sein de la communauté eSpeak vers la fin de l’année 2015, la candidature de Reece Dunn comme nouveau coordinateur du projet eSpeak, rebaptisé eSpeakNG (nouvelle génération), a été approuvée. Reece Dunn était un contributeur de longue date au projet eSpeak et il l’avait porté sur Android. Son répositoire sur la plateforme Github, créé en mars 2013 pour le développement d’eSpeak pour Android, a été utilisé dans une première phase pour héberger le projet eSpeakNG. Un autre développeur, Alon Zakai alias kripken, a converti eSpeak en Javascript moyennant l’outil Emscripten.

Page de dépôt GitHub du projet espeak-ng

Récemment le projet eSpeakNG a été transféré sur un propre repositoire de la communauté eSpeakNG sur Github. La version la plus récente est 1.49.2, publiée en septembre 2017. Après cette date, plus de 850 modifications ont été apportées jusqu’à ce jour dans la version de développement. L’application supporte actuellement 106 langues et accents. Je suis en train de finaliser une version pour le luxembourgeois que je me propose d’ajouter comme 107e langue.

Il reste à signaler que la version eSpeak pour les anciens ordinateurs RISC est maintenue par Martin Avison.

6.3.3. University of Edinburgh ( > 1984)

L’université d’Edimbourg a été fondée en 1583. Nous avons vu dans le présent historique qu’elle a une longue tradition dans le domaine de la linguistique, notamment suite à la création du département phonétique en 1948 par David Abercrombie. Elle range actuellement dans les premiers rangs au niveau mondial de notoriété QS World University Rankings by Subject 2018 concernant la linguistique.

En 1984 le centre interdisciplinaire CSTR (Center for Speech Technology Research), combinant la linguistique et l’informatique, a été créé à l’université. Depuis 2011 le CSTR est dirigé par le professeur Simon King.

Page web de présentation de la librairie des outils Edinburgh Speech du CSTR

Les projets phares du CSTR sont la librairie des outils Edinbourg Speech ainsi que  Festival et Merlin. Le CSTR contribue en outre aux projets Kaldi et HTS. Les outils et logiciels de tous ces projets sont disponibles gratuitement en source libre (open source).

6.3.4. Carnegy Mellon University ( > 1986 )

L’université Carnegy Mellon à Pittsburgh porte le nom de Andrew Carnegie qui est né en Ecosse en 1835 et qui a immigré en 1848 avec ses parents aux Etats-Unis. Il est devenu un riche industriel et a fondé en 1900 une école technique, Carnegie Tech. En 1967, Carnegie Tech a fusionné avec l’institution Mellon pour devenir la Carnegy Mellon University (CMU). En 1986 la School of Computer Science a été créée au CMU, elle figure actuellement au 3e rang des universités dans ce domaine, derrière le MIT et la Stanford University. En 1996 l’institut des technologies du langage (LTI : Language Technologies Institute) a été créé, basé sur l’ancien centre de traduction machinelle, et a réussi rapidement à se forger un nom auprès de la communauté scientifique.

Un des pionniers au LTI est le professeur Alan W. Black. Né en 1937 en Écosse, il est le père du système de synthèse Festival qu’il a développé de 1996 à 1999 à l’université d’Édimbourg. Il a joint le LTI en 1999 et a continué à faire évoluer Festival, notamment en créant le site web festvox.org qui fournit tous les documents, outils et logiciels pour faciliter l’utilisation de Festival. En 2000 Alan Black a créé, ensemble avec d’autres spécialistes du LTI, l’entreprise privée Cepstral à Pittsbourgh qui fournit des systèmes de synthèse vocale commerciales. Dans la suite il a développé Flite, un synthétiseur vocal dérivé de Festival, optimisé pour être intégré dans des équipements à ressources limitées comme les premiers téléphones mobiles.

Professor Alan W. Black, Language Technologies Institute, CMU (Youtube)

Alan Black a contribué au développement d’un autre projet phare de l’université Carnegy Mellon : CMU-Sphinx, un système de reconnaissance de la parole dont le code est également à source libre. Ensemble avec Keiichi Tokuda de l’Institut des Technologies Nagoya au Japon, Alan Black a lancé en 2005 un concours annuel international, sous le nom de Blizzard Challenge, pour évaluer la qualité des voix synthétiques développées par les participants à partir d’une même base de données audio et texte, mise à disposition par les organisateurs.

Aujourd’hui âgé de 82 ans, Alan Black a présenté en décembre 2018 son projet le plus récent : la constitution d’une base de données contenant les textes et les enregistrements vocaux de la bible pour des centaines de langues, permettant la création de voix synthétiques pour les langues rares. Malheureusement le luxembourgeois n’est pas inclus.

Le LTI vient de publier un catalogue avec toutes les ressources disponibles en relation avec les projets réalisés par les membres et étudiants de l’institut.

Page web de présentation du catalogue des ressources vocales du LTI

6.3.5. Université de Mons ( > 1995 )

L’université de Mons (UMons) en Belgique a été établie en 2009 par la fusion de l’université de Mons-Hainaut et de la Faculté polytechnique de Mons. Cette dernière était la première école d’ingénieurs créée en Belgique, en 1836. Un des centres de recherche de la faculté était le Service de Théorie des Circuits et de Traitement du Signal (TCTS Lab), spécialisé dans les filtres digitaux, la synthèse et reconnaissance de la parole, le codage de la parole et la reconnaissance d’images.

Le responsable du TCTS était Thierry Dutoit, aujourd’hui professeur ordinaire à l’université de Mons et président du nouvel institut Numediart à l’université. En 1996 il a passé 15 mois aux laboratoires Bell aux Etats-Unis. Il est l’initiateur des ateliers européens eNTERFACE qui regroupent chaque année plus de 70 chercheurs pendant un mois complet autour de la thématique des interfaces multimodales.

Dans la synthèse vocale, sa majeure contribution est la coordination du projet MBROLA à partir de 1995, un système de synthèse vocale à base de diphones pour plusieurs langues européennes.  La première version a été développée par Thierry Dutoit en 1996 et mise à disposition gratuitement pour des applications non-commerciales et non-militaires. Ce n’est que récemment, en octobre 218, que le code afférent a été publié par Numediart en source libre sur le réseau de développement Github. Plus que 70 voix synthétiques pour 40 différentes langues du monde entier ont été  développés pour MROLA et peuvent également être téléchargées à aprtir de Github. Le luxembourgeois ne figure pas parmi les voix disponibles.

The MBROLA project, Thierry Dutoit et autres,  4e conférence internationale au sujet du traitement des langues parlées, Philadelphia, 3 – 6 octobre 1996  (ISCA)

La ville de Mons a été longtemps un centre renommé européen de la synthèse vocale. En 1996, Thierry Dutoit a été un des fondateurs de la société Babel Technologies comme spin-off de la Faculté Polytechnique. Cette société a fusionné en 2003 avec les sociétés ELAN (FR) et INFOVOX (SWE) pour former le groupe ACAPELA dont le siège se trouve toujours à Mons.

Page web d’accueil du groupe Acapela

À l’époque il existait une autre entreprise spécialisée dans le traitement de la parole en Belgique, à savoir Lernout & Hauspie (L&H). Fondée en 1987 par Jo Lernout et Paul Hauspie, elle était domiciliée à Ypres. Après un début difficile, L&H devenait un fleuron industriel en Flandre et elle faisait l’acquisition de plusieurs compétiteurs comme Berkeley Speech Technologies, Dictaphone et Dragon Systems. À cause d’une fraude des dirigeants, l’entreprise a fait faillite en 2001 et toutes les technologies ont été achetées par Nuance Communications. Les procès afférents ne sont pas encore terminés.

Cour d’appel de Gand en mars 2017 pour traiter le volet civil de l’affaire Lernout & Hauspie. Plus de 15.000 parties civiles demandent un dédommagement.

On trouve encore aujourd’hui les voix synthétiques L&H Michelle et à L&H Michel dans des anciens logiciels bureautiques.

6.3.6. Nagoya Institute of Technology ( > 1995 )

L’université de technologie de Nagoya est un établissement japonais d’enseignement supérieur, issue en 1949 de l’unification de plusieurs établissements, dont la composante la plus ancienne date de 1905. Au niveau de la recherche l’université comprend 17 laboratoires, parmi eux celui du traitement de la parole et des langues, dirigé par le professeur Tokuda Keiichi.

Il a été introduit dans le chapitre 6.3.4. du présent historique en sa qualité de co-organisateur des Blizzard Challenges, ensemble avec Alan W. Black. En 1995 il a publié un  article concernant l’application des modèles de Markov Cachés (HMM : Hidden Markov Models) pour la synthèse de la parole.

Page de présentation du Blizzard Challenge co-organisé par Tokuda Keiichi

En 2012 Tokuda Keiichi a été promu professeur honoraire à l’université d’Édimbourg. Deux ans plus tard il reçoit le prix de réussite pour ses travaux sur la synthèse vocale basée sur des modèles statistiques de la part du IEICE (Institute of Electronics, Information and Communication Engineers) au Japon.

Tokuda Keiichi est un des contributeurs principaux aux projets HTS (HMM/DNN-based Speech Synthesis System), HTK (Hidden Markov Model Toolkit) et SPTK (Speech Signal Processing Toolkit).

6.3.7. Université de la Sarre ( > 2000)

Le lecteur averti se rappelle que l’Université de la Sarre a été mentionné dans le chapitre 6.1.2. concernant Wolfgang von Kempelen. Cette université a été fondée en 1948 et elle a une longue tradition dans la linguistique informatique. Aujourd’hui les activités dans ce domaine sont regroupées dans le département des sciences et technologies du langage (LST) qui travaille en étroite collaboration avec le cluster d’excellence Multimodal Computing and Interaction (M2CI). Un groupe de recherche de cette grappe technologique est l’équipe Multimodal Speech Processing, créée en décembre 2012 et dirigée par Ingmar Steiner. Il a accompli une partie de sa thèse de doctorat au CSTR à Édimbourg.

Ingmar Steiner, avec son groupe de recherche, est en charge de la maintenance et de l’évolution du systéme de synthèse de la parole multilingue MaryTTS (MARY Text-to-Speech). Disponible en source libre sur Github, MaryTTS est actuellement un des systèmes de synthèse de la parole les plus universels et performants au niveau mondial. Une démonstration de MaryTTS est disponible sur le web et accessible avec tout navigateur Internet.

Le développement de MaryTTS remonte à 2000. À l’époque c’était l’institut de phonétique de l’Université de la Sarre et le laboratoire des technologies du langage du centre de recherche allemand pour l’intelligence artificielle (DFKI) qui étaient à l’initiative du projet. Marc Schröder et Jürgen Trouvain ont présenté le projet lors du 4e atelier de travail de l’association internationale des communications vocales (ISCA) qui a eu lieu du 29 août au 1er septembre 2001 à Pertshire en Ecosse. Le DFKI continue à supporter le projet.

MaryTTS : Marc Schöder, Jürgen Trouvain, ISCA 2001 (DFKI)

MaryTTS est programmé en Java et supporte la synthèse par sélection d’unités, la synthèse paramétrique statistique (HMM) et l’apprentissage moyennant des réseaux neuronaux. Au début le système ne comprenait  que les voix MBROLA. Dans la suite l’anglais a été ajouté en utilisant une partie du code du projet à source libre FreeTTS, qui lui-même est un portage du projet FLITE de Alan W. Black.

D’autres langues ont été ajoutées et aujourd’hui MaryTTS est le seul système de synthèse de la parole qui supporte le luxembourgeois. Le projet MaryLux a été présenté lors du 5e congrès de l’IGDD (Internationale Gesellschaft für Dialektologie des Deutschen) qui a eu lieu du 10 au 12 septembre 2015 à l’université du Luxembourg. Les auteurs étaient Ingmar Steiner, Jürgen Trouvain, Judith Manzoni et Peter Gilles. Le projet MaryLux a en outre été présenté le 10 novembre 2015 dans un colloque interne à l’université et en avril 2016 sur le portail sciences.lu.

La voix synthétique de MaryLux est celle de Judith Manzoni. Elle a enregistré en 2014 des textes en luxembourgeois et français, d’une durée de trois heures, qui ont été ensuite traités par les différents outils informatiques du système MaryTTS pour créer le modèle de la voix, avec la méthode de sélection d’unités.

Judith Manzoni lors de la présentation de MaryLux en 2015 (portail sciences.lu)

6.3.8. GAFAM ( > 1995 )

GAFAM est l’acronyme de Google, Apple, Facebook, Amazon et Microsoft. J’ai déjà présenté sur mon site web ces cinq géants du web dans une autre contribution au sujet de l’intelligence artificielle en mars 2017. Microsoft est le doyen dans ce groupe.

Ces cinq sociétés utilisent la synthèse vocale pour donner une voix à leurs assistants personnels qui ne savent pas seulement parler, mais également écouter et comprendre la voix de leur maître.

Dès 1995, Microsoft a développé une interface de synthèse et de reconnaissance de la voix appelé SAPI (Speech Application Programming Interface) pour son système d’exploitation Windows 95. Cette interface a évolué vers la version SAPI 5.4 qui reste compatible avec la version Windows 10 actuelle. En 2014 Microsoft a introduit son assistant personnel intelligent CORTONA qui fait partie de Windows 10.

Apple a été le premier à présenter un assistant personnel avec SIRI le 4 octobre 2011. Tout comme Microsoft, Apple offre un cadre de développement (framework) pour la synthèse et la reconnaissance de la parole.

Facebook est le moins avancé dans l’application de la synthèse vocale dans ses produits. Parmi les domaines de recherche de Facebook se trouve le groupe Natural Language Processing & Speech, mais son assistant virtuel M, lancé en août 2015 et intégré dans son service de messagerie Facebook Messenger, a été arrêté le 19 janvier 2018.

L’assistant personnel intelligent ALEXA et l’enceinte y associée ECHO, annoncés par Amazon en novembre 2014, sont probablement les outils vocaux les plus connus par le grand public. Il est moins connu que Amazon propose aux développeurs dans son portefeuille des services cloud AWS des outils très performants en relation avec la parole : Amazon Polly, un service qui transforme le texte en paroles réalistes, Amazon Lex, un service de reconnaissance automatique de la parole (RAP) et de compréhension du langage naturel (CNL), Amazon Translate, un service de traduction automatique neuronale offrant des traductions linguistiques rapides, Alexa Voice Services, un service de synthèse et reconnaissance vocale et Alexa Skills Kit, un service d’intelligence derrière les appareils de la gamme Amazon Echo.

Dispositif Echo pour Amazon Alexa et dispositif Home pour Google Assistant

Google dispose également d’une large infrastructure cloud avec des services vocaux offerts aux développeurs qu’elle a démarré en avril 2008. Parmi les produits d’intelligence artificiel et d’apprentissage machine se trouvent les services suivants : Cloud Text-to-Speech, Cloud Speech-to Text, Cloud Natural Language API et Cloud Translation API.

Lors de la conférence INTERSPEECH 2017 qui a eu lieu du 20 au 24 août à Stockholm, Google a présenté un nouveau système de synthèse vocale appelé TACOTRON. La publication académique afférente porte les noms de 14 auteurs. En décembre 2017 Google a annoncé sur son blog l’évolution du système vers Tacotron 2 qui produit des résultats qui sont très proches d’une prononciation par un humain. La publication afférente a été publiée en février 2018. La technologie de Tacotron 2 repose sur la superposition de deux réseaux neuronaux : un qui divise le texte en séquences, et transforme chacune d’elles en spectrogrammes MEL et un autre qui génère des fichiers sonores (WaveNet).

Architecture Tacotron 2 : le spectre Mel rappelle les spectrogrammes utilisés par Cooper et Lawrence

À l’heure actuelle Tacotron 2 est le système de synthèse vocale le plus performant (et le plus complexe). Le code de Google est propriétaire, mais de nombreux développeurs essayent de créer leurs propres applications à libre source sur base des articles académiques publiés par Google. Une recherche sur le site de développement Github, avec la clé tacotron, fournit en janvier 2019 152 résultats.

Il reste à signaler que l’assistant personnel de Google s’appelle Google Assistant et que la famille des enceintes y connectées est nommée Google Home. Ces outils ont été annoncés par Google en mai 2016 pour concurrencer Amazon Alexa et Echo.

6.3.9. Les autres ( > 1950)

À côté des cinq entreprises GAFAM in convient de mentionner quelques autres géants qui sont actives dans le domaine de la synthèse vocale, à commencer par Baidu, IBM et AT&T.

Baidu, le géant chinois de l’Internet, a ouvert en 2013 un laboratoire de recherche en intelligence artificielle dans la Silicon Valley et s’est lancé dans un travail sur la synthèse de la parole. Parmi les projets afférents figurent ClariNet et DeepVoice 3. L’apprentissage de DeepVoice 3, présenté fin 2017, se faisait moyennant des échantillons vocaux d’une durée totale de 800 heures, enregistrés par 2.400 différentes personnes. Baidu affirme pouvoir cloner maintenant la voix de n’importe quelle personne avec un échantillon de quelques secondes moyennant ce système.

La solution IBM Watson fournit un ensemble de composants et de technologies d’intelligence artificielle avec synthèse vocale pour développer des assistants virtuels qui comprennent le langage naturel et interagissent avec les clients comme le ferait un humain et ceci dans plusieurs langues.

AT&T (American Telephone and Telegraph Company) est issue en 1885 de l’entreprise Bell Telephone Company, fondée par Alexandre Graham Bell en 1877. Elle fut la plus grande entreprise mondiale de télécommunications et profita d’un long monopole, appelé Bell System.

En 1925 AT&T créa l’unité de recherche de développement Bell Labs dont les activités dans le domaine la synthèse la parole ont été mises en évidence dans le présent historique.

En 1982 le système Bell a été démantelé. AT&T a été rachetée par une de ses filiales qui reprit le nom de AT&T Inc.

AT&T commercialisait les produits vocaux développés par les laboratoires Bell. D’une part il s’agissait de la plateforme AT&T Natural Voices, lancée en 2001. Les voix synthétiques afférentes sont utilisées dans de nombreux systèmes de synthèse de la parole. Depuis 2011 la vente de ces voix est cédée à des partenaires comme Wizzard Software.

Courriel reçu de AT&T en mars 2016 pour annoncer la suppression de mon compte de développement sur sa plateforme vocale

D’autre part il s’agissait de la plateforme de reconnaissance et de synthèse de la parole Watson, à ne pas confondre avec la technologie du même nom d’IBM. En 2014 AT&T a vendu cette plateforme à Interactions Corporation et a cessé ses propres activités dans ce domaine.

Quant aux laboratoires Bell, ils sont passés en 1996 à Lucent Technologies, 10 ans plus tard à Alcatel-Lucent et en 2016 à Nokia pour devenir les Nokia Bell Labs.

7. Le mot de la fin

Les recherches que j’ai effectuées pour le présent historique m’ont confirmé que la synthèse de la parole est une technologie, et j’estime même que c’est la seule, qui a fasciné les humains depuis l’antiquité jusqu’à nos jours. Les progrès réalisés étaient graduels. Ce n’est que récemment que l’apprentissage profond a permis de perfectionner la synthèse vocale de telle manière qu’il est aujourd’hui Impossible de faire la distinction entre une voix enregistrée et une voix synthétisée pour une même personne, ce qui va causer pas mal de problèmes dans l’avenir.

Un autre aspect à relever est la nostalgie de la génération 68, dont une partie a eu le privilège de posséder un ordinateur personnel dans la période de fin 1970 à fin 1980. Comme ces ordinateurs disposaient en général d’une interface de synthèse de la parole distinctive, les anciens propriétaires associent cette voix synthétique à la personnalité de leur premier ordinateur. Les musées virtuels d’anciens calculateurs et d’ordinateurs en témoignent parfaitement. Une société canadienne, Plogue, vient de créer des applications multiplateformes qui permettent de recréer la voix de ces équipements et elle a un grand succès avec ces produits.

Cette société a rendu un hommage aux principaux chercheurs de l’époque, actifs dans la synthèse vocale, avec son produit ChipSpeech, qui permet de simuler la voix des anciens synthétiseurs. J’ai assemblé la figure ci-dessous qui montre les caractères définis pour sélectionner les différentes voies disponibles dans cette application.

Caractères ChipSpeech (de gauche à droite et de haut en bas) : Bert Gotrax -> Richard Gagnon; Voder -> Homer Dudley; Dee Klatt -> Dennis Klatt; Otto Mozer -> Forrest Mozer; SAM -> SoftVoice Inc.; Terminal 99 -> Larry Brantingham, Paul S. Breedlove, Richard H. Wiggins, and Gene A. Frantz

Toutefois, à côté des inventeurs célèbres qui ont été présentés dans le présent historique, il y a de nombreux chercheurs qui étaient engagés dans le domaine de la synthèse vocale, mais qui sont tombés dans l’oubli. Pour faire leur connaissance, il suffit de regarder sur la plateforme des brevets Google ou dans la liste des auteurs de publications qui n’ont jamais été citées. Je rends donc également hommage à ces femmes et hommes qui n’ont pas réussi à obtenir la notoriété méritée. Un deuxième constat : je n’ai presque pas trouvé de pionnière dans le domaine de la synthèse vocale. S’il y a eu des femmes qui ont participé à des projets de recherche, leur nom figure toujours en dernière position dans les publications.

Il ne me reste plus qu’à établir la bibliographie des documents qui m’ont servi de source pour le présent historique et dont une partie n’a pas été référencée dans le texte.

8. Bibliographie

8.1. Outils et logiciels

8.2. Vidéos

8.3. Livres

8.4. Articles

8.4.1. Têtes parlantes

8.4.2. Machines parlantes

8.4.3. Appareil vocal

8.4.4. Orgues et Musique

8.4.5 Kratzenstein et von Kempelen

8.4.6. Willis, Wheatstone et Riesz

8.4.7. Faber

8.4.8. Henry, Bell et Edison

8.4.9. Dudley

8.4.10. Cooper, Fant, Lawrence et Holmes

8.4.11. Mozer et TSI Speak+

8.4.12. Gagnon et Votrax

8.4.13. TSI speak et Speak & Spell

8.4.14. Dennis Klatt

8.4.15. Nouvelles Technologies

8.4.16. Traitement des signaux

8.4.17. Synthèse de la parole

Installation de Festival TTS sur Debian

Last update : April 9, 2015

Suite à l’installation du système Festival TTS sur mon MacBook Air il y a trois mois, je viens de l’installer sur mon laptop avec système d’exploitation Debian 7 Linux. Les différentes archives du système Festival ont été téléchargées et décomprimées avec ARC.

Décompression d'un archive Festival

Décompression d’une archive Festival

J’ai suivi ensuite la même procédure que sur Mac OSX, à savoir

  • création d’un répertoire Festival-TTS sur le desktop avec les sous-répertoires festival, speech_tools et festvox
  • compilation des programmes dans l’ordre speech_tools, festival, festvox
  • installation des voix et dictionnaires dans les sous-répertoires lib/voices et lib/dicts du répertoire festival

Configuration du

Configuration du programme speech_tools

La compilation du programme speech_tools s’est arrêtée avec les messages d’erreur

/usr/bin/ld: cannot find -lcurses
/usr/bin/ld: cannot find -lncurses

L’installation de la bibliothèque libncurses5-dev a réglé ce problème. La suite de la compilation s’est passée sans autres erreurs, abstraction faite de plusieurs avertissements concernant des variables spécifiées, mais non utilisées .

Il a été possible de démarrer le programme Festival avec la commande

/Desktop/Festival-TTS/festival/bin/festival

mais la synthèse d’une phrase de test

festival> (SayText "Hello, how are you")

a produit l’erreur

Linux: can't open /dev/dsp

Parmi les remèdes trouvés sur le net, j’ai opté pour la solution

apt-get install oss-compat
modprobe snd-pcm-oss

qui a été couronnée de succès.

Il ne restait plus que la configuration des différents chemins d’accès pour mettre le système Festival tout à fait opérationnel. Les commandes suivantes ont été ajoutées au script ~/.bashrc :

FESTIVALDIR="/home/mbarnig/Desktop/Festival-TTS/festival"
FESTVOXDIR="/home/mbarnig/Desktop/Festival-TTS/festvox"
ESTDIR="/home/mbarnig/Desktop/Festival-TTS/speech_tools"
PATH="$FESTIVALDIR/bin:$PATH"
PATH="$ESTDIR/bin:$PATH"
export PATH
export FESTIVALDIR
export FESTVOXDIR
export ESTDIR

Pat

Variables d’environnement et PATH du système Festival

Ca marche!

Lancement

Lancement du programme Festival TTS sur Debian Linux Wheezy

Le chargement respectivement la compilation d’une nouvelle voix, comme le luxembourgeois, ne réussit que si la voix anglaise kal_diphon est présente, si non une erreur “unbound variable rfs_info” se produit.

Speech Utterance

Last update : April 2, 2015

Utterance Definition

In linguistics an utterance is a unit of speech, without having a precise definition. It’s a bit of spoken language. It could be anything from “Baf!” to a full sentence or a long speech. The corresponding unit in written language is text.

Phonetically an utterance is a unit of speech bounded (preceded and followed) by silence. Phonemes, phones, morphemes,  words etc are all considered items of an utterance.

In orthography, an utterance begins with a capital letter and ends in a period, question mark, or exclamation point.

In Speech Synthesis (TTS) the text that you wish to be spoken is contained within an utterance object (example : SpeechSynthesisUtterance). The Festival TTS system uses the utterance as the basic object for synthesis. Speech synthesis is the process that applies a set of programs to an utterance.

The main stages to convert textual input to speech output are :

  1. Conversion of the input text to tokens
  2. Conversion of tokens to words
  3. Conversion of words to strings of phonemes
  4. Addition of prosodic information
  5. Generation of a waveform

In Festival each stage is executed in several steps. The number of steps and what actually happens may vary and is dependent on the particular language and voice selected. Each of the steps is achieved by a Festival module which will typically add new information to the utterance structure. Swapping of modules is possible.

Festival provides six synthesizer modules :

  • 2 diphone engines : MBROLA and diphone
  • 2 unit selection engines : clunits and multisyn
  • 2 HMM engines : clustergen and HTS

Festival Utterance Architecture

A very simple utterance architecture is the string model where the high level items are replaced sequentially by lower level items, from tokens to phones. The disadvantage of this architecture is the loss of information about higher levels.

Another architecture is the multi-level table model with one hierarchy. The problem is that there are no explicit connections between levels.

Festival uses a Heterogeneous Relation Graph (HRG). This model is defined as follows :

  • Utterances consist of a set of items, representing things like tokens, words, phones,
  • Each item is related by one or more relations to other items.
  • Each item contains a set of features, having each a name and a value.
  • Relations define lists, trees or lattices of items.

The stages and steps to build an utterance in Festival, described in the following chapters, are related to the us-english language and to the clustergen voice cmu_us_slt_cg.

To explore the architecture (structure) of an utterance in Festival, I will analyse the relation-trees created by the synthesis of the text string “253”.

festival> (voice_cmu_us_slt_cg)
cmu_us_slt_cg
festival> (set! utter (SayText "253"))
#<Utterance 0x104c20720>
festival> (utt.relationnames utter)
(Token
 Word
 Phrase
 Syllable
 Segment
 SylStructure
 IntEvent
 Intonation
 Target
 HMMstate
 segstate
 mcep
 mcep_link
 Wave)
festival> (utt.relation_tree utter 'Token)
((("253"
   ((id "_1")
    (name "253")
    (whitespace "")
    (prepunctuation "")
    (token_pos "cardinal")))
  (("two"
    ((id "_2")
     (name "two")
     (pos_index 1)
     (pos_index_score 0)
     (pos "cd")
     (phr_pos "cd")
     (phrase_score -0.69302821)
     (pbreak_index 1)
     (pbreak_index_score 0)
     (pbreak "NB"))))
  (("hundred"
    ((id "_3")
     (name "hundred")
     (pos_index 1)
     (pos_index_score 0)
     (pos "cd")
     (phr_pos "cd")
     (phrase_score -0.692711)
     (pbreak_index 1)
     (pbreak_index_score 0)
     (pbreak "NB"))))
  (("fifty"
    ((id "_4")
     (name "fifty")
     (pos_index 8)
     (pos_index_score 0)
     (pos "nn")
     (phr_pos "n")
     (phrase_score -0.69282991)
     (pbreak_index 1)
     (pbreak_index_score 0)
     (pbreak "NB"))))
  (("three"
    ((id "_5")
     (name "three")
     (pos_index 1)
     (pos_index_score 0)
     (pos "cd")
     (phr_pos "cd")
     (pbreak_index 0)
     (pbreak_index_score 0)
     (pbreak "B")
     (blevel 3))))))
festival> (utt.relation_tree utter 'Word)
((("two"
   ((id "_2")
    (name "two")
    (pos_index 1)
    (pos_index_score 0)
    (pos "cd")
    (phr_pos "cd")
    (phrase_score -0.69302821)
    (pbreak_index 1)
    (pbreak_index_score 0)
    (pbreak "NB"))))
 (("hundred"
   ...
   ...
    (blevel 3)))))
festival> (utt.relation_tree utter 'Phrase)
((("B" ((id "_6") (name "B")))
  (("two"
    ((id "_2")
     (name "two")
     (pos_index 1)
     (pos_index_score 0)
     (pos "cd")
     (phr_pos "cd")
     (phrase_score -0.69302821)
     (pbreak_index 1)
     (pbreak_index_score 0)
     (pbreak "NB"))))
  (("hundred"
    ...
    ...
     (blevel 3))))))
festival> (utt.relation_tree utter 'Syllable)
((("syl" ((id "_7") (name "syl") (stress 1))))
 (("syl" ((id "_10") (name "syl") (stress 1))))
 (("syl" ((id "_14") (name "syl") (stress 0))))
 (("syl" ((id "_19") (name "syl") (stress 1))))
 (("syl" ((id "_23") (name "syl") (stress 0))))
 (("syl" ((id "_26") (name "syl") (stress 1)))))
festival> (utt.relation_tree utter 'Segment)
((("pau" ((id "_30") (name "pau") (end 0.15000001))))
 (("t" ((id "_8") (name "t") (end 0.25016451))))
 (("uw" ((id "_9") (name "uw") (end 0.32980475))))
 (("hh" ((id "_11") (name "hh") (end 0.39506164))))
 (("ah" ((id "_12") (name "ah") (end 0.48999402))))
 (("n" ((id "_13") (name "n") (end 0.56175226))))
 (("d" ((id "_15") (name "d") (end 0.59711802))))
 (("r" ((id "_16") (name "r") (end 0.65382934))))
 (("ax" ((id "_17") (name "ax") (end 0.67743915))))
 (("d" ((id "_18") (name "d") (end 0.75765681))))
 (("f" ((id "_20") (name "f") (end 0.86216313))))
 (("ih" ((id "_21") (name "ih") (end 0.93317086))))
 (("f" ((id "_22") (name "f") (end 1.0023116))))
 (("t" ((id "_24") (name "t") (end 1.0642071))))
 (("iy" ((id "_25") (name "iy") (end 1.1534019))))
 (("th" ((id "_27") (name "th") (end 1.2816957))))
 (("r" ((id "_28") (name "r") (end 1.3449684))))
 (("iy" ((id "_29") (name "iy") (end 1.5254952))))
 (("pau" ((id "_31") (name "pau") (end 1.6754951)))))
festival> (utt.relation_tree utter 'SylStructure)
((("two"
   ((id "_2")
    (name "two")
    (pos_index 1)
    (pos_index_score 0)
    (pos "cd")
    (phr_pos "cd")
    (phrase_score -0.69302821)
    (pbreak_index 1)
    (pbreak_index_score 0)
    (pbreak "NB")))
  (("syl" ((id "_7") (name "syl") (stress 1)))
   (("t" ((id "_8") (name "t") (end 0.25016451))))
   (("uw" ((id "_9") (name "uw") (end 0.32980475))))))
 (("hundred"
   ((id "_3")
    (name "hundred")
    (pos_index 1)
    (pos_index_score 0)
    (pos "cd")
    (phr_pos "cd")
    (phrase_score -0.692711)
    (pbreak_index 1)
    (pbreak_index_score 0)
    (pbreak "NB")))
  (("syl" ((id "_10") (name "syl") (stress 1)))
   (("hh" ((id "_11") (name "hh") (end 0.39506164))))
   (("ah" ((id "_12") (name "ah") (end 0.48999402))))
   (("n" ((id "_13") (name "n") (end 0.56175226)))))
  (("syl" ((id "_14") (name "syl") (stress 0)))
   (("d" ((id "_15") (name "d") (end 0.59711802))))
   (("r" ((id "_16") (name "r") (end 0.65382934))))
   (("ax" ((id "_17") (name "ax") (end 0.67743915))))
   (("d" ((id "_18") (name "d") (end 0.75765681))))))
 (("fifty"
   ((id "_4")
    (name "fifty")
    (pos_index 8)
    (pos_index_score 0)
    (pos "nn")
    (phr_pos "n")
    (phrase_score -0.69282991)
    (pbreak_index 1)
    (pbreak_index_score 0)
    (pbreak "NB")))
  (("syl" ((id "_19") (name "syl") (stress 1)))
   (("f" ((id "_20") (name "f") (end 0.86216313))))
   (("ih" ((id "_21") (name "ih") (end 0.93317086))))
   (("f" ((id "_22") (name "f") (end 1.0023116)))))
  (("syl" ((id "_23") (name "syl") (stress 0)))
   (("t" ((id "_24") (name "t") (end 1.0642071))))
   (("iy" ((id "_25") (name "iy") (end 1.1534019))))))
 (("three"
   ((id "_5")
    (name "three")
    (pos_index 1)
    (pos_index_score 0)
    (pos "cd")
    (phr_pos "cd")
    (pbreak_index 0)
    (pbreak_index_score 0)
    (pbreak "B")
    (blevel 3)))
  (("syl" ((id "_26") (name "syl") (stress 1)))
   (("th" ((id "_27") (name "th") (end 1.2816957))))
   (("r" ((id "_28") (name "r") (end 1.3449684))))
   (("iy" ((id "_29") (name "iy") (end 1.5254952)))))))
festival> (utt.relation_tree utter 'IntEvent)
((("L-L%" ((id "_32") (name "L-L%"))))
 (("H*" ((id "_33") (name "H*"))))
 (("H*" ((id "_34") (name "H*"))))
 (("H*" ((id "_35") (name "H*")))))
festival> (utt.relation_tree utter 'Intonation)
((("syl" ((id "_26") (name "syl") (stress 1)))
  (("L-L%" ((id "_32") (name "L-L%")))))
 (("syl" ((id "_7") (name "syl") (stress 1)))
  (("H*" ((id "_33") (name "H*")))))
 (("syl" ((id "_10") (name "syl") (stress 1)))
  (("H*" ((id "_34") (name "H*")))))
 (("syl" ((id "_19") (name "syl") (stress 1)))
  (("H*" ((id "_35") (name "H*"))))))
festival> (utt.relation_tree utter 'Target)
((("t" ((id "_8") (name "t") (end 0.25016451)))
  (("0" ((id "_36") (f0 101.42016) (pos 0.1)))))
 (("uw" ((id "_9") (name "uw") (end 0.32980475)))
  (("0" ((id "_37") (f0 121.11904) (pos 0.25)))))
 (("hh" ((id "_11") (name "hh") (end 0.39506164)))
  (("0" ((id "_38") (f0 119.19957) (pos 0.30000001)))))
 (("ah" ((id "_12") (name "ah") (end 0.48999402)))
  (("0" ((id "_39") (f0 123.81679) (pos 0.44999999)))))
 (("d" ((id "_15") (name "d") (end 0.59711802)))
  (("0" ((id "_40") (f0 117.02986) (pos 0.60000002)))))
 (("ax" ((id "_17") (name "ax") (end 0.67743915)))
  (("0" ((id "_41") (f0 110.17942) (pos 0.85000008)))))
 (("f" ((id "_20") (name "f") (end 0.86216313)))
  (("0" ((id "_42") (f0 108.59299) (pos 1.0000001)))))
 (("ih" ((id "_21") (name "ih") (end 0.93317086)))
  (("0" ((id "_43") (f0 115.24371) (pos 1.1500001)))))
 (("t" ((id "_24") (name "t") (end 1.0642071)))
  (("0" ((id "_44") (f0 108.76601) (pos 1.3000002)))))
 (("iy" ((id "_25") (name "iy") (end 1.1534019)))
  (("0" ((id "_45") (f0 102.23844) (pos 1.4500003)))))
 (("th" ((id "_27") (name "th") (end 1.2816957)))
  (("0" ((id "_46") (f0 99.160072) (pos 1.5000002)))))
 (("iy" ((id "_29") (name "iy") (end 1.5254952)))
  (("0" ((id "_47") (f0 90.843689) (pos 1.7500002))))
  (("0" ((id "_48") (f0 88.125809) (pos 1.8000003))))))
festival> (utt.relation_tree utter 'HMMstate)
((("pau_1" ((id "_49") (name "pau_1") (statepos 1) (end 0.050000001)*
 (("pau_2" ((id "_50") (name "pau_2") (statepos 2) (end 0.1))))
 (("pau_3" ((id "_51") (name "pau_3") (statepos 3) (end 0.15000001)*
 (("t_1" ((id "_52") (name "t_1") (statepos 1) (end 0.16712391))))
 (("t_2" ((id "_53") (name "t_2") (statepos 2) (end 0.23217295))))
 (("t_3" ((id "_54") (name "t_3") (statepos 3) (end 0.25016451))))
 (("uw_1" ((id "_55") (name "uw_1") (statepos 1) (end 0.2764155))))
 (("uw_2" ((id "_56") (name "uw_2") (statepos 2) (end 0.3001706))))
 (("uw_3" ((id "_57") (name "uw_3") (statepos 3) (end 0.32980475))))
 (("hh_1" ((id "_58") (name "hh_1") (statepos 1) (end 0.3502973))))
 ...
 ...
 (("iy_1" ((id "_100") (name "iy_1") (statepos 1) (end 1.3995106))))
 (("iy_2" ((id "_101") (name "iy_2") (statepos 2) (end 1.4488922))))
 (("iy_3" ((id "_102") (name "iy_3") (statepos 3) (end 1.5254952))))
 (("pau_1" ((id "_103") (name "pau_1") (statepos 1) (end 1.5754951)*
 (("pau_2" ((id "_104") (name "pau_2") (statepos 2) (end 1.6254952)*
 (("pau_3" ((id "_105") (name "pau_3") (statepos 3) (end 1.6754951)*
festival> (utt.relation_tree utter 'segstate)
((("pau" ((id "_30") (name "pau") (end 0.15000001)))
  (("pau_1" ((id "_49") (name "pau_1") (statepos 1) (end 0.050000001)
  (("pau_2" ((id "_50") (name "pau_2") (statepos 2) (end 0.1))))
  (("pau_3" ((id "_51") (name "pau_3") (statepos 3) (end 0.15000001)*
 (("t" ((id "_8") (name "t") (end 0.25016451)))
  (("t_1" ((id "_52") (name "t_1") (statepos 1) (end 0.16712391))))
  (("t_2" ((id "_53") (name "t_2") (statepos 2) (end 0.23217295))))
  (("t_3" ((id "_54") (name "t_3") (statepos 3) (end 0.25016451)))))
 (("uw" ((id "_9") (name "uw") (end 0.32980475)))
  (("uw_1" ((id "_55") (name "uw_1") (statepos 1) (end 0.2764155))))
  (("uw_2" ((id "_56") (name "uw_2") (statepos 2) (end 0.3001706))))
  (("uw_3" ((id "_57") (name "uw_3") (statepos 3) (end 0.32980475))))
 ...
 ...
 (("iy" ((id "_29") (name "iy") (end 1.5254952)))
  (("iy_1" ((id "_100") (name "iy_1") (statepos 1) (end 1.3995106))))
  (("iy_2" ((id "_101") (name "iy_2") (statepos 2) (end 1.4488922))))
  (("iy_3" ((id "_102") (name "iy_3") (statepos 3) (end 1.5254952))*
 (("pau" ((id "_31") (name "pau") (end 1.6754951)))
  (("pau_1" ((id "_103") (name "pau_1") (statepos 1) (end 1.5754951)*
  (("pau_2" ((id "_104") (name "pau_2") (statepos 2) (end 1.6254952)*
  (("pau_3" ((id "_105") (name "pau_3") (statepos 3) (end 1.6754951)*
festival> (utt.relation_tree utter 'mcep)
((("pau_1"
   ((id "_106")
    (frame_number 0)
    (name "pau_1")
    (clustergen_param_frame 19315))))
 (("pau_1"
   ((id "_107")
    (frame_number 1)
    (name "pau_1")
    (clustergen_param_frame 19315))))
 (("pau_1"
   ((id "_108")
    (frame_number 2)
    (name "pau_1")
    (clustergen_param_frame 19315))))
 (("pau_1"
   ((id "_109")
    (frame_number 3)
    (name "pau_1")
    (clustergen_param_frame 19315))))
 ...
 ...
 (("t_1"
   ((id "_137")
    (frame_number 31)
    (name "t_1")
    (clustergen_param_frame 26089))))
 (("t_1"
   ((id "_138")
    (frame_number 32)
    (name "t_1")
    (clustergen_param_frame 26085))))
 (("t_1"
   ((id "_139")
    (frame_number 33)
    (name "t_1")
    (clustergen_param_frame 26085))))
 (("t_2"
   ((id "_140")
    (frame_number 34)
    (name "t_2")
    (clustergen_param_frame 26642))))
...
...
 (("uw_1"
   ((id "_157")
    (frame_number 51)
    (name "uw_1")
    (clustergen_param_frame 27595))))
 ...
 (("pau_3"
   ((id "_438")
    (frame_number 332)
    (name "pau_3")
    (clustergen_param_frame 22148))))
 (("pau_3"
   ((id "_439")
    (frame_number 333)
    (name "pau_3")
    (clustergen_param_frame 22148))))
 (("pau_3"
   ((id "_440")
    (frame_number 334)
    (name "pau_3")
    (clustergen_param_frame 22148))))
 (("pau_3"
   ((id "_441")
    (frame_number 335)
    (name "pau_3")
    (clustergen_param_frame 22365)))))
festival> (utt.relation_tree utter 'mcep_link)
((("pau_1" ((id "_49") (name "pau_1") (statepos 1) (end 0.050000001).
  (("pau_1"
    ((id "_106")
     (frame_number 0)
     (name "pau_1")
     (clustergen_param_frame 19315))))
  (("pau_1"
    ((id "_107")
     (frame_number 1)
     (name "pau_1")
     (clustergen_param_frame 19315))))
  (("pau_1"
    ((id "_108")
     (frame_number 2)
     (name "pau_1")
     (clustergen_param_frame 19315))))
  ...
  ...
  (("pau_3"
    ((id "_439")
     (frame_number 333)
     (name "pau_3")
     (clustergen_param_frame 22148))))
  (("pau_3"
    ((id "_440")
     (frame_number 334)
     (name "pau_3")
     (clustergen_param_frame 22148))))
  (("pau_3"
    ((id "_441")
     (frame_number 335)
     (name "pau_3")
     (clustergen_param_frame 22365))))))
festival> (utt.relation_tree utter 'Wave)
((("0" ((id "_442") (wave "[Val wave]")))))
festival>

Notes :
* some parentheses have been deleted in the display for formating reasons
… some content has been deleted to reduce the size of the analyzed code

Results of the code analysis

The number of items created for the string “253” are shown in the following table :

number item id’s
1 token 1
4 word 2-5
1 phrase 6
6 syllable 7, 10, 14, 19, 23, 26
19 segment 8-9, 11-13, 15-18, 20-22, 24-25, 27-31
4 intevent 32-35
13 target 36-48
57 hmmstate 49-105
336 mcep 106-441
1 wave 442

The features associated to the different items are presented in the next table :

item features
token name, whitespace, prepunctuation, token_pos
word name, pos_index, pos_index_score, pos, phr_pos, phrase_score, pbreak_index, pbreak_index_score, pbreak, blevel
phrase name
syllable name, stress
segment name, end
intevent name
target f0, pos
hmmstate name, statepos, end
mcep name, frame_number, clustergen_param_frame
wave Val

The last table shows the relations between the different items in the HRG :

item daughter leaf relation
token word x Token
word syllable SylStructure
phrase word x Phrase
syllable segment x (except silence) SylStructure
syllable intevent x Intonation
segment target x Target
segment hmmstate x segstate
segment mcep x mcep_link

Relations between utterance items

To better understand the relations between utterance items, I use a second example :

festival>
(set! utter (SayText "253 and 36"))
(utt.relation.print utter 'Token)

Tok

Festival SayText

There are 3 tokens. The Token relation is a list of trees where each root is the white space separated tokenized object from the input character string and where the daughters are the list of words associated with the tokens. Most often it is a one to one relationship, but in the case of digits a token is associated with several words. The following command shows the Token tree with the daughters :

(utt.relation_tree utter 'Token)

Festival Token_tree

Festival Token_tree

We can check that the word list corresponds to the Token tree list :

(utt.relation.print utter 'Word)

Festival Word List

Festival Word List

To access the second word of the first token we can use two methods :

(item.name (item.daughter2 (utt.relation.first utter 'Token)))

or

(item.name (item.next (utt.relation.first utter 'Word)))

tok

Festival access methods to word item

TTS stages and steps

In the next chapters the different stages and steps executed to synthesize a text string are described with more details. In the first step a simple and a complex utterance of type Text are created :

(set! simple_utt (Utterance Text 
"The quick brown fox jumps over the lazy dog"))
(set! complex_utt (Utterance Text
"Mr. James Brown Jr. attended flight No AA4101 to Boston on
Friday 02/13/2014."))

The complex utterance named complex_utt is used in the following examples.

1. Text-to-Token Conversion

Text

Text is a string of characters in ASCII or ISO-8850 format. Written (raw) text usually contains also numbers, names, abbreviations, symbols, punctuation etc which must be translated into spoken text. This process is called Tokenization. Other terms used are (lexical) Pre-Processing, Text Normalization or Canonicalization. To access the items and features of the defined utterance named complex_utt in Festival we use the following modules :

festival> (Initialize complex_utt) ; Initialize utterance
festival> (utt.relationnames complex_utt) ; show created relations

Festival Utterance Initialization

Festival Utterance Initialization

The result nil indicates that there exist not yet a relation inside the text-utterance.

Tokens

The second step is the Tokenization which consists in the conversion of the input text to tokens. A token is a sequence of characters where whitespace and punctuation are eliminated. The following Festival command is used to convert raw text to tokens and to show them :

festival> (Text complex_utt) ; convert text to tokens
festival> (utt.relationnames complex_utt) ; check new relations
festival> (utt.relation.print complex_utt 'Token) ; display tokens

Festival Text Module to convert raw text to tokens

Festival Text Module to convert raw text to tokens

There are several methods to access individual tokens :

festival> (utt.relation.first complex_utt 'Token) ; returns 1st token
festival> (utt.relation.last complex_utt 'Token) ; returns last token
festival> (utt.relation_tree complex_utt 'Token) ; returns token tree

Festival Token Access

Festival Token Access

This utt.relation_tree method can also be applied to other relations than ‘Tokens.

2. Token-to-Word Conversion

Words

In linguistics, a word is the smallest element that may be uttered in isolation with semantic or pragmatic content. To convert the isolated tokens to words, we use the Festival commands :

festival> (Token complex_utt) ; token to word conversion
festival> (utt.relationnames complex_utt) ; check new relations
festival> (utt.relation.print complex_utt 'Word) ; display words

Festival Token Module to convert tokens to words

Festival Token Module to convert tokens to words

The rules to perform the token to word conversion are specified in the Festival script token.scm.

POS

Part-of-Speech (POS) Tagging is related to the Token-to-Word conversion. POS is also called grammatical tagging or word-category disambiguation. It’s the process of marking up a word in a text as corresponding to a particular part of speech, based on both its definition, as well as its context (identification of words as nouns, verbs, adjectives, adverbs, etc.)

To do the POS tagging, we use the commands

festival> (POS complex_utt) ; Part of Speech tagging
festival> (utt.relationnames complex_utt) ; check new relations
festival> (utt.relation.print complex_utt 'Word) ; display words

The relation check shows that no new relation was created with the POS method. There are however new features which have been added to the ‘Word relation.

Festival POS Module to tag the words

Festival POS Module to tag the words

The new features are :

  • pos_index n
  • pos_index_score m
  • pos xx

Phrase

The last step of the Token-to-Word conversion is the phrasing. This process determines the places where phrase boundaries should be inserted. Prosodic phrasing in TTS makes the whole speech more understandable. The phrasing is launched with the following commands :

festival> (Phrasify complex_utt) ;
festival> (utt.relationnames complex_utt) ; check new relations
festival> (utt.relation.print complex_utt 'Phrase) ; display breaks

Festival Phrasify Module to insert boundaries

Festival Phrasify Module to insert boundaries

The result can be seen in new attributes in the Word relation:

festival> (utt.relation.print complex_utt 'Word)
  • phr_pos xx
  • phrase_score nn
  • pbreak_index n
  • pbreak_index_score m
  • pbreak yy  (B for small breaks, BB is for big breaks, NB for no break)
  • blevel p

utt6a

Festival Word list after phrasing (click to enlarge)

3. Word-to-Phoneme Conversion

The command

festival> (Word complex_utt)

generates 3 new relations : syllables, segments and SylStructure.

utt7

Festival relations generated by the Word method

Segment

Segments and phones are synonyms.

festival> (utt.relation.print complex_utt 'Segment)

utt9

Festival segments = phones

Syllable

Consonants and vowels combine to make syllables. They are often considered the phonological building blocks of words, but there is no universally accepted definition for a syllable. An approximate definition is : a syllable is a vowel sound together with some of the surrounding consonants closely associated with it. The general structure of a syllable consists of three segments :

  • Onset : a consonant or consonant cluster
  • Nucleus : a sequence of vowels or syllabic consonant
  • Coda : a sequence of consonants

Nucleus and coda are grouped together as a Rime. Prominent syllables are called accented; they are louder, longer and have a different pitch.

The following Festival command shows the syllables of the defined utterance.

festival> (utt.relation.print complex_utt 'Syllable)

utt8

Festival syllables

SylStructure

Words, segments and syllables are related in the HRG trought the SylStructure. The command

festival> (utt.relation.print complex_utt 'SylStructure)

prints these related items.

utt10 (click to enlarge)

Festival SylStructure  (click to enlarge)

4. Prosodic Information Addition

Besides the phrasing with break indices, additional prosodic components can be added to speech synthesis to improve the voice quality. Some of these elements are :

  • pitch accents (stress)
  • final boundary tones
  • phrasal tones
  • F0 contour
  • tilt
  • duration

Festival supports ToBI, a framework for developing community-wide conventions for transcribing the intonation and prosodic structure of spoken utterances in a language variety.

The process

festival> (Intonation complex_utt)

generates two additional relations : IntEvent and Intonation

utt11

Festival prosodic relations

IntEvent

The command

festival> (utt.relation.print complex_utt 'IntEvent)

prints the IntEvent items.

utt12

Festival IntEvent items

The following types are listed :

  • L-L% : low boundary tone
  • H* : peak accent
  • !H* : downstep high
  • L+H* : bitonal accent, rising peak

Intonation

The command

festival> (utt.relation.print complex_utt 'Intonation)

prints the Intonation items.

utt13

Festival Intonation items

Only the syllables with stress are displayed.

Duration

The process

festival> (Duration complex_utt)

creates no new relations and I have not seen any new items or features in other relations.

utt14

utt14

Target

The last process in the prosodic stage

festival> (Int_Targets complex_utt)

generates the additional relation Target.

utt15

Festival relations after the Int_Targets process

The command

festival> (utt.relation.print complex_utt 'Target)

prints the target items.

Festival clustergen targets

Festival clustergen targets

The unique target features are the segment name and the segment end time.

5. Waveform Generation

Wave

The process

festival> (Wave_Synth complex_utt)
festival> (utt.relation.print complex_utt 'Wave)

generates five new relations :

  • HMMstate
  • segstate
  • mcep
  • mcep_links
  • Wave

Festival

Festival Wave relations for clustergen voice

In the next chapters we use the method

(utt.relation.print complex_utt 'Relation)

to display the relations and features specific to the diphone voice.

Relation ‘HMMstate

HMMstates for clustergen voice

HMMstates for Festival clustergen voice

Relation ‘segstate

segstates for

segstates for Festival clustergen voice

Relation ‘mcep

mcep

mcep features for Festival clustergen voice

Relation ‘mcep_links

mcep_link

mcep_links relation for Festival clustergen voice

Relation ‘Wave

wave

Wave relation for Festival clustergen voice

Diphone Voice Utterance

If we use a diphone voice (e.g. the default kal_diphone voice) instead of the clustergen voice, the last step of the prosodic stage (No 4) and the complete wave-synthesis stage (No 5) provide different relations and features.

We use the Festival method “SayText”, a combination of the above presented processes

  • Initialize utt
  • Text utt
  • Token utt
  • POS utt
  • Phrasify utt
  • Word utt
  • Intonation utt
  • Duration utt
  • Int_Targets utt
  • Wave_Synt utt

to create the same complex utterance as in the first example :

festival>
(set! complex_utt (SayText "Mr. James Brown Jr. attended flight 
No AA4101 to Boston on Friday 02/13/2014."))
(utt.relationnames complex_utt)

Here are the results :

clun

Utterance relations for a Festival diphone voice

In the next chapters we use the method

(utt.relation.print complex_utt 'Relation)

to display the relations and features specific to the diphone voice.

Relation ‘Target

utt16

Relation Target for diphone voice

Relation ‘Unit

utt18

Relation Unit for diphone voice (click to enlarge)

Relation ‘SourceCoef

utt19

Relation ‘SourceCoef for diphone voice

Relation ‘fo

utt20

Relation f0 for diphone voice

Relation ‘TargetCoef

utt21

Relation TargetCoef for diphone voice

Relation ‘US_map

utt22

Relation US_map for diphone voice

Relation ‘Wave

utt23

Relation Wave for diphone voice

Playing and saving the diphone voice utterance :

utt24

Playing and saving a synthesized Festival utterance

Diphone voice utterance shown in Audacity :

utt_wave

Display of a synthesized Festival utterance

Clunits Voice Utterance

What is true for the diphone voice is also ture for a clunits voice. The last step of the prosodic stage (No 4) and the complete wave-synthesis stage (No 5) generate different relations and features. As an example we use a swedish clunits voice :

clu1

Relations for Festival clunits voice

Relation ‘Target

clu4

Relation Target for Festival clunits voice  (click to enlarge)

Relation ‘Unit

clu3

Relation unit for Festival clunits voice  (click to enlarge)

Relation ‘SourceSegments

clu2

Relation SourceSegments for Festival clunits voice

That’s all.