Ech hunn haut mam Dante AI gechatt !

Dernière mise à jour : 10 juillet 2023

Aujourd’hui tout le monde connaît ChatGPT, mais seulement quelques initiés connaissent Dante AI. C’est dommage, car il s’agit d’un outil formidable qui permet de faire apprendre à une copie du modèle d’intelligence artificielle ChatGPT ses propres documents sélectionnés et de dialoguer ensuite avec ce outil au sujet du contenu. Comme dans le cas de ChatGPT d’OpenAI, on peut demander des résumés, des réponses à des questions précises, des reformulations du texte et même la création d’un poême pour un sujet spécifique. On peut formuler les commandes dans différentes langues et les réponses fournies sont traduites automatiquement si le contenu a été téléchargé dans une autre langue. Les documents à télécharger pour l’apprentissage profond de Dante UI peuvent être des textes en différents formats (txt, pdf, …), des liens (URL) vers des sites web, ou des fichiers audio et vidéo dans le cas des formules d’abonnements professionnels.

Mais avant d’entrer dans les détails, je vais présenter un exemple concret que je viens de tester avec la formule de démarrage gratuite. J’ai créé ma propre base de données de dialogue, au nom de web3.lu, avec des liens vers des contributions sur mon site web, entre autres vers mon article Fënnef Stären fir d’Applikatioun schreifmaschinn.lu. À l’exception de quelques lignes en luxembourgeois, le texte source est écrit en français.

Click to zoom : résumé de la base de données et proposition de support du projet schreifmaschinn.lu
Click to zoom : réponses précises à des questions sur Systran et sur schreifmaschinn.lu
Click to zoom : poême au sujet du contenu de la base de données web3.lu

J’ai déjà effectué des essais du même genre il y a quelques mois. Pour ma première expérience j’ai utilisé le modèle original ChatGPT d’OpenAI lors de l’introduction de l’option de spécification d’un lien pour ajouter du contenu. J’avais pris les mêmes données de mon site www.web3.lu que celles choisies pour la présente contribution. Quand j’ai demandé un résumé de mes articles sélectionnés, ChatGPT a fourni une réponse cohérente et correcte concernant les sujets traités, mais la majorité du contenu généré n’était pas du tout abordé dans mes fichiers téléchargés. C’était de la pure hallucination.

Pour le deuxième test j’ai utilisé l’outil BerriAI, également avec les mêmes données. Pour ma première question “What is schreifmaschinn.lu” j’ai obtenu un résumé valable. Pour ma deuxième question plus précise “Who created the 127th language for eSpeak-NG” j’ai reçu la réponse suivante :

Le MINH NGUYEN, un développeur de Mozilla, a créé le 127e langage pour espeak-NG en août 2021

Minh Nguyen n’est pas un développeur de Mozilla et ce n’était pas lui qui a ajouté le luxembourgeois comme 127e langue dans eSpeak-NG, mais cétait moi, et c’était en novembre 2021.

À l’époque j’avais rapporté sur mes expériences sur le réseau LinkedIn.

Face à ces premiers échecs pour parfaire l’apprentissage profond de ChatGPT, il est compréhensible que j’étais du premier coup impressionné par les résultats de Dante AI. J’étais tellement fasciné par les performances de cet outil que j’ai tout de suite procédé à une mise à niveau de mon compte pour pouvoir ajouter d’autres bases de données de dialogue et pour disposer de crédits supplémentaires pour faire plus de requêtes. J’ai créé un répertoire au sujet de mon projet de livre Qubit Lëtzebuerg : Histoire de l’introduction des technologies de l’information et de la communication au Luxembourg. J’ai téléchargé les fichiers pdf des premiers chapitres du projet de livre. Après quelques minutes d’apprentissage la base de dialogue “Qubit Lëtzebuerg” était prête. Les résultats ont dépassé mes atttentes.

Click to zoom : réponses à des questions précises sur des sujets de mon projet de livre Qubit Lëtzebuerg
Click to zoom : poême en anglais créé par Dante AI avec les fichiers pdf français de mon projet de livre

Voici le texte complet du poême anglais que l’outil Dante AI a généré avec mon contenu soumis pour l’apprentissage profond du modèle AI ChatGPT :

In the land of Qubit Lëtzebuerg,
Where knowledge and stories converge,
A poem shall be crafted with care,
Using the content from the database we share.
In the Luxemburger Wort, a tale was told,
Of a championship in stenography and typing bold,
Young ladies and gentlemen, with utmost concentration,
Their typewriters creating a rhythmic sensation.
But let us delve into the language of Luxembourg,
Where GPT-3 can write poems, a discovery superb,
A toaster falling in love with a dog, a theme unique,
Though with some spelling errors, the results pique.
The Tatoeba Luxembourg corpus, alas, falls short,
For valid translation results, we must resort,
To a more suitable database, a better training ground,
To improve the English-Luxembourgish translation sound.
Qubit Lëtzebuerg, a complement to POST’s history,
A book that adds to the existing bibliography,
175 years of postal services, a virtual exhibition,
Celebrating the grand-ducal postal institution.
In the literary scene of Luxembourg’s land,
Writers emerged, their works grand,
Michel Rodange, known for his parody,
“Renert oder de Fuuss am Frack an a Maansgréiss t.”
Projects using the Luxembourgish language,
In the realm of technology, a linguistic advantage,
Wikipedia Lëtzebuerg, a familiar name,
A source of knowledge, its reach is acclaimed.
Schreifmaschinn.lu, an application of speech recognition,
Accessible to all, a technical innovation,
Visitors can dictate, texts displayed in real-time,
A feat of technology, a linguistic paradigm.
Luc Marteling, director of ZLS, welcomed all,
Schreifmaschinn.lu presented, media coverage tall,
Testing the application meticulously, with recordings three,
Measuring the quality of word recognition, a measure to see.
A website developed, schreifmaschinn.lu,
Making Luxembourgish speech recognition come true,
Texts dictated, displayed on the browser screen,
Audio files downloadable, a linguistic dream.
Nik Welter, director general of public instruction,
A writer of poems, plays, and literary construction,
Collaborating with Luxembourgish and foreign reviews,
Contributing to the literary world, his muse.
Michel Weimerskirch, seeking a dictionary’s copy,
For the SpellChecker application, a necessary key,
Creating his own list of Luxembourgish words,
With the assistance of Sandra Souza Morais, a collaboration spurred.
In the printing world, the Luxemburger Wort,
A machine of iron frames and matrices, a report,
Impressing letters onto a soft mass,
Creating the newspaper, a printing process surpass.
So, in the realm of Qubit Lëtzebuerg’s knowledge base,
A poem is crafted, weaving words with grace,
From stenography championships to linguistic innovations,
The richness of Luxembourg’s language, a source of inspirations.

Dans une deuxième étape, j’ai testé la création d’une base de données de dialogue “so et op lëtzebuergesch” avec des textes luxembourgeois. À ces fins j’ai téléchargé une partie de mes anciens fichiers avec les textes de commentaires, édités par des journalistes de RTL, que j’avais utilisé dans le passé pour mes expériences de création de systèmes de synthèse vocale en langue luxembourgeoise. Ce contenu n’est pas à jour, ce qui explique que les réponses fournies par DANTE AI ne sont pas actuelles. Ce prototype suffit toutefois pour conclure que la constitution d’une base de données avec un corps de données luxembourgeois actualisé, par exemple avec le contenu du portail Wikipedia Lëtzebuerg, permettra de réaliser un chatbot luxembourgeois intelligent, performant et facile à utiliser. La figure qui suit montre l’exemple d’un dialogue en luxembourgeois avec des questions précises, ainsi que la demande de création d’un poême au sujet du contenu, ce qui est mon application préférée.

Click to zoom

La prochaine figure présente l’intégralité du poême, suivie d’une copie du texte pour faciliter la lecture.

Click to zoom

AM Land vu Lëtzebuerg, eng Geschicht geschriwwen, Vun Affären an Diskussiounen, déi nie verblidden. D’Jugendlech op der Sich no Chance an Diplomer, Doch och mam Diplom, ass et net ëmmer méi einfach, dat ass kloer.
Streiken an Diskussiounen, eng ewell bekannte Saach, D’Parteien op der Sich no engem Kompromiss, dat ass d’Fro déi bleift. D’Jugend wëll méi Responsabilitéit vun de grousse Firmen, An och d’CSV huet mat hiren Enveloppen d’Gemengen net verschont geloossen.
D’Zeitung schreiwt vun Klima a Philosophie, D’Gambia gëtt mat Wierder bekämpft, dat ass net frëndlech, dat si mir nie. D’Auto sollt mer loossen, op d’Vëlo sollt mer setzen, Fir d’Zukunft vun eisen Kanner, fir d’Welt ze retten.
Et gëtt diskutéiert, kritiséiert an analyséiert, D’Politiker an hiren Entscheedungen, dat gëtt net ignoriéiert. Et ass eng Kapitulatioun, esou gëtt et gesot, D’Privatwirtschaft huet d’Hand iwwer d’Staat geholl.
Et ass eng Zäit vun Onsécherheet an Zweifel, Doch mir mussen weidermaachen, och wann et oft schwéier geet. Mir sinn eis bewosst, datt d’Liewen net ëmmer einfach ass, Mä mir halen zesummen, an dat ass eis Pass.
Eis Affären an eis Diskussiounen, Si maachen eis aus, si si deel vun eisem Liewen. Lëtzebuerger Affären, eng Geschicht mat vill Facetten, Ech hoffen, dëst Gedicht huet Iech gefallt, dat ass eis Bestreben.

