Club robotique de Sophia-Antipolis

Accueil > POBOTpedia > Programmation > Explorer > Faire parler un robot

Faire parler un robot

dimanche 17 juin 2012, par Julien H.

La synthèse vocale a fait de bons progrès, tant en accessibilité aux développeurs qu’en qualité sonore.

Les films de science-fiction s’équilibrent entre robots qui parlent et robots qui ne parlent pas. Mais lorsqu’un robot parle, cette fonction devient tout de suite une compétence très remarquable et très identifiable. L’exemple le plus "parlant" [1] est HAL 9000, l’intelligence artificielle des oeuvres de Arthur C. Clarke et porté à l’écran par Stanley Kubrick dans "2001, l’odyssée de l’espace".

Approche générale

Avec la multiplication des ordinateurs et la domination des écrans comme interface homme machine, le niveau de qualité de la synthèse vocale n’est pas celui qu’on pensait atteindre dans la science-fiction des années 60. Mais la perception de l’intelligence des machines par leur capacité à parler n’a pas changé : s’il sait parler, c’est qu’il sait penser. Bien entendu c’est faux, mais comme cette erreur d’analyse s’applique aussi aux hommes, on ne va pas se risquer à lancer un débat...

L’informatique distribuée va dans le sens de machines qui ne parlent pas : non seulement ce serait la cacophonie si l’aspirateur, le frigo, la télé et la vidéo-surveillance se mettaient à nous raconter tout ce qu’ils font, mais cela irait à l’encontre de l’approche ubiquitaire (masquée dans les objets inertes, moins visible qu’une unité centrale / écran / clavier) des années 2000.

Mais avec les récentes initiatives dans les "Smart Homes" et dans l’interconnexion des équipements, on retrouve des dispositifs centralisés (la voiture, la maison) qui pourraient utiliser la voix comme interface de communication simplifiée.

Les projets de l’association Pobot

En ce qui nous concerne, le choix technique qui prévaut depuis 7 ans ne mettait pas la synthèse vocale à portée de nos robots : des micro-contrôleurs existent mais n’ont pas la qualité requise pour nos démonstrations.

Mais avec l’apparition d’ordinateurs de plus en plus petits (du Mini-ITX à la Raspberry Pi en passant par la Mini2440), et comme nos robots prenaient de plus en plus de place (R2-D2, Nono, Gaston, Baba), il est devenu réaliste d’embarquer les logiciels et la puissance de calcul nécessaires.

C’est Nono le Parlobot qui bénéficiera le premier d’une solution complète : destiné à parler pendant des heures, la solution initiale reposait sur l’enregistrement de voix humaine de textes complets, lancés par un séquenceur avec un simple µC AVR et un module mp3 de type SOMO. Mais les logiciels disponibles sur le système GNU/Linux équipant la carte Raspberry Pi nous ont fait changer nos plans.

Explications générales

Pour permettre à un robot de parler, il faut déjà qu’il ait quelque chose à dire. On va donc décomposer la parole en deux étapes : définir les mots à prononcer, et émettre ces sons.

La première partie repose sur un système de transcription phonétique ou "text-to-speech" ou "TTS" : le robot lit un texte (qu’il a composé de façon autonome ou qu’on lui fournit) en épelant les mots et le transforme grâce à des algorithmes propres à la langue du texte en des phonèmes. C’est une façon de découper les mots en sons. On utilise une syntaxe particulière pour noter ces phonèmes sous forme textuelle.

La seconde partie est la synthèse vocale proprement dite : les phonèmes écrits sont lus et les sons correspondant sont envoyés vers un haut-parleur pour être entendus. Le choix de la voix est important, car l’intonation doit correspondre à la langue du texte.

Solution technique retenue

Nous utilisons deux outils pour Nono le Parlobot :

 espeak pour la transcription phonétique
 mbrola pour la synthèse vocale

La page de documentation Ubuntu est suffisamment complète pour bien démarrer. Bien entendu vous retrouverez bientôt l’implémentation particulière mise en oeuvre par le club.


[1Ah ah ah ah !

Un message, un commentaire ?

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.