6. La communication vocale


La communication avec Pepper consiste à lui faire comprendre ce qu’on lui dit et à lui faire parler.

La parole :

Le paquet naoqi_driver sous ROS permet de réaliser cette Tâche facilement, il suffit de publier le message qu’on veut que Pepper prononce sur le topic /Speech. Ce message est affecté à la variable data sous le type std_msgs/String.

rostopic pub /speech std_msgs/String "data: 'Bonjour'"

La reconnaissance vocale:

La société Softbank Robotics a créé NAOqi APIs (Application Programming Interface) qui permet de manipuler les robots (NAO, Pepper et Romeo) et qui est composé de plusieurs modules dont dans le module NAOqi Audio qui permet la reconnaissance vocale, la localisation de la source de voix et plusieurs d’autres tâches.

Pour pouvoir faire parler Pepper on utilise le SDK (Software Development Kit) Pour connecter notre ordinateur au modules de NAOqi plus précisément au module AlSpeechRecognition.

SDK est Un kit de développement logiciel (SDK, également appelé Devkit) est un ensemble d’outils logiciels qui vous permet de développer des applications pour un environnement logiciel ou un périphérique matériel particulier.

Avant de commencer la reconnaissance, le module ALSpeechRecognition doit être alimenté par la liste des phrases à reconnaître.

Une fois démarré, ALSpeechRecognition place dans la clé SpeechDetected, un booléen qui spécifie si un locuteur est actuellement entendu ou non.

Si un locuteur est entendu, l'élément de la liste qui correspond le mieux à ce que le robot entend est placé dans la clé WordRecognized.

Si un locuteur est entendu, l'élément de la liste qui correspond le mieux à ce que le robot entend est placé dans la clé WordRecognizedAndGrammar.

Notez que les différentes hypothèses contenues dans ces deux clés sont ordonnées de sorte que les phrases les plus probables viennent en premier.

La composition de la clé WordRecognized :

[phrase_1, confidence_1, phrase_2, confidence_2, ..., phrase_n, confidence_n]

La composition de la clé WordRecognizedAndGrammar :

[phrase_1, confidence_1, grammar_1, phrase_2, confidence_2, grammar_2, ..., phrase_n, confidence_n, grammar_n]

Avec :

  • phrase_i : est l'une des phrases prédéfinies,
  • confidence_i : est une estimation de la probabilité que cette phrase corresponde bien à celle prononcée par le locuteur humain.
  • grammar_i : est le nom de la grammaire utilisée par le moteur de reconnaissance.

Le paramètre ALSpeechRecognitionProxy::setVocabulary permet de configurer les phrase détecté retourné. Si on met ce paramètre à l’état ‘true’ les phrases renvoyées contiendront aussi les phrases bruitées renvoyées sous cette forme <phrase bruitées>. Sinon on recevra que les phrases exactes.

Aller sur: Conclusion


broker-modules-methods-NAOqi-APIs.png