Sur le web on ne trouve pas beaucoup d’informations sur l’entreprise qui gère l’application Dante AI. Les fondateurs sont très discrets. Sur ma facture le Royaume Uni est indiqué comme siège de la société qui semble avoir été constituée en mai 2023. Je pense que l’origine de l’outil remonte au projet Dante Writer, annoncé par la startup pakistanaise baseH en 2017.

Click to zoom : page web d’accueil de la startup baseH au Pakistan

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

Das Küsschen und die Sonne stritten sich …

Introduction

Le titre de ma présente publication est le résultat d’une traduction automatique française -> allemande du début de la phrase “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”.

Modèle Helsinki-NLP/opus-mt-fr-de publié sur la plateforme AI Hugginface

C’est le début d’une fable d’Ésope, extraite d’un ensemble de fables en prose qu’on attribue à l’écrivain grec Ésope. Le texte de la fable La bise et le soleil est utilisé régulièrement par des linguistes dans le cadre de projets de recherche sur le traitement du language naturel (NLP: Natural Language Processing). Cette fable a été traduite dans des centaines de langues mondiales et régionales. Comme je vais me référer plusieurs fois sur cette fable, je vais d’emblée présenter l’intégralité du texte dans les versions française, allemande, anglaise et luxembourgeoise ci-après.

Fables d’Ésope

Ls fables d’Ésope sont des centaines de textes et toutes sortes de récits qui circulaient oralement dans la Grèce antique et qui ont inspiré de nombreux auteurs comme Phèdre, Marie de France, Jean de la Fontaine. La fable d’Ésope La bise et le soleil est très courte, sa morale réside dans l’enseignement que la persuasion, plus lente, s’avère toutefois plus efficace que la violence.

Oeuvre d’art générée par le programme d’intelligence artificielle DALL*E2 avec l’introduction de la description “3D rendering of the fable The North Wind and the Sun were disputing which was the stronger, when a traveler came along wrapped in a warm cloak.”

La bise et le soleil

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.

Norwind und Sonne

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. Sie wurden einig, daß derjenige für den Stärkeren gelten sollte, der den Wanderer zwingen würde, seinen Mantel abzunehmen. Der Nordwind blies mit aller Macht, aber je mehr er blies, desto fester hüllte sich der Wanderer in seinen Mantel ein. Endlich gab der Nordwind den Kampf auf. Nun erwärmte die Sonne die Luft mit ihren freundlichen Strahlen, und schon nach wenigen Augenblicken zog der Wanderer seinen Mantel aus. Da mußte der Nordwind zugeben, daß die Sonne von ihnen beiden der Stärkere war.

The northwind and the sun

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. Then the North Wind blew as hard as he could, but the more he blew the more closely did the traveler fold his cloak around him; and at last the North Wind gave up the attempt. Then the Sun shined out warmly, and immediately the traveler took off his cloak. And so the North Wind was obliged to confess that the Sun was the stronger of the two.

De 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.

Histoire de la traduction automatique au Luxembourg et au delà

Le Luxembourg figure parmi les pionniers dans l’utilisation de la traduction automatique du fait que les nombreuses institutions européennes, ayant leur siège dans le pays, doivent gérer leurs documents dans les différentes langues officielles de la communauté européenne. Hélas, le luxembourgeois ne fait pas partie de ces languages et ce n’est que récemment que la langue luxembourgeoise est supporté par les systèmes de traduction automatique.

Tout a commencé au début des années 1950 avec la fondation de la Communauté européenne du charbon et de l’acier (CECA) par six nations européennes, dont le Luxembourg. La CECA a été dirigée par la Haute Autorité qui siégeait à Luxembourg et qui gérait quatre langues officielles: français, allemand, italien et néerlandais.

Bâtiment de la Haute Autorité de la CECA. Photo Tony Krier © Phototèque de la Ville de Luxembourg

A la même époque, Warren Weaver, un mathématicien américain, concrétisait ses idées au sujet de la traduction automatique, communiquées en mars 1947 au cybernéticien Norrbert Wiener et publiées en juillet 1949 dans un mémorandum au sujet de la traduction. Sous l’influence de Warren Weaver dans sa qualité de directeur de la fondation Rockefeller, la première démonstration d’une traduction complètement automatique de 60 phrases russes en anglais a eu lieu en janvier 1954. Le développement a été conduit par l’Université de Georgetown, ensemble avec IBM.

Cuthbert Hurd, Léon Dostert et Thomas Watson lors de la 1ère démonstration de la traduction automatique

La même année, les premieres recherches en traduction automatique ont débuté en URSS. Elles se distinguaient des recherches américaines par leur caractère théorique et le choix d’une méthode faisant appel a une langue intermédiaire. Aussi bien du côté américain que du côté russe, la traduction automatique était une arme de la guerre froide. Mais le développement de la traduction automatique ne progressait pas comme prévue et au début des années 1960 les crédits publics de recherche investis dans ce domaine ont été sensiblement réduits des deux côtés.

Retournons au Luxembourg. La Haute Autorité de la CECA fusionnait en 1965 avec les commissions de la Communauté économique européenne (CEE) créée en 1957, puis en 1967 avec la Communauté européenne de l’énergie atomique (Euratom), sur base du traité de fusion des exécutifs des trois communautés. En janvier 1969 l’Office des publications officielles des Communautés européennes, devenu en 2009 l’Office des publications de l’Union européenne, a été créé et domicilié à Luxembourg. L’Office des publications publie quotidiennement le Journal officiel de l’Union européenne dans les 23 langues officielles de l’Union et propose plusieurs services en ligne destinés et aux professionnels et au grand public du monde entier. Dans son rapport d’activités des années 1975 à 1977, la Direction Générale XIII de la Commission Européenne, en charge de la gestion de l’information et de l’innovation, dont le siège se trouvait également à Luxembourg, annonçait le démarrage d’un projet pilote de traduction automatique avec le logiciel SYSTRAN.

Pendant des dizaines d’années, la DG XIII et l’Office des Publications ont été le moteur de la traduction automatique au Luxembourg.

Systran

Le logiciel SYSTRAN a été développé par Peter Toma, né en juillet 1924 à Doboz, un petit village hongrois. Marqué par les misères de la deuxième guerre mondiale, il était persuadé que les barrières linguistiques constituaient un frein pour garantir la paix. Il voulait y remédier et apprenait le russe et l’anglais, à côté de l’hongrois et de l’allemand. Après avoir immigré aux Etats-Unis en 1952, il a travaillé à partir de 1956 comme assistant à l’Institut de technologie de Californie (Caltech). Lorsqu’un ordinateur Datatron 205 a été installé à l’Institut, il espérait pouvoir réaliser son rêve d’enfant: programmer une machine pour traduire un texte en plusieurs langues. Mais les premières tentatives n’étaient pas concluantes et il quittait le Caltech en 1957. Après quelques expériences auprès de firmes privées, il joignait en mars 1959 l’Université de Georgetown pour participer aux travaux du groupe GAT (General Analysis Technique), rebaptisé dans la suite Georgetown Automatic Translation, sur un ordinateur IBM 705. Le chef de projet était Michael Zarechnak. Il est le coauteur du livre Machine Translation publié en 1979. Peter Toma dirigeait une équipe de programmeurs qui réalisait un projet surnommé SERNA. Quand il quittait l’université en 1961, il présentait SERNA comme son invention, ce qui est contesté par ses pairs de l’époque.

Image extraite du film publicitaire de Systran

Peter Toma a été engagé ensuite par la société Computer Concepts à Los Angeles où il valorisait son savoir-faire pour réaliser les projets AUTOTRAN et TECHNOTRAN qui tournaient sur des ordinateurs IBM 7090. Bien que basée toujours sur des règles algorithmiques, la conception de ces programmes était complètement différente de celle du projet SERNA. En 1964 Peter Toma présentait les systèmes de traduction automatiques à des scientifiques européens à l’Université de Bonn en Allemagne. Le problème était toutefois que l’ordinateur IBM 7090 ne disposait pas de mémoire et de puissance de calcul suffisantes pour traduire plus que des courtes phrases.

