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

Artificial Intelligence

Last update : August 9, 2013

Artificial intelligence (AI) is the intelligence of machines and the branch of computer science which aims to create it.The term was coined by John McCarthy in 1955. The field of AI research was founded at a conference on the campus of Dartmouth College in the summer of 1956. The attendees, including John McCarthy, Marvin Minsky, Allen Newell and Herbert A. Simon, became the leaders of Artificial Intelligence research for many decades.

Good Old-Fashioned Artificial Intelligence (GOFAI)

AI research began in the mid 1950s after the Dartmouth conference. The field AI was founded on the claim that a central property of humans, intelligence, can be so precisely described that it can be simulated by a machine. The first generation of AI researchers were convinced that this sort of AI was possible and that it would exist in just a few decades.

In the early 1970s, it became obvious that researchers had grossly underestimated the difficulty of the project. By the 1990s, AI researchers had gained a reputation for making promises they could not keep. The AI research suffered from longstanding differences of opinion how it should be done and from the application of widely differeing tools.

The field of AI regressed into a multitude of relatively well insulated domains like logics, neural learning, expert systems, chatbots, robotics, semantic web, case based reasoning etc., each with their own goals and methodologies. These subfields, which often failed to communicate with each other, are often referred as applied AI, narrow AI or weak AI.

The old original approach to achieving artificial intelligence is called GOFAI. The term was coined by John Haugeland in his 1986 book Artificial Intelligence: The Very Idea.

Weak Artificial intelligence

After the AI winter, the mainstream of AI research has turned with success toward domain-dependent and problem-specific solutions. These subfields of weak AI have grown up around particular institutions and individual researchers, some of them are listed hereafter:

Peter Norvig, Google’s head of research, and Eric Horvitz, a distinguished scientist at Microsoft Research, are optimistic about the future of machine intelligence. They spoke recently to an audience at the Computer History Museum in Palo Alto, California, about the promise of AI. Afterward, they talked with Technology Review‘s IT editor, Tom Simonite.

A few AI searchers continue to believe that artificial intelligence could match or exceed human intelligence. The term strong AI, now in wide use, was introduced for this category of AI by the philosopher John Searle of the University of California at Berkeley. Among his notable concepts is the Chinese Room, a thought experiment which is an argument against strong AI.

Strong Artificial Intelligence

Strong AI is the intelligence of a machine that could successfully perform any intellectual task that a human being can. Strong AI is associated with traits such as consciousness, sentience, sapience (wisdom) and self-awareness observed in living beings.

There is a wide agreement among AI researchers that strong artificial intelligence is required to do the following :

  • reason, use strategy, solve puzzles and make judgements under uncertainty
  • represent knowledge, including commonsense knowledge
  • plan
  • learn
  • communicate in natural language
  • integrate all these skills towards common goals

Other important capabilities include the ability to sense (see, …) and the ability to act (move and manipulate objects, …) in the observed world.

Some AI researchers adopted the term of Artificial General Intelligence (AGI) to refer to the advanced interdisciplinary research field of strong AI. Other AI researchers prefer the term of Synthetic Intelligence to make a clear distinction with GOFAI.

The following links provide some informations about the history and the concepts of Artificial Intelligence :

A list of organizations and institutions dealing with Artificial Intelligence is shown below :

“Artificial intelligence is no match for human stupidity!”

Global Brain Metaphor

Last update : August 6, 2013

Global Brain

Global Brain Project

The global brain is a metaphor for the worldwide intelligent network formed by all the individuals of this planet, together with the information and communication technologies that connect them into a self-organizing whole. Although the underlying ideas are much older, the term was coined in 1982 by Peter Russell in his book The Global Brain.

The first peer-refereed article on the subject was written by Gottfried Mayer-Kress and Cathleen Barczys in 1995. The first algorithms that could turn the world-wide web into a collectively intelligent network were proposed by Francis Heylighen and Johan Bollen in 1996. Francis Heylighen reviewed the history of the concept and its usage, he distinguished four perspectives  :

  • organicism
  • encyclopedism
  • emergentism
  • evolutionary cybernetics

These perspectives now appear to come together into a single conception.

Global Brain Group and Institute

In 1996, Francis Heylighen and Ben Goertzel founded the Global Brain Group, a discussion forum grouping most of the researchers that had been working on the subject to further investigate this phenomenon. The group organized the first international conference on the topic in 2001. In January 2012, the Global Brain Institute (GBI) was founded at the Vrije Universiteit Brussel to develop a mathematical theory of the brainlike propagation of information across the Internet. The GBI grew out of the Global Brain Group and the Evolution, Complexity and Cognition research group (ECCO).

The following list provides links to further informations about the global brain :