{"id":5316,"date":"2018-10-03T14:40:57","date_gmt":"2018-10-03T12:40:57","guid":{"rendered":"https:\/\/blog.generationrobots.com\/?p=5316"},"modified":"2023-03-29T10:37:06","modified_gmt":"2023-03-29T08:37:06","slug":"cozmo-sdk-faire-parler-cozmo","status":"publish","type":"post","link":"https:\/\/www.generationrobots.com\/blog\/fr\/cozmo-sdk-faire-parler-cozmo\/","title":{"rendered":"Cozmo SDK : faire parler Cozmo"},"content":{"rendered":"\n<html>\n <body>\n  <h2 class=\"wp-block-heading\" id=\"h-objectif-faire-parler-cozmo\">\n   <strong>\n    Objectif : faire parler Cozmo\n   <\/strong>\n  <\/h2>\n  \n  \n  <ul class=\"wp-block-list\">\n   \n   <li>\n    <strong>\n     <span style=\"color: #00ccff;\">\n      Dur\u00e9e :\n     <\/span>\n     15 \u00e0 30 minutes\n    <\/strong>\n   <\/li>\n   \n   \n   <li>\n    <span style=\"color: #00ccff;\">\n     <strong>\n      Niveau de difficult\u00e9 :\n     <\/strong>\n    <\/span>\n    <strong>\n     facile\n    <\/strong>\n   <\/li>\n   \n   \n   <li>\n    <span style=\"color: #00ccff;\">\n     <strong>\n      Objectif :\n     <\/strong>\n    <\/span>\n    <strong>\n     faire parler Cozmo\n    <\/strong>\n   <\/li>\n   \n  <\/ul>\n  \n  \n  <h2 class=\"wp-block-heading\" id=\"h-les-prerequis\">\n   <strong>\n    Les pr\u00e9requis\n   <\/strong>\n  <\/h2>\n  \n  \n  <ul class=\"wp-block-list\">\n   \n   <li>\n    Avoir install\u00e9 et activ\u00e9 Cozmo SDK (consulter notre tutoriel\n    <a class=\"catalogue\" href=\"\/blog\/fr\/comment-activer-le-mode-sdk-de-cozmo\/\" title=\"Cozmo SDK : comment activer le mode SDK de Cozmo\">\n     Cozmo SDK : comment activer le mode SDK de Cozmo\n    <\/a>\n    )\n   <\/li>\n   \n  <\/ul>\n  \n  \n  <h2 class=\"wp-block-heading\" id=\"h-utilisation-de-la-methode-say-text-pour-faire-parler-cozmo\">\n   Utilisation de la m\u00e9thode say_text() pour faire parler Cozmo\n  <\/h2>\n  \n  \n  <p>\n   Faire parler Cozmo est extr\u00eamement simple. Ce tutoriel explique comment se servir de la fonction\n   <em>\n    say_text().\n   <\/em>\n  <\/p>\n  \n  \n  <p>\n   <span style=\"font-weight: 400;\">\n    Le robot Cozmo a deux voix \u00e0 sa disposition : la sienne, mais \u00e9galement une voix humaine. Cette commande va utiliser le moteur Text To Speech int\u00e9gr\u00e9 \u00e0 Cozmo.\n   <\/span>\n  <\/p>\n  \n  \n  <p>\n   <span style=\"font-weight: 400;\">\n    Certains param\u00e8tres permettent d\u2019ajuster la vitesse et la hauteur de la voix, de jouer une animation tout en parlant, d&rsquo;ex\u00e9cuter d\u2019autres t\u00e2ches en parall\u00e8le ou de g\u00e9rer des erreurs \u00e0 l&rsquo;ex\u00e9cution.\n   <\/span>\n  <\/p>\n  \n  \n  <p>\n   <span style=\"font-weight: 400;\">\n    Comme exemple, nous avons choisi de d\u00e9marrer avec le classique \u00ab\u00a0Hello world !\u00a0\u00bb\n   <\/span>\n  <\/p>\n  \n  <div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <div class=\"code-embed-infos\"> <span class=\"code-embed-name\">Hello World&#8230;<\/span> <\/div> <pre class=\"language-python code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-python code-embed-code\">import cozmo<br\/><br\/>def salut_la_compagnie(robot: cozmo.robot.Robot):<br\/>\trobot.say_text(&quot;Hello world !&quot;).wait_for_completed()<br\/><br\/>cozmo.run_program(salut_la_compagnie)<\/code><\/pre> <\/div><\/div>\n\n  \n  <h3 class=\"wp-block-heading\" id=\"h-la-fonction-say-text-a-la-loupe\">\n   <strong>\n    La fonction say_text() \u00e0 la loupe\n   <\/strong>\n  <\/h3>\n  \n  \n  <p>\n   <span style=\"font-weight: 400;\">\n    Le code utilis\u00e9 pour faire parler le robot est la fonction\n    <em>\n     say_text()\n    <\/em>\n    . Cette commande peut fonctionner avec un seul param\u00e8tre : la cha\u00eene de caract\u00e8res que le robot devra prononcer (le moteur Text To Speech de Cozmo se charge de lui faire prononcer la phrase).\n   <\/span>\n  <\/p>\n  \n  \n  <p>\n   <span style=\"font-weight: 400;\">\n    D&rsquo;autres param\u00e8tres peuvent \u00eatre ajout\u00e9s \u00e0 cette fonction, comme nous allons le voir ci-dessous.\n   <\/span>\n  <\/p>\n  \n  \n  <p>\n   Le prototype de la fonction est le suivant :\n  <\/p>\n  \n  \n  <p>\n   <b>\n    say_text\n   <\/b>\n   <b>\n    (\n   <\/b>\n   <b>\n    <i>\n     text\n    <\/i>\n   <\/b>\n   <b>\n    ,\n   <\/b>\n   <b>\n    <i>\n     play_excited_animation=False\n    <\/i>\n   <\/b>\n   <b>\n    ,\n   <\/b>\n   <b>\n    <i>\n     use_cozmo_voice=True\n    <\/i>\n   <\/b>\n   <b>\n    ,\n   <\/b>\n   <b>\n    <i>\n     duration_scalar=1.0\n    <\/i>\n   <\/b>\n   <b>\n    ,\n   <\/b>\n   <b>\n    <i>\n     voice_pitch=0.0\n    <\/i>\n   <\/b>\n   <b>\n    ,\n   <\/b>\n   <b>\n    <i>\n     in_parallel=False\n    <\/i>\n   <\/b>\n   <b>\n    ,\n   <\/b>\n   <b>\n    <i>\n     num_retries=0)\n    <\/i>\n   <\/b>\n  <\/p>\n  \n  \n  <p>\n   <span style=\"font-weight: 400;\">\n    La m\u00e9thode\n    <em>\n     say_text\n    <\/em>\n    dispose\u00a0des param\u00e8tres ci-dessous, qui pourront \u00eatre modifi\u00e9s :\n   <\/span>\n  <\/p>\n  \n  \n  <ul class=\"wp-block-list\">\n   \n   <li>\n    <span style=\"font-weight: 400;\">\n     <strong>\n      text\n     <\/strong>\n     \u2013 le texte que Cozmo va prononcer\n    <\/span>\n   <\/li>\n   \n   \n   <li>\n    <span style=\"font-weight: 400;\">\n     <strong>\n      play_excited_animation\n     <\/strong>\n     \u2013 une variable bool\u00e9enne pour activer al\u00e9atoirement ou non des mouvements lorsque Cozmo parle\n    <\/span>\n   <\/li>\n   \n   \n   <li>\n    <span style=\"font-weight: 400;\">\n     <strong>\n      use_cozmo_voice\n     <\/strong>\n     \u2013 ce bool\u00e9en permet de d\u00e9cider si Cozmo parle avec sa propre voix (\n     <em>\n      True\n     <\/em>\n     ) ou avec une voix humaine normale (\n     <em>\n      False\n     <\/em>\n     )\n    <\/span>\n   <\/li>\n   \n   \n   <li>\n    <span style=\"font-weight: 400;\">\n     <strong>\n      duration_scalar\n     <\/strong>\n     \u2013 cette variable permet de d\u00e9terminer la dur\u00e9e de prononciation du texte et donc la vitesse de prononciation\n    <\/span>\n   <\/li>\n   \n   \n   <li>\n    <span style=\"font-weight: 400;\">\n     <strong>\n      voice_pitch\n     <\/strong>\n     \u2013 pour changer la hauteur de voix\n    <\/span>\n   <\/li>\n   \n   \n   <li>\n    <span style=\"font-weight: 400;\">\n     <strong>\n      in_parallel\n     <\/strong>\n     \u2013 les actions que Cozmo peut r\u00e9aliser en parall\u00e8le\n    <\/span>\n   <\/li>\n   \n   \n   <li>\n    <span style=\"font-weight: 400;\">\n     <strong>\n      num_retries\n     <\/strong>\n     \u2013 permet d&rsquo;ex\u00e9cuter la fonction plusieurs fois (en cas d\u2019erreur, par exemple)\n    <\/span>\n   <\/li>\n   \n  <\/ul>\n  \n  \n  <p>\n   <span style=\"font-weight: 400;\">\n    La fonction\n    <em>\n     say_text()\n    <\/em>\n    renvoie l&rsquo;action\n   <\/span>\n   <span style=\"font-weight: 400;\">\n    <em>\n     cozmo.robot.SayText\n    <\/em>\n    . C\u2019est cette derni\u00e8re action qui fait parler Cozmo lorsqu&rsquo;elle est ex\u00e9cut\u00e9e. Le fonction\n    <em>\n     .wait_for_completed()\n    <\/em>\n    qui est cha\u00een\u00e9e apr\u00e8s la fonction est indispensable, car elle permet d&rsquo;attendre la fin de l&rsquo;appel \u00e0\n    <em>\n     say_text\n    <\/em>\n    qui est asynchrone.\n   <\/span>\n  <\/p>\n  \n  \n  <h3 class=\"wp-block-heading\" id=\"h-informations-supplementaires-sur-la-methode-say-text\">\n   Informations suppl\u00e9mentaires sur la m\u00e9thode say_text()\n  <\/h3>\n  \n  \n  <ul class=\"wp-block-list\">\n   \n   <li>\n    <a class=\"catalogue\" href=\"http:\/\/cozmosdk.anki.com\/docs\/generated\/cozmo.robot.html?#cozmo.robot.Robot.say_text\" rel=\"noopener\" target=\"_blank\" title=\"Wiki Cozmo SDK de Anki - la fonction say_text\">\n     Diff\u00e9rents exemples utilisant la fonction say-text()\n    <\/a>\n   <\/li>\n   \n  <\/ul>\n  \n  \n  <h3 class=\"wp-block-heading\" id=\"h-exemple-d-utilisation-de-say-text-avec-plusieurs-parametres\">\n   <strong>\n    Exemple d&rsquo;utilisation de say_text() avec plusieurs param\u00e8tres\n   <\/strong>\n  <\/h3>\n  \n  <div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <div class=\"code-embed-infos\"> <a href=\"https:\/\/github.com\/generationrobots-lab\/cozmo-examples\/blob\/master\/audio_say_text.py\" title=\"Afficher audio_say_text.py\" target=\"_blank\" class=\"code-embed-name\">audio_say_text.py<\/a> <a href=\"https:\/\/raw.github.com\/generationrobots-lab\/cozmo-examples\/master\/audio_say_text.py\" title=\"Back to audio_say_text.py\" class=\"code-embed-raw\" target=\"_blank\">affichage brut<\/a> <\/div> <pre class=\"language-python code-embed-pre line-numbers\"  data-start=\"23\" data-line-offset=\"22\"><code class=\"language-python code-embed-code\">import cozmo<br\/><br\/>def bonjour(robot: cozmo.robot.Robot):<br\/>\t# utilisation basique<br\/>\trobot.say_text(&quot;Salut la compagnie !&quot;).wait_for_completed()<br\/>\t<br\/>\t# g\u00e9n\u00e9rer une voix humaine<br\/>\trobot.say_text(&quot;Salut la compagnie !&quot;, False, use_cozmo_voice=False).wait_for_completed()<br\/>\t<br\/>\t# voix humaine et cozmo joue une animation<br\/>\trobot.say_text(&quot;Salut \u00e0 tous ! Je parle en bougeant.&quot;, True, use_cozmo_voice=False).wait_for_completed()<br\/>\t<br\/>\t# modification de la vitesse et hauteur de voix<br\/>\trobot.say_text(&quot;Salut \u00e0 tous ! On se d\u00e9p\u00eache !&quot;, False, voice_pitch=-5, duration_scalar=0.2, use_cozmo_voice=False).wait_for_completed()    <br\/><br\/>cozmo.run_program(bonjour)<\/code><\/pre> <\/div><\/div>\n\n  \n  <h2 class=\"wp-block-heading\" id=\"h-cozmo-connait-differentes-langues\">\n   Cozmo conna\u00eet diff\u00e9rentes langues\n  <\/h2>\n  \n  \n  <p>\n   A la question, mon\n   <strong>\n    robot Cozmo peut-il parler en anglais, en fran\u00e7ais, en allemand ou en japonais\n   <\/strong>\n   ? La r\u00e9ponse est oui.\n  <\/p>\n  \n  \n  <p>\n   Il faut cependant noter que\n   <strong>\n    c&rsquo;est la langue de votre tablette ou t\u00e9l\u00e9phone qui est utilis\u00e9e par Cozmo\n   <\/strong>\n   . Il n&rsquo;est pas possible d&rsquo;utiliser une deuxi\u00e8me langue lorsque l\u2019application tourne. La langue est initialis\u00e9e au lancement de l&rsquo;application sur la t\u00e9l\u00e9phone.\n  <\/p>\n  \n  \n  <p>\n   Pour changer de langue, il faut modifier la langue de votre smartphone, puis relancer l&rsquo;application.\n  <\/p>\n  \n  \n  <p>\n   Les langues support\u00e9es par Cozmo sont : l&rsquo;anglais, le fran\u00e7ais, l&rsquo;allemand et le japonais (octobre 2017).\n  <\/p>\n  \n  \n  <p>\n   Liens Forum Anki\n  <\/p>\n  \n  \n  <h2 class=\"wp-block-heading\" id=\"h-informations-supplementaires-sur-l-usage-multilingue-de-cozmo\">\n   Informations suppl\u00e9mentaires sur l&rsquo;usage multilingue de Cozmo\n  <\/h2>\n  \n  \n  <ul class=\"wp-block-list\">\n   \n   <li>\n    <a class=\"catalogue\" href=\"https:\/\/forums.anki.com\/t\/how-to-use-say-text-in-a-special-language\/9542\" rel=\"noopener\" target=\"_blank\">\n     How to use \u201csay_text()\u201d in a special language?\n    <\/a>\n   <\/li>\n   \n  <\/ul>\n  \n <\/body>\n<\/html>","protected":false},"excerpt":{"rendered":"<p>Objectif : faire parler Cozmo Les pr\u00e9requis Utilisation de la m\u00e9thode say_text() pour faire parler Cozmo Faire parler Cozmo est extr\u00eamement simple. Ce tutoriel explique comment se servir de la fonction say_text(). Le robot Cozmo a deux voix \u00e0 sa disposition : la sienne, mais \u00e9galement une voix humaine. Cette commande va utiliser le moteur[&#8230;]<br \/> <a class=\"button\" href=\"https:\/\/www.generationrobots.com\/blog\/fr\/cozmo-sdk-faire-parler-cozmo\/\" style=\"float:right;\">Read this article &gt;&gt;<\/a><\/p>\n","protected":false},"author":306,"featured_media":5547,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1128],"tags":[],"class_list":["post-5316","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-education"],"_links":{"self":[{"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/posts\/5316","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/users\/306"}],"replies":[{"embeddable":true,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/comments?post=5316"}],"version-history":[{"count":37,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/posts\/5316\/revisions"}],"predecessor-version":[{"id":13127,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/posts\/5316\/revisions\/13127"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/media\/5547"}],"wp:attachment":[{"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/media?parent=5316"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/categories?post=5316"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.generationrobots.com\/blog\/wp-json\/wp\/v2\/tags?post=5316"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}