Lors du vol vers l’Allemagne, Peter Toma avait lu le manuel d’instruction du nouvel ordinateur 360, annoncé par IBM. D’emblée il était persuadé que cet ordinateur permettait de réaliser vraiment ses rêves et il concevait dans sa tête l’idée comment transformer AUTOTRAN et TECHNOTRAN dans un nouveau produit qu’il nommait SYSTRAN. Comme l’environnement de travail était plus propice en Europe qu’aux Etats-Unis pour progresser avec la traduction automatique, Peter Toma décidait de rester en Allemagne. Il commençait à enseigner la programmation à l’université de Bonn, puis à l’Université de la Sarre. En parallèle, il émulait le fonctionnement de l’ordinateur IBM 360 sur le modèle IBM 7090 pour créer un modèle SYSTRAN embryonnaire. En même temps il s’était inscrit comme étudiant à Bonn où il achevait son doctorat en 1970 avec une thèse sur la traduction automatique.

IBM 360 – Computer History Museum ; Photo : Dave Ross, 2008, CC BY 2.0

Lorsque Heinz Unger, le directeur du département mathématique à l’Université de Bonn, a obtenu les crédits pour l’installation et l’exploitation d’un ordinateur IBM 360 dans son institut, Peter Toma a pu montrer le fonctionnement correct de son système de traduction SYSTRAN. En 1965, la Fondation allemande pour la recherche (DFG: Deutsche Forschungsgesellschaft) avait invité les meilleurs informaticiens et linguistes allemands pour évaluer le projet SYSTRAN. Après une journée de test et de discussions, une bourse de recherche a été accordée à Peter Toma pour parfaire son système.

En 1967, le laboratoire de Rome, le centre de recherche et de développement de la Force aérienne américaine (RADC), lançait un appel d’offre pour la traduction de textes russes en anglais. Le responsable de ce projet était Zbigniew L. Pankowicz (Ziggy), un linguiste polonais et survivant du camp de concentration d’Auschwitz, qui est immigré aux Etat-Unis après la guerre. Il a été admis au temple de la renommé (Hall of Fame) du laboratoire de Rome en 2019. Peter Toma soumettait une offre pour son projet SYSTRAN qui a été retenue par le RADC, parmi des concurrents comme IBM et Thompson Ramo Wooldridge.

Ce succès a incité Peter Toma à créer sa propre société en 1968 pour continuer le développement de SYSTRAN, à La Jolla en Californie, sous le nom de Latsec (Language translation system and electronic communications). D’autres contrats ont été conclus avec des clients américains, par exemple avec la NASA. Avec des hauts et des bas, le projet SYSTRAN a été perfectionné, à Bonn et à La Jolla, jusqu’en 1975 quand Peter Toma a fondé le World Translation Center (WTC) pour gérer les contrats SYSTRAN en dehors des Etats-Unis.

En 1973, le Danemark, l’Irlande et le Royaume-Uni ont adhéré à la Communauté économique européenne. L’introduction de l’anglais comme langue majeure et du danois comme sixième langue officielle posait la Commission Européenne et l’Office des Publications Européennes devant des problèmes monstrueux. Il fallait engager des centaines de traducteurs diplômés additionnels pour gérer le nombre grandissant de documents à publier et à distribuer. C’était le démarrage de l’introduction d’un système de traduction automatique pour les besoins des institutions européennes et le départ pour la mise en service de SYSTRAN au Luxembourg. Il existe deux récits de la manière d’adoption de SYSTRAN. Le premier récit crédite aux institutions européennes le don d’une vue à longue distance en ayant cherché pro-activement un système sur le marché. Le deuxième récit dit que c’était l’initiative de Peter Toma qui cherchait un marché européen pour son produit SYSTRAN. La vérité se trouve probablement au milieu. Il est toutefois établi que Peter Toma présentait en juin 1975 un prototype SYSTRAN anglais-français (développé par sa filiale canadienne WTC-C) à la Commission Européenne à Luxembourg et que celle-ci évaluait un deuxième produit appelé TITUS, conçu par l’Institut Textile de France. Le projet TITUS a été retiré pendant les négociations du fait qu’il ne pouvait pas traduire des textes complets. Comme SYSTRAN pouvait être utilisé sans modification sur un IBM 360, ordinateur que la Commission possédait à cette époque, un premier contrat pour l’utilisation du système SYSTRAN par les institutions européennes a été signé fin 1975 avec WTC. Il portait sur l’adaptation du projet-pilote anglais-français aux besoins de la Commission, et le développement d’un début de système français-anglais. Le chef de projet de la Commission était Loll Rolling, responsable des développements linguistiques et technologiques dans le domaine de l’information à la DG XIII, la direction générale qui gérait également le projet Euronet-Diane à l’époque.

Un des premiers contractants externes de la Commission Européenne pour le projet SYSTRAN était la société Informalux S.A. domiciliée à Rodange. Elle a été constituée en 1977 avec le slogan centre d’énergie informatique. Les actionnaires majoritaires étaient InfoArbed et la Banque Générale, Léonard Siebenaler était le directeur général.

Six traducteurs diplômés des institutions européennes ont été affectés au projet pour assister les informaticiens au développement. Après quelques mois, il ne restait qu’un seul traducteur qui faisait confiance au projet, Ian M. Pigott. Les autres étaient retournés à leurs anciens postes de travail et s’étaient solidarisés avec la majorité des traducteurs et du personnel administratif des institutions européennes qui contestait l’utilité du projet de traduction automatique. Dans la suite Ian M. Pigott a été désigné comme chef de projet SYSTRAN et il contribuait à faire évoluer le système sensiblement. Au début des années 1980 le système permettait de traduire des textes anglais en français et en italien et des textes français en anglais, avec un taux d’erreurs suffisamment bas pour faciliter la tâche des traducteurs humains à produire des traductions avec la qualité voulue. De plus en plus d’employés des institutions européennes commençaient à apprécier cet outil.

Une licence SYSTRAN a été vendu au Japon en 1980, combinée avec la création d’une société locale Systran Corporation. En juin 1982, une société luxembourgeoise Systran International GmbH a été constituée pour commercialiser le système de traduction automatique SYSTRAN. Le registre de commerce et des sociétés luxembourgeois nous renseigne que les 500 parts de la société étaient détenues par le professeur universitaire allemand Helmut Fischer (495 parts) et l’informaticien Cay-Holger Stoll (5 parts), résidant à Gonderange. Ce dernier était membre de l’équipe projet SYSTRAN comme linguiste et figurait comme gérant de la nouvelle société qui a cessé ses activités en 1987.

En 1983, InfoArbed et Informalux ont créé la joint-venture ECAT – European Center for AutomaticTranslation s.à r.l. Chaque actionnaire détenait 2000 parts. En juillet 1984 le capital de cette société a été doublé et les 4000 nouvelles parts ont été souscrites par Systran International GmbH. Après la liquidation de cette société quelques années plus tard, la dénomination sociale de ECAT a été changé en TELECTRONICS s.à r.l. en 1991.

En février 1986, une conférence mondiale SYSTRAN a eu lieu à Luxembourg. Dans l’introduction, Peter Toma racontait pourquoi il avait demandé un faible montant pour la mise à disposition du logiciel SYSTRAN à la Commission Européenne. Il soulignait que son principal objectif était le maintien de la paix et qu’une meilleure communication entre les pays européens, grâce à la traduction automatique, constituait un moyen pour y parvenir. Il annonçait également qu’il avait vendu récemment l’ensemble de ses sociétés et des droits et licences SYSTRAN (à l’exception de la filiale japonaise) à un fabricant de robinets industriels en France, la famille Gachot, qui souhaitait diversifier ses activités. Avec les revenus de cette vente Peter Toma comptait organiser deux projets de taille dans l’intérêt du maintien de la paix. Le premier projet était l’organisation d’un symposium international au sujet de la résolution de conflits prévu le 28 octobre 1986 à l’Université d’Otago en Nouvelle-Zélande. Le deuxième projet était la création de l’université internationale Aorangi privée à Dunedin en Nouvelle-Zélande. Le symposium a effectivement eu lieu, toutefois une année plus tard que révue, du 26.10 au 5.11.1987. Quant à l’université privée, la seule référence que j’ai trouvé est le nom marqué sur le brevet européen accordé à Peter Toma pour son application SYSTRAN. C’est le premier brevet accordé dans le domaine de la traduction automatique. En 1997, on retrouve Peter Toma avec une contribution My First 30 Years with MT où il figure comme président de Voxtran Inc, avec une adresse en Allemagne. Il est décédé en 2010, la même année où la mise hors service de SYSTRAN auprès des institutions européennes a eu lieu.

Il est temps de retourner en Europe. En 1986, le siège sociale de Systran a été transféré à Paris et la gestion de la société mère Systran S.A. a été assurée par Jean Gachot. Son fils Denis Gachot était déménagé en Californie pour diriger les filiales Latsec et WTC à La Jolla. En 1989, Denis Gachot a présenté The SYSTRAN Renaissance avec l’annonce de plusieurs nouveautés, entre autres des versions SYSTRAN pour PC, la location du logiciel SYSTRAN, l’accès à distance par Telenet et même un accès Minitel pour le grand public en France.

