Projet Master 1/2 - Compte rendu de réunion N Projet: 5 Titre Projet: Nabaztag Nom Etudiants: Marie Lopez, Michaël Grillet et Ahmed Ebety Date de réunion (obligatoire): 10/04/2012 Personnes présentes (obligatoire): Corinne Fredouille, Marie Lopez, Michaël Grillet et Ahmed Ebety Points abordés: Reconnaissance vocale : Nous avons parlé de la reconnaissance vocale qui est prête à être installée sur le serveur. Nous avons eu un petit problème au niveau du fichier audio émis par le lapin (fichier audio créé sur le serveur lorsqu'on déclenche la reconnaissance vocale au niveau du lapin par un clic u bouton situé sur sa tête). Ce fichier est au format WAV, mais son encodage particulier n'était pas pris en compte par notre application de reconnaissance vocale. Pour pallier ce problème, nous avons ajouté un convertisseur, qui transforme notre fichier en un fichier lisible pour notre application. Serveur : Nous avons parlé du schéma (voir schéma) que nous avons réalisé sur les échanges entre le lapin et le serveur. Ce schéma se base sur le fait que l'utilisateur a appuyé sur la tête du lapin et que celui-ci a été configuré pour «dire» la météo lorsque l'on réalise cette action. Application : Nous avons commencé à réaliser l'interface qui va relier le serveur et la reconnaissance vocale. Notre application nous permet, pour l'instant, de lancer le plugin météo lorsqu'un utilisateur prononce n'importe quel message au niveau du lapin. Projet Master 1/2 - Compte rendu de réunion 1
Travail réalisé: Correction des problèmes liés à la reconnaissance vocale. Schématisation de la communication Nabaztag/Serveur lors de l'appel d'un plugin via l'appui sur la tête de l'animal (vois schéma en fin de compte-rendu). Réalisation de l'application qui va interagir entre la serveur et la reconnaissance vocale. Travail à réaliser: Ajouter au serveur l'application de reconnaissance vocale et commencer celle de reconnaissance du locuteur dès que la précédente fonctionne. Voir si nous pouvons rajouter des paramètres à la reconnaissance vocale, c'est-à-dire par exemple au lieu de dire «météo» et d'avoir la météo de la ville rentrée en paramètre dans la configuration du plugin (au niveau du serveur via l'application web), on pourrait alors dire «météo Paris» et avoir la météo de ce lieu précis. Savoir si le décodage acoustique au niveau de la reconnaissance vocale peut se faire sans modèle de langage, pour optimiser notre application au niveau des temps de calcul. Chercher comment le serveur gère les fichiers sons qu'il réceptionne du site Acapela et qui servent de synthèse vocale au lapin. Tester le plugin de WebRadio pour analyser la différence de comportement du lapin et du serveur par rapport aux autres plugins déjà étudiés tel que la météo. Voir la différence lorsqu'un plugin est provoqué (reconnaissance vocale, appui sur la tête du lapin) et lorsqu'il est géré par le serveur (par exemple si on a configuré le déclenchement d'une application à une heure précise). Date prochaine réunion: 10 Mai à 9h 2
Schéma : dialogue Nabaztag/Serveur lors de l'appuie sur la tête du lapin (ce qui va déclencher le plugin «météo», enregistré par défaut pour cette action. 1 : Le Nabaztag envoie un message de type Jabber/XML au serveur, pour lui dire qu on lui a cliqué sur la tête. (Annexe I) Après analyse de ce message, le serveur lance le plugin météo. 2 : Le serveur envoie une requête HTTP de type GET à l API météo de Google avec en paramètres la ville configurée par défaut par l utilisateur et la langue dans laquelle nous souhaitons avoir la météo. (Annexe II) 3 : Le site Google renvoie au serveur le fichier XML correspondant à la météo de la ville désirée. (Annexe III) 4 : Le serveur envoie une requête HTTP POST au site Acapela avec le texte que le lapin va devoir dire (basé sur le fichier XML de Google). (Annexe IV) Le site Acapela retourne au serveur un lien vers un fichier mp3. (Annexe V) 5 : Le serveur fait une requête HTTP de type GET sur le lien du site Acapela et va enregistrer le fichier mp3 dans la partie HTTP-wrapper du serveur. (Annexe VI) 3
6 : Le serveur envoie une requête XML au lapin pour lui donner les ordres à effectuer. (Annexe VII) 7 : Le lapin, qui a reçu l ordre de lire plusieurs fichiers son, envoie des requêtes HTTP GET au serveur, pour récupérer ces différents sons. (Annexe VIII) 8 : Le serveur lui envoie les fichiers audio, qui ont été stocké dans la partie http-wrapper du serveur. (Annexe IX) Annexe I <message from='0019db9db1ff@192.168.0.10/idle' to='int@xmpp.objects.violet.net/int' id='15'> <button xmlns="violet:nabaztag:button"> <clic>1</clic> </button> </message> Annexe II GET /ig/api?hl=fr&weather=avignon HTTP/1.1 Connection: Keep-Alive Accept-Encoding: gzip Accept-Language: fr-fr,en,* User-Agent: Mozilla/5.0 Host: www.google.com Annexe III <?xml version="1.0"?> <xml_api_reply version="1"> <weather module_id="0" tab_id="0" mobile_row="0" mobile_zipped="1" row="0" section="0" > <forecast_information> <city data="avignon, Provence-Alpes-Cte d'azur"/> <postal_code data="avignon"/><latitude_e6 data=""/> <longitude_e6 data=""/> <forecast_date data="2012-03-12"/> <current_date_time data="1970-01-01 00:00:00 +0000"/> <unit_system data="si"/> </forecast_information> <current_conditions> <condition data="temps clair"/> <temp_f data="64"/> <temp_c data="18"/> <humidity data="humidit : 37%"/> <icon data="/ig/images/weather/sunny.gif"/> <wind_condition data="vent : N 34 km/h"/> </current_conditions> <forecast_conditions> <day_of_week data="lun."/> <low data="7"/> 4
<high data="20"/> </forecast_conditions> <forecast_conditions> <day_of_week data="mar."/> <low data="4"/><high data="23"/> </forecast_conditions><forecast_conditions> <day_of_week data="mer."/> <low data="5"/> <high data="22"/> </forecast_conditions> <forecast_conditions> <day_of_week data="jeu."/> <low data="6"/> <high data="22"/> </forecast_conditions> </weather> </xml_api_reply> Annexe IV POST /Services/DemoWeb/textToMP3.php HTTP/1.1 Host: www.vaas.acapela-group.com Annexe V retour_php=http://vaassl3.acapelagroup.com/messages/008101109111095119101098/sounds/26431697_cb898a48c7e28.mp3&file_id=26431697_cb898a48c7e28 Annexe VI GET /MESSAGES/008101109111095119101098/sounds/26431697_cb898a48c7e28.mp3 HTTP/1.1 Host: vaas.acapela-group.com User-Agent: Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.0.1) Gecko/2011000000 Firefox/6.0.1 Referer: http://www.acapela-group.com/flash/demo_web_as3/demo_web.swf? path=http://vaas.acapela-group.com/services/demoweb/&lang=en [ ] Annexe VII <message from='net.openjabnab.platform@192.168.0.10/services' to='0019db9db1ff@192.168.0.10/idle' id='ojana-6'><packet xmlns='violet:packet' format='1.0' ttl='604800'>fwoaalsa+v6pefny7vv6xscbhiaf5zrdtizgu3y7gyqobhdg/ztz+fqn+yd56 5
ucjkqxmxtezktz/hndkv9eu9jksks0fxxo1clqavz/r4dmaf8kvp/tpopwijewi/o8r+fl u+/rgwjugiaxlmso2lmztdjudkqhuemb/npp4va35gpnq4jzwfcyrzuex4ftzipq2rcdhk ebzlubztjc0loglsn3g0yb/wpu/ +0+ilYgkRYj+jxH58u77+sbAm4YgBeWaw7YsxlN2O4MqqG4Qxv808/hUDfmA+ergnjCi+Hb ioxtwgfscv9h6mqfmccbrqtazkxshhwgrq6uvgh/clt/7t6kvicrfip6pefny7vv6xscb hiaf5zrdtizgu3y7gyqobhdg/ztz+fqn+yd56uceic3d0vpf0qffr4ha4r6zobh21td0f MbWGH8lfW1HeMmAf8KVP/tPopWIJEWI/o8R+fLu+/rGwJuGIAXlmsO2LMZTdjuDKqhuE Mb/NPP4VA35gPnq4JbS9miCLuE9H2cSN+dfoTD06Hc0GMas/7S6XAsI65GdFYB/wpU/ +0+ilYgkRYj+jxH58u77+sbAm4YgBeWaw7YsxlN2O4MqqG4Qxv808/hUDfmA+erg/7T4Ny DRKNunNL/GKTNo+wgQSaNYAW0oEdk2xirlKV0VgH/ClT/7T6KViCRFiP6PEfny7vv6xsCb hiaf5zrdtizgu3y7gyqobhdg/ztz+fqn+yd56uanfduneoaspxnytmq/45et4qyoxunl M/V0JcbZOJ70yjmAf8KVP/tPopWIJEX/</packet></message> Annexe VIII GET /ojn_local/tts/acapela/bruno/f217afbbc058e0b9ea7ff00d6e9cb0b5.mp3 HTTP/1.0 GET /ojn_local/tts/acapela/bruno/f217afbbc058e0b9ea7ff00d6e9cb0b5.mp3 HTTP/1.0 GET /ojn_local/tts/acapela/bruno/93b3df8b5dd91525f23f37638577d3b3.mp3 HTTP/1.0 User-Agent: MTL Pragma: no-cache Icy-MetaData:1 Host: ojn.nabaztag.tag Annexe IX HTTP/1.1 200 OK Date: Mon, 12 Mar 2012 13:55:56 GMT Server: Apache/2.2.20 (Ubuntu) Last-Modified: Tue, 28 Feb 2012 18:22:24 GMT ETag: "c5fab-27c4-4ba0a4ef69584" Accept-Ranges: bytes Content-Length: 10180 Connection: close Content-Type: audio/mpeg X-Pad: avoid browser bug ID3(TSSE4LAME 64bits version 3.98.4 (http://www.mp3dev.org/)tit2ehttp://vaassl3.acapelagroup.com/messages/008101109111095119101098/sounds/21069415_cb02d5294cbd8.mp3tpe1 bruno22ktalb21069415_cb02d5294cbd8tyer2012commxxxgenerated by Acapela VaaSTCONVocal`a~LQvLiIh&cNnnvyxfE%-'Ih0VY!uZ4 B%9AA{OZ"?<=aE B";#?& B1}&! h*bu_o0qhv.va0f%xn9m@h]!~615c88[@18bh<3a/9 2!Bd5a:/I2 ffb:_"nut4}erbpf02@`*$,7t`1\0\)rjgdo 0)w8.V@ynYStzdaCN%$LQ+3(Kn2_b&&3jO@ 58]d w@'qax% (O{#voWTQ@tT?'/pvLIP"~}`(4 [Nr*c4#wY`#6JA+/nY`m'HmuH#RVQy! t,=be2)afd;]q tch9g :\(A14"j;[m8W0X7 b",b Zmstxrg( 3=B0ml#X @pj_sb BT0EtXhqDq#^w8H>huSb^[em=5],#/5b#"^1Q9m._Nq(nP`3+}F"*qhw2z*\IK.mSdeCChkc3> [ ] 6