Mäi Computer versicht Lëtzebuergesch ze verstoen

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

Bibliographie

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

Mise à jour : 15 avril 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.

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 :

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 :

Bio:Fiction

Bio:Fiction

synth-ethic

Bio:Fiction was the world’s first synthetic biology film festival. The first and original festival took place at the Museum of Natural History in Vienna, Austria, from 13-14th of May 2011. Since then Bio:Fiction is officially on tour around the world. The festival provided information and dialogue about synthetic biology in an attractive, factual and entertaining way.

Synthetic biology aims at applying engineering principles to biology. The DNA of an organism is no longer manipulated, but programmed on a computer and built up from scratch.

The Festival marked also the beginning of the synbio art exhibition Synth-ethics in the Museum, that presented biotech art objects related to synthetic biology. The exhibition featured 10 artist and lasted from May 14th to June 26th, 2011.

The exhibition was produced by Biofaction KG and is part of the Cinema and Synthetic Biology project, funded by GEN-AU ELSA.