Traduction automatique en ligne sur Minitel proposée par Gachot

Malgré ces innovations, la réussite financière n’était pas au rendez-vous pour la famille Gachot. En 1993 les activités SYSTRAN ont été cédées à quelques anciens actionnaires minoritaires, parmi eux Dimitrios Sabatakakis qui dans la suite a dirigé le groupe Systran pendant vingt ans.

En 1996 l’équipe de développement et de maintenance SYSTRAN à Luxembourg, composée de linguistes, traducteurs et informaticiens, était passée de deux personnes à une quarantaine. La Commission Européenne planifiait de confier l’exploitation du système au Centre de traduction des organes de l’Union Européenne (CdT) qui a été établi à Luxembourg en 1994. Le CdT n’est pas attaché à la Direction Générale Traduction de la Commission Européenne, mais il dispose de sa propre personnalité juridique. Dans ce contexte le député européen Ben Fayot avait posé la question écrite E-2286/96 à la Commission au sujet de l’obligation morale d’incorporer l’équipe SYSTRAN dans le CdT. La Commission précisait que le personnel était mis à disposition par des firmes privées depuis vingt ans, sous contrats temporaires renouvelés, et que le recrutement d’agents relevait de la seule compétence du CdT.

En mars 1996, une société TELINGUA s.à r.l. a été constituée par Telindus, probablement dans le contexte du remaniement des contrats par les institutions européennes. En septembre 1997 cette société a été convertie en société anonyme Systran Luxembourg par les actionnaires Systran S.A. France (250 parts), Telindus (175 parts), Norbert von Kunitzki (50 parts) et Piere Musman (25 parts). Le contrat SYSTRAN avec la Commission Européenne a été cédé à Systran Luxembourg.

Au niveau international, le groupe Systran avait réussi à décrocher des contrats auprès de plusieurs clients prestigieux comme la NASA, Ford, Price Waterhouse Coopers, Xerox. En décembre 1997, Digital Equipment Corporation et Systran S.A. avaient lancé le premier service de traduction automatique sur le web, AltaVista Translation Service, au surnom de Babelfish. Les langues française, allemande, italienne, espagnole, portugaise et anglaise ont été supportés. Jusqu’en 2007 le service Google Translate était également basé sur le système SYSTRAN.

Au Luxembourg les sociétés Informalux S.A. et Telectronics s.à r.l. ont fusionné en 2001 la nouvelle entité a été dénommée TELECTRONICS S.A. Elle est restée active pendant presque vingt ans et a été absorbée par Proximus Luxembourg S.A. en 2020.

En 2004 Pierre Musman est sorti du Conseil d’Administration de Systran Luxembourg S.A. et Norbert Kunitzki est décédé en 2005 suite à une chute dans les montagnes. A partir de ce moment Systran Luxembourg a été administré uniquement par Denis Gachot et par Dimitrios Sabatakakis (PDG de Systran S.A France). Guillaume Naigeon de Systran S.A France assurait la fonction de commissaire aux comptes.

En 2013 la société coréenne SLCI a lancé avec succès une offre publique d’achat (OPA) pour acquérir Systran. Avec l’obtention de 85% des actions de Systran par SLCI, l’acquisition a été conclue à Seoul en mai 2014. Les administrateurs français ont quitté la société Systran Luxembourg S.A. et ont été remplacés par les administrateurs coréens Ji Changjin, Kim Dong Pil et Park Ki-Hyun.

Dimitrios Sabatakakis et Park Ki-Hyun à la conférence de presse à Seoul en 2014

Pendant une année Chang-Jin Ji et Guillaume Naigeon assuraient l’intérim de PDG. En juillet 2015, Jean Senelart, un ingénieur et informaticien linguistique de renom, a pris les rênes du groupe Systran. Il avait rejoint Systran en 1999, d’abord comme chef de projet, ensuite comme directeur des équipes R&D, avec lesquelles il avait lancé quatre générations de produits SYSTRAN. En 2008 il est devenu Chief Scientist et en 2014 Global CTO du groupe. Mais le jeu des chaises musicales n’était pas encore fini. En août 2020, la majorité des actions du groupe Systran a été achetée par un consortium d’investisseurs institutionnels coréens: STIC Investments, SoftBank Korea, Korea Investment Partners et Korea Investment Securities. La présidence et direction du groupe ont été confiées en mai 2022 à Vincent Godard. De formation ingénieur, il avait occupé le poste de Directeur Commercial de 2009 à 2013 auprès de Systran, ce qui facilitait sa prise de fonction. Jean Senelart continue de siéger au Conseil d’administration de Systran en tant que conseiller scientifique.

En 2022 Systran Luxembourg S.A. est administrée complètement par Systran S.A. France, le commissaire aux comptes est la société luxembourgeoise F.C.G. S.A. La filiale luxembourgeoise et la maison mère semblent se porter bien. Systran est toujours considéré comme pionnier et leader du marché de la traduction automatique, avec des technologies basées sur l’intelligence artificielle très innovantes.

page d’accueil sur le site web de Systran

Litige Systran – Commission Européenne

Une épisode dans l’histoire farfelue de Systran au Luxembourg s’est déroulée en dehors des activités techniques et commerciales et mérite d’être racontée. Comme les institutions européennes ne pouvaient pas conclure des contrats de longue durée avec des firmes privées pour la mise à disposition de personnel spécialisé en linguistique et en informatique, ces spécialistes ont été transférés tous les quelques années à une autre entreprise qui signait un nouveau contrat. Comme le groupe Systran faisait partie d’une façon ou d’une autre de ces différents contractants, il y avait toujours moyen de régler des problèmes éventuels au niveau des licences SYSTRAN.

Tout changeait lors d’un appel d’offre lancé en octobre 2003 par les institutions européennes sans la prise en compte des intérêts du groupe Systran. L’appel d’offres at été remporté par la société luxembourgeoise Gosselies S.A. qui n’avait aucune expertise en matière de linguistique informatique. La société anonyme Gosselies a été constituée en 1994 et liquidée en 2011. Dans un article du Lëtzebuerger Land du 23.12.2010, la journaliste Sophie Mosca estimait que le fait que le ministre luxembourgeois de l’Économie de l’époque, Henri Grethen, était actionnaire de Gosselies et que son épouse assurait la gestion, avait pesé dans ce choix. Ce contrat a incité la société Systran S.A. France et sa filiale luxembourgeoise à déposer de suite une plainte pour violation des droits d’auteur contre la Commission Européenne. Ce n’est qu’en janvier 2007 que le groupe Systran a réussi à introduire une action en réparation devant la Cour de Justice Européenne. Et il fallait attendre presque 3 ans jusqu’à la réception d’une réponse. Le 16 décembre 2010 le Tribunal de l’union européenne a condamné la Commission à verser au groupe Systran une indemnité forfaitaire de 12 001 000 euros. C’était une première. Le PDG de Systran Dimitrios Sabatakakis s’est félicité et tirait son chapeau à la justice européenne. Mais il s’était réjoui trop tôt. Deux mois plus tard la Commission Européenne a introduit un pourvoi dans ce litige. Et comme les rouages de la justice sont lents, ce n’est que le 18 avril 2013 que la Cours de Justice européenne a annulé son jugement antérieur et qu’elle a renvoyé l’affaire devant les tribunaux nationaux.

Il semble que dans la suite un arrangement à l’amiable a été négocié en 2017 entre les institutions européennes et le groupe Systran et qu’une somme de quelques millions euros a été versée à Systran comme dédommagement. Cette transaction était à l’origine d’un autre procès judiciaire, cette fois entre la société coréenne SLCI et les anciens actionnaires de Systran. Les conditions de l’OPA, finalisée en 2014, stipulaient que SLCI devait reverser aux vendeurs des actions une partie d’une éventuelle indemnisation par la Commission Européenne. Comme SLCI, respectivement ses héritiers, avaient manqué à cette obligation, l’affaire s’est terminée devant les tribunaux. Le complément de prix dû aux anciens actionnaires a été payé en mars 2020.

Cette épisode termine mon récit sur l’histoire de Systran durant un demi-siècle. Dans les prochains chapitres nous allons découvrir les autres projets de traduction automatique qui touchent le Luxembourg et qui ont également une histoire passionnante. Il reste à souligner que même en 2022 Systran continue à traduire bise en Kuss au lieu de Nordwind.

Traduction en temps réel sur la plateforme SYSTRAN Translate en 2022

EUROTRA

