cozmo-sdk-faire-parler-cozmo-feature-image

Cozmo SDK : faire parler Cozmo

This entry was posted in Education & robotique on by Louis-Gabriel Pouillot.

Objectif : faire parler Cozmo

  • Durée : 15 à 30 minutes
  • Niveau de difficulté : facile
  • Objectif : faire parler Cozmo

Les prérequis

Utilisation de la méthode say_text() pour faire parler Cozmo

Faire parler Cozmo est extrêmement simple. Ce tutoriel explique comment se servir de la fonction say_text().

Le robot Cozmo a deux voix à sa disposition : la sienne, mais également une voix humaine. Cette commande va utiliser le moteur Text To Speech intégré à Cozmo.

Certains paramètres permettent d’ajuster la vitesse et la hauteur de la voix, de jouer une animation tout en parlant, d’exécuter d’autres tâches en parallèle ou de gérer des erreurs à l’exécution.

Comme exemple, nous avons choisi de démarrer avec le classique « Hello world ! »

Hello World…
import cozmo

def salut_la_compagnie(robot: cozmo.robot.Robot):
robot.say_text("Hello world !").wait_for_completed()

cozmo.run_program(salut_la_compagnie)

La fonction say_text() à la loupe

Le code utilisé pour faire parler le robot est la fonction say_text() . Cette commande peut fonctionner avec un seul paramètre : la chaîne de caractères que le robot devra prononcer (le moteur Text To Speech de Cozmo se charge de lui faire prononcer la phrase).

D’autres paramètres peuvent être ajoutés à cette fonction, comme nous allons le voir ci-dessous.

Le prototype de la fonction est le suivant :

say_text ( text , play_excited_animation=False , use_cozmo_voice=True , duration_scalar=1.0 , voice_pitch=0.0 , in_parallel=False , num_retries=0)

La méthode say_text dispose des paramètres ci-dessous, qui pourront être modifiés :

  • text – le texte que Cozmo va prononcer
  • play_excited_animation – une variable booléenne pour activer aléatoirement ou non des mouvements lorsque Cozmo parle
  • use_cozmo_voice – ce booléen permet de décider si Cozmo parle avec sa propre voix ( True ) ou avec une voix humaine normale ( False )
  • duration_scalar – cette variable permet de déterminer la durée de prononciation du texte et donc la vitesse de prononciation
  • voice_pitch – pour changer la hauteur de voix
  • in_parallel – les actions que Cozmo peut réaliser en parallèle
  • num_retries – permet d’exécuter la fonction plusieurs fois (en cas d’erreur, par exemple)

La fonction say_text() renvoie l’action cozmo.robot.SayText . C’est cette dernière action qui fait parler Cozmo lorsqu’elle est exécutée. Le fonction .wait_for_completed() qui est chaînée après la fonction est indispensable, car elle permet d’attendre la fin de l’appel à say_text qui est asynchrone.

Informations supplémentaires sur la méthode say_text()

Exemple d’utilisation de say_text() avec plusieurs paramètres

import cozmo

def bonjour(robot: cozmo.robot.Robot):
# utilisation basique
robot.say_text("Salut la compagnie !").wait_for_completed()

# générer une voix humaine
robot.say_text("Salut la compagnie !", False, use_cozmo_voice=False).wait_for_completed()

# voix humaine et cozmo joue une animation
robot.say_text("Salut à tous ! Je parle en bougeant.", True, use_cozmo_voice=False).wait_for_completed()

# modification de la vitesse et hauteur de voix
robot.say_text("Salut à tous ! On se dépêche !", False, voice_pitch=-5, duration_scalar=0.2, use_cozmo_voice=False).wait_for_completed()

cozmo.run_program(bonjour)

Cozmo connaît différentes langues

A la question, mon robot Cozmo peut-il parler en anglais, en français, en allemand ou en japonais ? La réponse est oui.

Il faut cependant noter que c’est la langue de votre tablette ou téléphone qui est utilisée par Cozmo . Il n’est pas possible d’utiliser une deuxième langue lorsque l’application tourne. La langue est initialisée au lancement de l’application sur la téléphone.

Pour changer de langue, il faut modifier la langue de votre smartphone, puis relancer l’application.

Les langues supportées par Cozmo sont : l’anglais, le français, l’allemand et le japonais (octobre 2017).

Liens Forum Anki

Informations supplémentaires sur l’usage multilingue de Cozmo