archive | synthèse vocale RSS pour cette section

Piloter mon robot à la voix ou les commandes vocales Android.

Pour mon robot, j’avais prévu d’installer un composant me permettant de donner quelques instructions avec ma voix. Je n’ai pas encore mis en place ce système. Cependant, mes recherches et ma soif de découverte font que j’ai trouvé un moyen assez sympa de piloter mon robot avec la voix : en utilisant mon téléphone Android.

 

Reconnaissance Vocale

micro

On parle bien ici de « reconnaissance vocale » et non de « commandes vocales ». Cela signifie que le système est capable de reconnaître une phrase prononcée par l’utilisateur et va le traduire sous forme de texte. Celui-ci va ensuite pouvoir être exploitable par un programme.

L’inconvénient d’un tel système est que cela demande une puissance de calcul phénoménale. Autant vous dire que cela ne sera jamais le cas sur mon robot (sauf peut être en 2153).

 

Synthèse Vocale

synthèse vocale

La synthèse vocale quand à elle est le fait que le matériel est capable de prononcer du texte. Souvent la voix est « synthétisée » (ou digitalisée). Plusieurs algorithmes existent et permettent d’avoir une qualité plus ou moins excellente.

Sur les systèmes tel que Windows et Android, il est possible d’installer différentes voix pour la synthèse vocale (masculines, féminines). Certaines sont gratuites, et d’autres sont payantes (souvent de meilleure qualité).

 

Android et ces deux technologies

okgoogle

Sur les téléphones Android, nous avons ces deux systèmes réunis et je dois dire que ça fonctionne plutôt pas mal.

Le téléphone n’a pourtant pas toute la puissance de calcul pour faire de la reconnaissance vocale. Google utilise la solution suivante : des serveurs dédiés qui s’occupent de faire les calculs (et à mon avis ils ont de très très gros serveurs). En gros le téléphone capte l’audio, l’envoie aux serveurs de google qui renvoie le texte qui est censé correspondre (je dis censé parce que de temps en temps, il y a quelques surprises).

 

Programmation simple d’Android avec App Inventor

Il fallait donc développer une application spécifique et je pensais au départ que cela allait être infaisable à mon niveau. Et bien non : j’ai découvert cette vidéo qui décrit comment faire allumer et éteindre une led avec Android et une carte Arduino en utilisant le bluetooth (voici le lien pour ceux qui sont intéressés).

Recherche Google App inventor

Ce qui était génial, c’est qu’il n’était pas nécessaire d’être un ingénieur pour développer pour Android avec ce système. J’avais déjà une liaison bluetooth entre mon téléphone et mon robot (voir mon article précédent sur cela ici) et je n’avais même pas besoin de modifier le programme du robot : il suffit juste que le nouveau programme lui envoie les bonnes instructions.

Create apps

App Inventor permet de développer des applications pour système Android à partir d’un navigateur internet. Ce système a été développé par le MIT et Il est gratuit.

Projet PLR1_BT

L’interface est assez simple à comprendre (bien qu’en anglais). Il faut ajouter les différents composants au projet et les disposer « visuellement ».

Designer

Cependant, pour la partie graphique, j’ai personnellement « joué » avec la taille des images afin que celles-ci s’affichent bien sur mon téléphone, alors que sur l’écran de développement les images sont « étirées » (comme ci-dessus).

Composants

La programmation s’effectue aussi « visuellement » et non sous forme de lignes de codes. Il suffit d’emboîter des instructions un peu comme les Légos.

Debut programme

La première partie du programme reste identique à celui fait dans la vidéo Youtube faite par « U=RI » :

  • Chargement la liste des adresses bluetooth
  • Connexion du composant bluetooth sélectionné
  • Un « timer » qui vérifie régulièrement si le bluetooth est toujours connecté
  • L’appel de la reconnaissance vocale quand on appuie sur le bouton « micro »

Suite programme

La suite consiste ensuite à interpréter le texte reconnu afin de faire des actions : soit envoie d’une commande par le bluetooth, soit prononciation d’une phrase, soit les deux.

fin programme

Au début de ce traitement, je transforme d’ailleurs le texte en « minuscule » afin de pouvoir comparer les différentes chaines de caractères.

build

Une fois l’application conçue, il est possible de construire un un fichier « apk » (format des programmes d’installation des applications android) en utilisant le menu « Build ». Il ne reste plus qu’à copier ce fichier sur le téléphone et à lancer l’installation directement sur celui-ci et à l’utiliser :

Pour l’instant j’ai implémenté les commandes suivantes :

  • allumes / éteins les leds de la caméra
  • allumes / éteins les leds du bas
  • activer / désactiver les recherche de visages
  • quel est ton nom (ou comment t’appelles-tu)
  • quel age as-tu (ou quel est ton age)
  • éteins-toi

Le reste sera fait au fur et à mesure de mes besoins.

Conclusion du jour.

Au final, pas très compliqué. Un peu long en effet, mais une fois qu’on a compris, cela devient assez simple de donner des instructions vocales au pèlerin. Il faut juste penser aux bons « mots » ou « phrases » pour éviter toute mauvaise interprétation.

Trois inconvénients existent cependant à ce système :

  • Il faut appuyer sur le bouton sur l’écran du téléphone avant de prononcer les commandes : « l’écoute » n’est pas permanente.
  • Il y a un temps de latence entre le moment où on prononce la phrase et le moment où on a la réponse : ceci fait que je ne peux pas l’utiliser pour faire se déplacer le robot à la voix même si le délai est très court.
  • Il ne peut pas fonctionner sans connexion internet : la reconnaissance de google a besoin de ses serveurs en face pour leur puissance de calculs.

Il y a certainement moyen de faire mieux mais ce sera pour une autre fois.

Et voilà une petite vidéo de démonstration du système avec le pèlerin :

A bientôt donc !