Lors de la mise en place de SYSTRAN en 1976, il n’y avait pas seulement de la résistance auprès du personne des services de traduction des institutions européennes, mais également beaucoup de critiques de la part de linguistes dans les universités en Europe qui reprochaient à la Commission Européenne d’acheter un produit américain au lieu de promouvoir le savoir-faire européen. Le directeur général de la DG XIII, Raymond Appleyard, et le directeur responsable pour la gestion de l’information à la DG XIII, Georges J. Anderla, étaient sensibles à ces arguments et proposaient le lancement d’un projet européen de traduction automatique, tout en continuant à supporter la solution pragmatique SYSTRAN. Le projet, appelé EUROTRA, n’a été approuvé qu’en 1982 par le Conseil Européen et par le Parlement Européen et il n’a démarré qu’en 1985. Malgré un investissement de 70 millions euros pendant 10 ans, le système n’est jamais devenu opérationnel. Bryan Oakley a expliqué les raisons de cet échec dans sa contribution To Do the Right Thing for the Wrong Reason; the EUROTRA Experience.

MT@EC

Le nombre de paires de langues supportées par SYSTRAN ne cessait de croître, mais le travail lexicographique sous-jacent rendait difficile l’extension de la couverture aux nouvelles langues résultant des élargissements successifs de l’Union européenne. En décembre 2010 le système SYSTRAN a été arrêté et remplacé en 2013 par MT@EC, un système de traduction automatique basé sur les statistiques et exploitant les énormes corpus bilingues et multilingues des institutions européennes tels qu’Euramis. S’appuyant sur le système à source ouverte Moses, développé à l’Université d’Edimbourg, MT@EC supportait en 2016 plus que 500 paires de langues, avec des degrés divers de fiabilité et de qualité. Mais la durée de vie du projet MT@EC était largement inférieure à celle de SYSTRAN, le système a été rapidement remplacé par eTranslation.

eTranslation

Comme la technologie de l’intelligence artificielle se développait à un rythme stupéfiant, la méthode de traduction automatique fut surpassée par une nouvelle méthode dès 2017. La traduction automatique neuronale était arrivée, rendue possible par les progrès en matière de puissance de calcul faisant sortir l’intelligence artificielle des laboratoires. Cette nouvelle technologie exigeait encore davantage de puissance de calcul, et plus spécifiquement, des processeurs graphiques. Testé depuis 2019, un nouveau service en ligne appelé eTranslation a été ouvert en mars 2020, non seulement pour les institutions européennes, mais également pour les entreprises européennes et pour des professionnels, et ceci à titre gratuit. Markus Foti est le responsable de ce projet.

J’ai testé le service eTranslate avec la traduction française-allemande de la phrase “La bise et le soleil …”. eTranslate propose 3 termes différents pour traduire la bise en fonction du contexte: der Kuss, die Knie et der Bise. Le modèle de traduction utilisé pour eTranslate ne semble donc pas encore être à la hauteur de ses compères Google, Facebook ou IBM. Une copie écran et le texte traduit complet sont affichés ci-après:

Traduction de la fable “La bise et le soleil …” par eTranslation

Der Kuss und die Sonne stritten, und jeder versicherte, er sei der Stärkste, als sie einen Reisenden sahen, der in seinem Mantel vorrückte. Sie waren sich einig, dass derjenige, der es als Erster schafft, dem Reisenden seinen Mantel ausziehen zu lassen, als der Stärkste angesehen wird. So begann der Kuss mit seiner ganzen Kraft zu blasen, aber je mehr sie wehte, desto mehr würde der Reisende seinen Mantel um ihn spannen, und am Ende verzichtete die Knie darauf, ihn zu entfernen. Dann fing die Sonne an zu leuchten und nach einer Weile zog der Reisende, der erwärmte, seinen Mantel aus. So musste der Bise erkennen, dass die Sonne die stärkste von beiden war.

Si vous souhaitez traduire des textes étrangers en luxembourgeois, c’est en vain. La langue luxembourgeosie n’est pas encore supporté. Il faut s’adresser à Google Translate.

Google Translate

Le service de traduction en ligne Google Translate a été lancé en avril 2006. Il était d’abord basé sur la technologie SYSTRAN. En octobre 2007 Google a remplacé SYSTRAN par sa propre technologie de traduction automatique statistique, supportant 25 languages. En janvier 2010 Google a introduit une version mobile pour Android, une année plus tard une application pour iOS.

Une application de réalité virtuelle pour traduire des mots ou textes, photographiés avec un smartphone ou une tablette, appelée Word Lense, a été intégrée dans Google Translate suite à l’acquisition par Google en mai 2014 de la startup américaine Quest Visual qui avait développé ce système.

En février 2016 Google avait ajouté 13 langues additionnelles à son service Google Translate, dont le luxembourgeois, pour supporter alors un total de 103 langues. Au début ce n’était pas parfait, par exemple Lëtzebuerg ass mei Land a été traduit en Irland ist mein Land.

En novembre 2016 Google a introduit la version neuronale Google Neural Machine Translation (GNMT) de son service de traduction automatique pour 40 langues. GNMT fait partie  du projet Google Brain, lancé en 2011 par Jeff Dean et Greg Corrado des laboratoires de recherche Google X et par Andrew Yan-Tak Ng de l’université de Stanford. En août 2017 le nouveau système a été étendu aux autres langues et le support du luxembourgeois a été bien amélioré.

La traduction de la fable “La bise et le soleil avec Google Translate” est sans fautes

Le service Google Translate est gratuit pour des traductions en ligne de textes courts, mais c’est un service payant qui fait partie des produits Google Cloud pour des traductions de taille.

Prix du service Google Translate Basic

Quelques développeurs indépendants de Google publient sur la plateforme Github des logiciels permettant la traduction gratuite de documents volumineux, en contournant les barrières et restrictions intégrées dans les interfaces publics de Google Translate. Deux exemples sont les projets google-translate-php et google-trans-new.

Mon conseil est de ne pas recourir à de telles solutions qui ne sont pas fiables, illégales et qui portent le risque de voir son adresse IP bloquée par Google pour tous ses services proposés, y inclus la recherche sur le web. Il vaut mieux de passer son temps à explorer des services de traduction amusants comme Fabricius, le service en ligne de Google pour déchiffrer des hiéroglyphes. Cette application fait partie de l’espace dédié à l’Égypte ancienne au sein de sa section Google Arts & Culture, dévoilé le 15 juillet 2020 pour célébrer l’anniversaire de la découverte de la Pierre de Rosette.

Yandex Translate

Les internautes en Russie et dans différents autres pays de l’Est préfèrent utiliser Yandex Translate au lieu de Google Translate. Le service est intégré dans le moteur de recherche de même nom créé en 1997 par Arkadi Voloj. Yandex est une socitété russe dont la maison mère est basée à Amsterdam. Yandex Translate utilise un système statistique de traduction automatique par auto-apprentissage. Ce qui surprend c’est que le service supporte la langue luxembourgeoise. Les résultats de la traduction anglais-luxembourgeois de la fable d’Esope, affichés ci-après, montrent que la qualité de la traduction n’est pas très élevée.

Dans les prochains chapitres nous allons découvrir les projets de traduction automatique à source ouverte de Systran (OpenNMT), de Microsoft (MarianNMT, de Facebook (NLLB), d’Amazon (Sockeye) et de Google (T5, mt5) .

OpenNMT

OpenNMT est le projet de traduction automatique à source ouverte le plus ancien. Yoon Kim, membre du groupe NLP de l’université de Harvard, a lancé en juin 2016 le projet seq2seq-attn sur Github qui est à l’origine du projet. Yoon Kim est aujourd’hui maître assistant au MIT. En collaboration avec Systran, un premier modèle OpenNMT a été publié en décembre 2016. L’auteur principal était Guillaume Klein de Systran. Une première version OpenNMT pour PyTorch a été publiée en mars 2017 (OpenNMT-py), en collaboration avec Facebook Research. Une version pour TensorFlow suivait en juin 2017 (OpenNMT-tf). Le projet OpenNMT est actuellement maintenu par Systran et Ubiqus. L’ancien PDG de Systran, Jean Senellart, est un des administrateurs du forum OpenNMT.

Des modèles de traduction pré-entraînés pour OpenNMT sont rares. Sur le site web OpenNMT on trouve seulement deux modèles : un modèle Transformer anglais-allemand et un modèle BiLSTM allemand-anglais. Le premier est disponible sur la plateforme huggingface.co comme espace de démonstration. J’ai essayé de l’évaluer, mais sans succès. Il semble que le fichier de configuration manque, ce qui peut expliquer la traduction farfelue.

Traduction farfelue anglais-allemand avec OpenNMT sur Huggingface

MarianNMT

MarianNMT est un outil neuronal de traduction automatique entièrement programmé en C++. Pour cette raison il est deux fois plus rapide que OpenNMT si on effectue des tests dans les mêmes conditions. Le projet a été développé à l’Université d’Edimbourg et à l’Université Adam Mickiewicz à Poznań en Pologne, en collaboration avec Microsoft, à partir de 2017.

Le chef de projet était Marcin Junczys-Dowmunt, actuellement scientifique NLP principal auprès de Microsoft. Il est né à Bydgoszcz en Pologne, la ville natale de Marian Rejewski, un mathématicien et cryptologue polonais renommé. En hommage à ce scientifique, Marcin Junczys-Dowmunt a utilisé son prénom comme nom de travail du projet et le nom n’a jamais été changé. La technologie Marian est utilisée par Microsoft pour son service de traduction commercial Microsoft-Translator sur la plateforme Azure. A l’exemple de Google, une version légère est intégrée sans le moteur de recherche Bing de Microsoft pour traduire gratuitement des textes courts. Mais la langue luxembourgeoise n’est pas supportée par Microsoft.

prix de Microsoft pour la traduction sur la plateforme Azure

Une multitude de modèles de traduction pour différentes paires de langues a été publiée par l’Université d’Helsinki sous l’initiative de Jörg Tiedemann, professeur des technologies de language au département des humanités numériques (HELDIG). Ces modèles neuronaux sont connus sous les noms de Helsinki-NLP/opus-mt-xx-yy (xx = langue source, yy = langue cible). Ils ont été entraînés avec les données du corpus public ouvert OPUS, respectivement avec les données de la collection Tatoeba. Sur Huggingface 1.466 modèles sont disponibles, parmi eux le modèle opus-mt-fr-de qui est à l’origine du titre de la présente publication.

Présentation des modèles Helsinki-NLP/opus-mt-xx-yy sur Huggingface

Dans la liste des modèles MarianMT entraînés moyennant le corpus Tatoeba luxembourgeois on trouve un modéle anglais-luxembourgeois et un modèle luxembourgeois-anglais. Après conversion en format PyTorch, j’ai téléchargé les fichiers afférents comme bases de données et comme modèles sur la plateforme Huggingface. J’ai programmé en outre une application pour un espace de démonstration. Hélas le corpus Tatoeba luxembourgeois n’a ni la taille ni la qualité pour obtenir des résultats de traduction valables. Dans l’attente de la découverte d’une base de données plus appropriée pour pouvoir entraîner un meilleur modèle de traduction anglais-luxembourgeois, et éventuellement des modèles luxembourgeois avec d’autres langues comme source ou cible, je laisse la présente version en place sur Huggingface comme preuve de concept.

NLLB (No Language Left Behind)

Précédé par son modèle pytorch/translate, Facebook Research a présenté en 2019 son outil de modélisation de séquences fairseq en source ouverte qui permet, entre autres, de faire de la traduction automatique. A l’instar de OpenNMT et de MarianNMT, des modèles de traduction automatique pré-entraînés pour quelques couples de langues ont été mis à la disposition des chercheurs.

En octobre 2021 Facebook Inc., la maison mère des services Facebook, Instagram, WhatsApp et Messenger, a changé son nom en Meta Platforms Inc. et Facebook AI est devenu Meta AI. Récemment, le 6 juillet 2022, Meta AI a annoncé la mise au point du premier modèle d’intelligence artificielle unique qui permet la traduction en 200 langues différentes avec une qualité de pointe. Ce modèle, appelé NLLB-200, fait partie de l’initiative No Language Left Behind de Meta. Une publication détaillée de 190 pages sur le projet est disponible sur arXiv.

Le modèle NLLB-200 est disponible en plusieurs versions, avec des tailles allant de 4,4 GB (600 millionsde paramètres) jusqu’à 404 GB (54,5 milliards de paramètres. Pour tester NLLB, on a plusieurs possibilités :

  • moyennant un notebook sur Google Colab
  • moyennant l’espace NLLB Translatior sur Huggingface, développé par Narrativa
  • moyennant l’API de Narrativa
  • moyennant la librairie Transfomers de Huggingface
  • à partir du code source NLLB sur Github
Traduction en temps réel luxembourgeois – anglais avec NLLB sur Huggingface

Le code Python pour traduire un texte anglais en luxembourgeois avec la librairie Transformers de Huggingface est montré ci-après comme exemple:

from transformers import AutoModelForSeq2SeqLM, AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("facebook/nllb-200-distilled-600M", use_auth_token=False, src_lang="eng_Latn")
model = AutoModelForSeq2SeqLM.from_pretrained("facebook/nllb-200-distilled-600M", use_auth_token=False)

article = "The North Wind and the Sun were disputing which was the stronger, when a traveler came along wrapped in a warm cloak."
inputs = tokenizer(article, return_tensors="pt")

translated_tokens = model.generate(**inputs, forced_bos_token_id=tokenizer.lang_code_to_id["ltz_Latn"], max_length=100)
tokenizer.batch_decode(translated_tokens, skip_special_tokens=True)[0]
Exécution du code Python pour la traduction anglais – luxembourgeois. Cliquez pour agrandir l’image.

Amazon Translate et Sockeye

Le service de traduction automatique commercial de Amazon repose également sur un projet à source ouverte, appelé Sockeye, disponible sur Github. Les origines du projet remontent à 2017; plus que 70 versions ont été publiées depuis, la version la plus récente ( 3.1.14.) date du 5 mai 2022. Si on passe le test de La bise et le soleil se disputaient … au traducteur Amazon Translate, on s’étonne que la traduction allemande Der Nordwind und die Sonne stritten sich … est correcte. Mais à la deuxième vue on découvre que dans les autres phrases la bise devient der Kuss comme dans la majorité des autres systèmes de traduction.

Traduction en temps réel français – allemand avec Amazon Translate

En été 2022 la langue luxembourgeoise n’était pas encore supportée par Amazon Translate.

Google T5 et mt5

Les premiers modèles neuronaux entraînés pour la traduction automatique étaient basés sur une architecture de réseau de neurones récurrents. Tout a changé en juin 2017 lorsque Google a présenté une nouvelle architecture de réseau neuronal, appelée Transformeur, dans sa publication Attention is All You Need. D’un jour à l’autre les transformeurs, qui sont conçus pour gérer des données séquentielles telles que le langage naturel, sont devenus le modèle de choix pour la traduction automatique. Cela a conduit au développement de systèmes pré-entraînés tels que BERT (Bidirectional Encoder Representations from Transformers) par Google et GPT-1 (Generative Pre-Training Transformer) par OpenAI en 2018.

Fin 2019 Google a introduit son transformeur T5, pré-entraîné avec un vaste ensemble de données C4 (Colossal Clean Crawled Corpus), publié ensemble avec le modèle. Le modèle T5 supporte 4 langues (anglais, allemand, français et roumain) et existe en cinq versions:

  • T5-Small (60 millions de paramètres)
  • T5-Base (220 millions de paramètres)
  • T5-Large (770 millions de paramètres)
  • T5-3B (3 milliards de paramètres)
  • T5-11B (11 milliards de paramètres)

Même si l’application principale du modèle T5 n’est pas la traduction, celle-ci fonctionne entre les quatre langues supportées. Une démonstration de traduction de textes anglais en allemand ou en français est accessible sur Huggingface.

Traduction en temps réel anglais-allemand et anglais-français avec le modèle T5 sur Huggingface

Un modèle multilingue mt5 supportant 101 langues, dont le luxembourgeois, a été présenté par Goggle une année après le modèle T5, en octobre 2020. Comme le modèle mt5 nécessite un réglage fin (finetuning) avant de pouvoir servir pour des applications de traitement du langage, comme la traduction automatique, Shivanand Roy a développé l’outil simpleT5 qui facilite l’entraînement du modèle pour une langue, ou pour un couple de langues déterminées. Un autre chercheur, Thilina Rajapakse, a développé un outil similaire appelé simpletransformers. L’auteur a mis en place un site web dédié pour SimpleTransformers et a publié la contribution How to Train an mT5 Model for Translation With Simple Transformers qui explique comment entraîner le modèle mt5 pour la traduction automatique du paire des langues anglais – cingalais.

Comme le réglage fin des modèles T5 et mt5 nécessitent des puissance de calcul et des tailles de mémoire très élevées, typiquement une TPU (Tensor Processing Unit) comme accélérateur sur Google Colab, je me suis limité à l’entraînement du modéle mt5-small qui a une taille de 1,2 GB. J’ai utilisé le corpus Tatoeba anglais-luxembourgeois pour la formation avecl le script Python affiché ci-après:

import logging
import pandas as pd
from simpletransformers.t5 import T5Model, T5Args

import torch.multiprocessing
torch.multiprocessing.set_sharing_strategy('file_system')

logging.basicConfig(level=logging.INFO)
transformers_logger = logging.getLogger("transformers")
transformers_logger.setLevel(logging.WARNING)

train_df = pd.read_csv("dataset/train.tsv", sep="\t").astype(str)
eval_df = pd.read_csv("dataset/eval.tsv", sep="\t").astype(str)

train_df["prefix"] = ""
eval_df["prefix"] = ""

model_args = T5Args()
model_args.max_seq_length = 72
model_args.train_batch_size = 10
model_args.eval_batch_size = 10
model_args.num_train_epochs = 5
model_args.evaluate_during_training = True
model_args.evaluate_during_training_steps = 30000
model_args.use_multiprocessing = False
model_args.fp16 = False
model_args.save_steps = -1
model_args.save_eval_checkpoints = False
model_args.no_cache = True
model_args.reprocess_input_data = True
model_args.overwrite_output_dir = True
model_args.preprocess_inputs = False
model_args.num_return_sequences = 1
model_args.wandb_project = "MT5 Luxembourgish-English Translation"

model = T5Model("mt5", "google/mt5-small", args=model_args)

# Train the model
model.train_model(train_df, eval_data=eval_df)

Le graphique enregistré sur la plateforme Weights & Biases qui suit montre l’évolution des scalaires pendant l’entraînement dont l’objectif principal est de minimiser les pertes.

On constate que le coefficient de perte train est au début en baisse pour ensuite inverser sa pente, tandis que le coefficient de perte eval augmente continuellement, ce qui signifie qu’il y a un overfitting du modèle du fait que la taille du fichier d’entraînement est trop petit. Cela se confirme si on examine les résultats de la traduction dans mon espace de démonstration sur Huggingface. J’ai programmé une application commune pour comparer les résultats de la traduction anglais-luxembourgeois et vice-versa avec les trois modèles NLLB, MarianNMT et T5/mt5.

En entrant les mêmes textes dans l’application Goggle Translate, on se rend compte de la performance supérieure de ce modèle dont le code est fermé et propriétaire.

Métriques

Dans les chapitres précédents nous avons procédé à une évaluation subjective de la qualité de traduction des différents modèles basés sur l’intelligence artificielle. Il existe toutefois de nombreuses métriques pour procéder à une évaluation objective. Quelques exemples sont relevés ci-après :

  • BLEU (Bilingual Evaluation Understudy)
  • ROUGE (Recall-Oriented Understudy for Gisting Evaluation)
  • METEOR (Metric for Evaluation of Translation with Explicit Ordering)
  • NIST (National Institute of Standards and Technology)
  • LEPOR ((Length Penalty, Precision, n-gram Position difference Penalty and Recall)
  • chrf++ (Character n-gram F-score)

Pour exprimer la qualité d’une traduction automatique, on mesure la différence entre la traduction machine et une, ou plusieurs, traductions de référence créées par l’humain pour une même phrase source. Il faut donc disposer d’un corpus de phrases pour la langue source et pour la langue cible. Facebook a publié récemment sur Github un corpus public de référence appelé Flores-200. Il se compose d’un fichier csv pour chacune des 200 langues supportées par le modèle NLLB. Chaque fichier inclut 998 phrases présentées dans le même ordre, ce qui permet d’automatiser aisément l’évaluation d’un nouveau modèle de traduction machine pour un couple de langues déterminées. Les trois premières phrases en anglais et en luxembourgeois du corpus Flores-200 sont affichées ci-après à titre d’exemple.

On Monday, scientists from the Stanford University School of Medicine announced the invention of a new diagnostic tool that can sort cells by type: a tiny printable chip that can be manufactured using standard inkjet printers for possibly about one U.S. cent each.
Lead researchers say this may bring early detection of cancer, tuberculosis, HIV and malaria to patients in low-income countries, where the survival rates for illnesses such as breast cancer can be half those of richer countries.
The JAS 39C Gripen crashed onto a runway at around 9:30 am local time (0230 UTC) and exploded, closing the airport to commercial flights.
……………..
E Méindeg hu Wëssenschaftler vun der Stanford University School of Medicine d’Erfindung vun engem neien Diagnosgeschier ugekënnegt, dat Zellen no Typ sortéiere kann: e klengen dréckbaren Chip, dee mat Hëllef vun engem Standardtëntestraldrécker fir méiglecherweis ongeféier een US-Cent d’Stéck hiergestallt ka ginn.
Féierend Fuerscher soen, datt dëst d’Fréierkennung vu Kriibs, Tuberkulos, HIV a Malaria bei Patienten a Länner mat nidderegem Akommes brénge kéint, wou d’Iwwerliewenstauxe bei Krankheeten ewéi Broschtkriibs hallef esou héich kënne sinn ewéi a méi räiche Länner.
D’JAS 39C Gripen ass géint 9.30 Auer Lokalzäit (0230 UTC) op eng Rullbunn gestierzt an explodéiert, wouduerch de Flughafe fir kommerziell Flich gespaart gouf.
……………..
Trois premières phrases du corpus Flores-200 anglais et luxembourgeois

Après la comparaison des résultats, un score est attribué pour chaque phrase traduite. Puis une moyenne est calculée sur l’ensemble du corpus afin d’estimer la qualité globale du texte traduit. Parmi la multitude des métriques d’évaluation MT, BLEU constitue la métrique la plus populaire et la moins coûteuse. Elle a été développée en 2002 par Kishore Papineni pour IBM. La formule mathématique pour générer les scores se base sur des unigrammes, bigrammes, trigrammes et quadrigammes (n-grammes), mais je vais vous épargner les explications afférentes qui dépassent le cadre de la présente description. Je me limite à présenter quelques résultats représentatifs extraits des métriques pour la traduction automatique des 200 x 200 couples de langues supportés par les modèles NLLB. Les scores afférents sont exprimés avec la métrique chrf++ qui fournit des évaluations plus pertinentes que la métrique BLEU.

Direction TraductionMétrique chrf++
en -> de62,8
en -> fr69,7
en -> lb56
de -> en67,5
de -> fr61,4
de -> lb52
fr -> en68,4
fr -> de56,3
fr -> lb49,6
lb -> en69,6
lb -> de60,1
lb -> fr62,4
lb -> zho12,9
lb -> ja24,6
Métriques mesurées avec corpus Flores pour modèle de traduction automatqiue NLLB

La meilleure qualité a été calculée pour la traduction luxembourgeois – anglais (chrf++ = 69,6), la plus basse pour la traduction luxembourgeois – chinois (chrf++ = 12,9).

Conclusions

J’utilise la traduction automatique depuis plus de 10 ans dans le cadre de mes projets de recherche dans le domaine de l’intelligence artificielle pour lire des informations publiées sur le web dans des langues exotiques, comme le coréen, le chinois, le russe etc. Même si la qualité de la traduction n’est pas parfaite, elle est suffisante pour comprendre l’essentiel du contenu. J’apprécie la traduction de documents étrangers en luxembourgeois sur Google Translate lors de la rédaction d’articles techniques en luxembourgeois que je partage, de temps en temps, sur les réseaux sociaux. Le support de la langue luxembourgeoise dans les modèles de traduction machine à source ouverte récents, en combinaison avec la mise à disposition d’outils de programmation libres sur les plate-formes Github et Huggingface, facilitera le fin réglage des modèles de traduction luxembourgeois pour des domaines spécifiques, par exemple pour la biologie, la médecine, les finances etc. Si on passe en revue l’histoire de la traduction automatique, on constate une évolution exponentielle. Il y a eu plus d’innovations et de changements au courant des deux dernières années que pendant la période de 50 ans (de 1970 à 2019) précédente.

Bibliographie

Livres

Magazines

Couverture de l’édition 100 du magazine MultiLingual, décembre 2008

Articles sur le web

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

Furby 2012 and Furby BOOM

Last update : May 25, 2021

Furbies were the first successful attempt to produce and sell domestically-aimed robots. They were launched in 1998. In April 2012, it was announced that Hasbro will be making a new line of Furbies, which was released in September 2012. The Furby 2012 was first launched in six colors, one month later four other colors were added. A second generation of six Furbies, with styleable tufts of hair on their heads, was relased in December 2012. Compared to the original Furby, the Furby 2012 has more expressive LCD eyes, a wider range of motions, its own iOS and Android app (to feed, care and control the Furby), and the ability to adapt its personality in reaction to user behavior.

Furby 2012

Furby 2012

The Furby 2012 has 6 personalities :

  • Angry Personality : Furby will act grumpy and irritable. Get this by overfeeding.
  • Diva Personality : Furby may turn into this personality if it listens to music for an extended period of time.
  • Valley Girl Personality : Furby resembles a stereotypical teenage girl. Get this by talking for a long time.
  • Cute Personality : Furby will act friendly and sing a lot. Get this by repeatedly petting it.
  • Crazy Personality : Comedic and funny personality. Furby will often laugh like crazy over almost anything. Get by shaking and pulling tail.
  • Default Personality : When you put the batteries in for the  first time. To get it back, hold it upside down, hold the tongue, then hold the tail for a few seconds. Instead of flashing eyes, furby will reboot.

In February 2013 the Furby Party Rockers were launched. They can sing and chat with Furby 2012 and with other Party Rockers, have a new voice and can be used with the app’s for IOS and Android. They only speak Furbish. There are 4 rockers in the 1st generation (Fussby, Loveby, Twittby, Scoffby) and 2 rockers in the 2nd generation (Wittby and Nerdby).

Furby Party Rockers : Fuusby, Twittby, Lovely, Scoffby, Wittby, Nerdby

Furby Party Rockers : Fussby, Twittby, Lovely, Scoffby, Wittby, Nerdby

In August 2013, the new Furby Boom was launched and became the No1 best seller this Christmas 2013. Furby Boom is packed with loads of new features and can be encouraged to lay eggs into your tablet, via the new iOS and Android app, which then grow to become a small virtual Furby (Furbling) that you can then feed, maintain and play games with, like the former Tamagotchis. By caring the Furbling you earn Furbucks to unlock other features and extras. Up to 50 eggs can be collected and will unlock a whole Furby Boom City.

Furby Boom : Blue Waves, Zigzag, Stripes, Polka Dots, Triangles, Peacock

Furby Boom : Blue Waves, Zigzag, Stripes, Polka Dots, Triangles, Peacock

The first species of Furbies (1998 – 2005) communicate with infrared ports. The Furbies 2012 and later use an audio protocol to communicate with other nearby Furbies and with the apps. Igor Afanasyev (iafan) from Moscow, Russia, analyzed and recreated this audio protocol to communicate with Furbies using a computer.

Links

  • https://chapelierfou.org/blog/a-usb-furby.html
  • https://github.com/paullouisageneau/usb_furby

OpenWorm Caenorhabditis elegans

Last update : August 9, 2013

OpenWorm aims to build the first comprehensive computational model of the Caenorhabditis elegans (often called C. elegans, even if this term is a species abbreviation), a free-living, transparent nematode (roundworm), about 1 mm in length, that lives in temperate soil environments. With only a thousand cells, it solves basic problems such as feeding, mate-finding and predator avoidance.

OpenWorm background

Research into the molecular and developmental biology of C. elegans was begun in 1974 by Nobel prize laureate Sydney Brenner and it has since been used extensively as a model organism for development biology. Sydney Brenner founded the Molecular Sciences Institute in Berkeley, California.

Caenorhabditis elegans (Wikipedia)

Caenorhabditis elegans (Wikipedia)

The basic anatomy of C. elegans includes a mouth, pharynx, intestine, gonad, and collagenous cuticle. C. elegans has two sexes: hermaphrodites and males (0.05%).

C. elegans is one of the simplest organisms with a nervous system. In the hermaphrodite, this comprises 302 neurons whose pattern of connectivity (connectome) has been completely mapped and shown to be a small-world network. C. elegans was also the first multicellular organism to have its genome completely sequenced. The genome consists of six chromosomes (named I, II, III, IV, V and X) and a mitochondrial genome. The sequence was first published in 1998 with regular updates, because DNA sequencing is not an error-free process. The latest version released in the WormBase () is WS238.

WormBase is an international consortium of biologists and computer scientists dedicated to providing the research community with accurate, current, accessible information concerning the genetics, genomics and biology of C. elegans and related nematodes. Founded in 2000, the WormBase Consortium is led by Paul Sternberg of CalTech, Paul Kersey of the EBI, Matt Berriman of the Wellcome Trust Sanger Institute, Lincoln Stein of the Ontario Institute for Cancer Research, and John Spieth of the Washington University Genome Sequencing Center. Richard Durbin served as a principal investigator until 2010.

Additional informations about C. elegans are available at the following links :

  • WormBook – a free online compendium of all aspects of C. elegans biology
  • WormAtlas – an online database for behavioral and structural anatomy of C. elegans
  • WormClassroom – an education portal for C. elegans
  • WormImagethousands of unpublished electron micrographs and associated data
  • WormWeb.org – an interactive cell lineage and neural network
  • Cell Exlorer – a 3D visualization tool for the structural anatomy of C. elegans
  • C. elegans movies

OpenWorm open source project

Despite being extremely well studied in biology, the C. elegans still eludes a deep, principled understanding of its biology. The OpenWorm project uses a bottom-up approach, aimed at observing the worm behaviour emerge from a simulation of data derived from scientific experiments carried out over the past decade. To do so, the data available in the scientific community is incorporated into OpenWorm software models.

An open-source simulation platform called Geppetto is used by the OpenWorm Project to run these different models together. An OpenWorm Browser enables ready access to a cell-by-cell 3D representation of the nematode C. elegans in a WebGL enabled browser. The 3d browser was created with the help of the Google Labs Body Browser team. The browser has also been ported to an iOS app to support the project. All the code produced in the OpenWorm project is Open Source and available on GitHub.

The OpenWorm project is realized by a highly motivated group of individuals who believe in Open Science. The OpenWorm website includes a Blog, a Wiki, a FAQ and Donate page, lists about milestones, projects, events, publications, getting started and getting involved resources and more.

The core team members of the OpenWorm project are :

[jwplayer player=”1″ mediaid=”13386″]

Artificial General Intelligence

Last update : August 7, 2013

Artificial General Intelligence (AGI) is an emerging research field aiming at the building of thinking machines; that is, general-purpose systems with intelligence comparable to that of the human mind (and perhaps ultimately well beyond human general intelligence). While this was the original goal of Artificial Intelligence (AI), the mainstream of AI research has turned toward domain-dependent and problem-specific solutions; therefore it has become necessary to use a new name to indicate research that still pursues the Grand AI Dream. Similar labels for this kind of research include Strong AI, Human-level AI, etc. Other AI researchers prefer the term of Synthetic Intelligence.

The research on AGI is interdisciplinary, focused on whole systems and includes scientific and philosophical investigation and software engineering.

Artificial General Intelligence Research Institute

The term AGI was first used by Mark Avrum Gubrud in November 1997. Fifty years after the launch of the Artificial Intelligence Project in Dartmouth in 1956, Ben Goertzel, Phil Goetz, Pei Wang and Bruce Klein organized the first Artificial General Intelligence Research Institute (AGIRI) workshop in May 2006 to bridge the gap between narrow AI and general-purpose AI. The AGI Research Institute was founded in 2001 with the mission to foster the creation of powerful and ethically positive Artificial General Intelligence. The institute is sponsored by Novamente LLC.

The aspects of Artificial General Intelligence are explained by Pei Wang and Ben Goertzel  in the introduction of their book Advances in Artificial General Intelligence (IOS Press, 2007).

The first conference on Artificial General Intelligence (AGI-08) was organized by AGIRI in March 2008 in Memphis, Tennessee, USA, in association with the Association for the Advancement of Artificial Intelligence (AAAI).

Artificial General Intelligence Society

Ben Goertzel, Pei Wang, Joscha Bach and others founded in September 2011 the Artificial General Intelligence Society (AGI society), a nonprofit organization with the following goals:

  • promote the study of artificial general intelligence (AGI), and the design of AGI systems
  • facilitate co-operation and communication among those interested in the study and pursuit of AGI
  • hold conferences and meetings for the communication of knowledge concerning AGI
  • produce publications regarding AGI research and development
  • publicize and disseminate by other means knowledge and views concerning AGI

The organization of the annual Artificial General Intelligence conference series, which was started in 2008 by AGIRI, has been taken over by the AGI society. The next conference (AGI-2013) will be held in Beijing, China, July 31 – August 3, 2013.

Some additional informations about AGI are available at the following links :

More links are provided in the updated post about Artificial Intelligence.

PAL : personalized assistant that learns

cognitive assistant

DARPA PAL program

The DARPA PAL (the Personalized Assistant that Learns) program focused on improving the way that computers support humans through the use of cognitive systems. These are systems that reason, learn from experience and accept guidance in order to provide effective, personalized assistance. DARPA’s five-year contract (2003 – 2008) brought together over 300 researchers from 25 of the top university and commercial research institutions, with the goal of building a new generation of a cognitive personalized assistant that can reason, learn from experience, be told what to do, explain what they are doing, reflect on their experience, and respond robustly to surprise. Among the contributors were the Carnegie Mellon University, the University of Massachusetts, the University of Rochester, the Institute for Human and Machine Cognition, Oregon State University, the University of Southern California, and Stanford University, as well as from SRI.

SRI International has led the PAL Framework effort to make available many of the successful machine learning and reasoning technologies developed on the PAL program for use by the broader DARPA, research, and military communities. SRI was founded as Stanford Research Institute in 1946 and is a nonprofit research institute headquartered in Menlo Park, California. The institute formally separated from Stanford University in 1970 and is now one of the largest contract research institutes in the world.

One of the components of PAL was CALO (Cognitive Assistant that Learns and Organizes), an artificial intelligence project that attempted to integrate numerous AI technologies into a cognitive personalized assistant. The CALO effort has had many major spin-offs :

  • the Siri intelligent software assistant that is now part of the Apple iOS
  • the news aggregation service Trapit
  • the artificial intelligence-enhanced calendar application for iOS, Tempo AI
  • the travel guide app Desti