Alexa : prise en main du Chat­bot d’Ama­zon

Le ser­vice d’as­sis­tant per­son­nel d’Ama­zon, Alexa, a le vent en poupe. Ce Chat­bot in­té­gré dans l’enceinte in­tel­li­gente Echo s’est ra­pi­de­ment im­po­sé comme le hub de ré­fé­rence pour la mai­son connec­tée. Nous al­lons voir quels sont les pré­re­quis pour créer des

L'Informaticien - - SOMMAIR -

Alexa est l ’ as­sis­tant conver­sa­tion­nel dé­ve­lop­pé par le Lab126 d’Ama­zon(*). Il ré­pond à vos ques­tions, per­met de plug­ger des « skills » et fait of­fice de hub do­mo­tique en contrô­lant d’autres ap­pa­reils intelligents. Les dits skills sont sim­ple­ment des ap­pli­ca­tions fonc­tion­nant par re­con­nais­sance vo­cale. Alexa au­rait été ins­pi­rée par la voix de l’or­di­na­teur et du sys­tème conver­sa­tion­nel de Star Trek TNG. Les seules langues dis­po­nibles pour le mo­ment sont l’an­glais et l’al­le­mand. Le terme Chat­bot est la contrac­tion de Chat et de Ro­bot. Un Chat­bot est un lo­gi­ciel d’in­tel­li­gence ar­ti­fi­cielle ser­vant d’in­ter­face entre un sys­tème et ses uti­li­sa­teurs hu­mains. Ce­la se fait gé­né­ra­le­ment par la re­con­nais­sance vo­cale ou tex­tuelle. Le pre­mier pro­gramme de ce type au­rait été con­çu dans les an­nées 60 par le MIT. Dé­nom­mé Eli­za, il se conten­tait de re­for­mu­ler les af­fir­ma­tions de pa­tients. Cette ex­pé­rience plu­tôt réus­sie don­na nais­sance à « l’ef­fet Eli­za » .

Fonc­tion­na­li­tés

Alexa est ca­pable de dé­cryp­ter les re­quêtes vo­cales de son uti­li­sa­teur et d’y ré­pondre avec sa voix syn­thé­tique. Elle peut être uti­li­sée pour une foul­ti­tude de tâches quo­ti­diennes, telles que la ges­tion de la mu­sique, son rôle prin­ci­pal, mais aus­si ré­di­ger une liste de courses, ré­gler un ré­veil, contrô­ler les sys­tèmes do­mo­tiques d’un do­mi­cile à dis­tance, don­ner la mé­téo ou d’autres in­for­ma­tions, dé­mar­rer sa voi­ture ou as­sis­ter la conduite. Ford, par exemple, a choi­si d’équi­per ses vé­hi­cules d’Alexa comme as­sis­tant de conduite mais aus­si pour contrô­ler à dis­tance les équi­pe­ments do­mo­tiques des conduc­teurs. Alexa dis­pose dé­jà de plus de 12 000 skills ou « ap­ti­tudes » ( ht tps: // www. ama­zon. com/ b? ie= UTF8& node= 13727921011). Ces ser­vices as­so­ciés à des com­mandes vo­cales ont for te­ment contri­bué à son succès : Ama­zon avait dé­jà écou­lé dé­but jan­vier plus de cinq mil­lions d’en­ceintes Echo. Ama­zon es­saye de construire un ma­ga­sin d’ap­pli­ca­tions vo­cales aus­si large que pos­sible, tout comme l’ont fait Apple avec l’Apple Store et Google avec Google Play. Ama­zon sou­haite rendre la voix d’Alexa plus hu­maine. La so­cié­té a ajou­té pour ce­la de nou­velles com­pé­tences et cinq nou­velles fonc­tion­na­li­tés : les chu­cho­te­ments, les bips, l’em­phase, l’im­pro­vi­sa­tion et la mo­du­la­tion du vo­lume, de l’in­to­na­tion et de la vi­tesse. Les ou­tils de dé­ve­lop­pe­ment sont dis­po­nibles dans le lan­gage SSML ( Speech Syn­the­sis Mar­kup Lan­guage), sous forme de ba­lises per­met­tant de dé­ve­lop­per de nou­velles fonc­tion­na­li­tés.

Les en­ceintes Echo

Cô­té connec­ti­vi­té, Echo est do­té d’une an­tenne double bande, d’une autre Wi­Fi ain­si que d’une puce Blue­tooth. L’ap­pa­reil se connecte au Wi­Fi de la mai­son et se pi­lote de

l’ap­pli­ca­tion dé­diée An­droid, iOS ou Fire OS, le sys­tème d’ex­ploi­ta­tion do­mo­tique d’Ama­zon. Echo est do­té de sept mi­cros afin de cap­ter la voix de son uti­li­sa­teur même lors­qu’il se trouve à l’autre bout de la pièce, d’un twee­ter de 5 cm, d’un haut- par­leur ca­pable de re­pro­duire des sons ai­gus et d’un cais­son de basse.

Dé­ve­lop­per des skills pour Alexa

Ama­zon per­met aux dé­ve­lop­peurs de créer et de pu­blier des com­pé­tences pour Alexa via son kit de Com­pé­tences. Celles- ci per­mettent d’en­ri­chir les ca­pa­ci­tés de n’im­porte quel ap­pa­reil équi­pé d’Alexa. Ces com­pé­tences sont dis­po­nibles en té­lé­char­ge­ment gra­tuit sur l’ap­pli­ca­tion épo­nyme. Ce kit est com­po­sé d’API – in­ter­faces de pro­gram­ma­tion d’ap­pli­ca­tions –, d’ou­tils, de do­cu­men­ta­tion et d’exemples de code pour fa­ci­li­ter et ac­cé­lé­rer l’ajout de com­pé­tences par les dé­ve­lop­peurs. Le code n’est pas pré­sent sur l’ap­pa­reil de l’uti­li­sa­teur. Il est exé­cu­té sur le Cloud d’Ama­zon. Lex, de son pe­tit nom, est conçue à par­tir de tech­no­lo­gies de Deep Lear­ning. Ama­zon four­nit un SLK pour iOS et An­droid afin de prendre en charge les sai­sies tex­tuelles et vo­cales. Pour les lan­gages Ja­va, JS, Py­thon, CLI, . Net, Ru­by, PHP, Go et C++, seule la sai­sie de texte est prise en charge pour le mo­ment. Alexa peut aus­si s’in­ter­fa­cer avec d’autres ser­vices et tech­nos Ama­zon, comme AWS Lamb­da, AWS Mo­bi­leHub, Ama­zon CloudWatch, Ama­zon Co­gni­to et Ama­zon Dy­na­moDB.

Le fonc­tion­ne­ment d’Alexa

Tout com­mence par la pro­non­cia­tion du mot « Alexa » . Ce­lui- ci consti­tue le hot­word, le mot- dé­clen­cheur. Votre re­quête est en­re­gis­trée et l’en­re­gis­tre­ment en­voyé sur les ser­veurs d’Ama­zon. La tech­no­lo­gie de re­con­nais­sance vo­cale em­ployée, is­sue du Deep Lear­ning, est le Na­tu­ral Lan­guage Pro­ces­sing. Une fois la de­mande com­prise, Ama­zon in­ter­roge le sys­tème cor­res­pon­dant pour vous re­tour­ner l’in­for­ma­tion de­man­dée. Les skills sont sto­ckés sur le Cloud Ama­zon et l’uti­li­sa­teur choi­sit par le biais de son ta­bleau de bord ( da­sh­board) ou via Alexa les­quels ac­ti­ver. Ces skills sont en­suite in­vo­qués via à leur nom, comme « Alexa open My Awe­some Skill » . Des pa­ra­mètres peuvent être pas­sés, tels que « Alexa ask My Awe­some Skill for the wea­ther in Lon­don » , le pa­ra­mètre étant ici « Lon­don ». Un skill est com­po­sé de trois par­ties : le pro­gramme en soi, un Intent Sche­ma et un fi­chier de Sample Uter­rances. Ce der­nier dé­signe sim­ple­ment un fi­chier conte­nant plu­sieurs mé­thodes pour in­vo­quer votre skill ain­si que les re­quêtes à exé­cu­ter se­lon la mé­thode. En voi­ci un exemple : GetWea­ther what is the wea­ther in { Lo­ca­tion} GetWea­ther wea­ther in { Lo­ca­tion} GetWea­ther will it rain in { Lo­ca­tion} GetSingles single la­dies bet­ween { Age1} and { Age2} in { Lo­ca­tion}

Et voi­ci le sché­ma dé­cla­ra­tif des types des va­riables at­ten­dus par la fonc­tion GetWea­ther Il doit y avoir au­tant de types de va­riables ( slots) dé­cla­rés que de va­riables né­ces­saires à la fonc­tion. C’est de cette ma­nière qu’après le Speech- to- Text ( re­con­nais­sance vo­cale) l’al­go­rithme de NLP fait le rap­pro­che­ment entre les mots pro­non­cés et les types de slots an­non­cés. "Alexa ask My Awe­some Skill for singles la­dies bet­ween thir­ty and fif­ty in Tou­louse" se­ra tra­duit en GetSingles (’ tou­louse’, 30,50) Vous trou­ve­rez la liste com­plète des slots dis­po­nibles à l’adresse https:// de­ve­lo­per. ama­zon. com/ pu­blic/ so­lu­tions/ alexa/ alexa- skills­kit/ docs/ built-in- intent- ref/ slot- ty­pe­re­fe­rence# list- types. Et si le slot dont vous avez be­soin n’existe pas, il ne vous reste plus qu’à le créer.

Comment co­der son skill

Nous al­lons voir comment créer un skill pour connaître la mé­téo dans n’im­porte quelle ville d’Eu­rope. Les pré­re­quis né­ces­saires sont : ● un compte Ama­zon ( ins­crip­tion sur le por­tail dé­ve­lop­peur https:// de­ve­lo­per. ama­zon. com/ edw/ home. html#/) ; ● une enceinte Echo ou un ap­pa­reil com­pa­tible avec Alexia ; ● Node 6 et npm ins­tal­lés ( https:// no­de­js. org/) ; ● un édi­teur de code.

Ins­tal­la­tion des bi­blio­thèques

mk­dir MyA­we­so­meS­kill cd MyA­we­so­meS­kill npm init npm ins­tall — save alexa-skill- kit ya­hoo- wea­ther Alexa-skill- kit pro­pose une pre­mière couche d’abs­trac­tion pour la li­brai­rie of­fi­cielle d’Ama­zon, afin de rendre le dé­ve­lop­pe­ment plus simple. Ya­hoo- wea­ther est un wrap­per pour l’API Mé­téo de Ya­hoo.

Code

in­dex. js const alexaS­killKit = re­quire(’ alexa-skill- kit’) const intent = re­quire(’./ lib/ In­tents’) ex­ports. hand­ler = func­tion( event, context) { alexaS­killKit( event, context, par­sedMes­sage =& amp; amp; amp; gt; { // console. log( JSON. strin­gi­fy( par­sedMes­sage)) re­turn intent( par­sedMes­sage) }) } lib/ In­tents. js const wea­ther = re­quire(’ ya­hoo- wea­ther’) mo­dule. ex­ports = func­tion( par­sedMes­sage) {

if ( par­sedMes­sage. type === ’ In­tentRe­quest’ & amp;& amp; par­sedMes­sage. intent. name === ’ GetWea­ther’) {

re­turn wea­ther( par­sedMes­sage. intent. slots. Lo­ca­tion. va­lue) . then( in­fo =& gt; in­fo. item) . then( item =& gt; item. condi­tion) . then( condi­tion =& gt;; { // console. log(’ in­fo’, condi­tion) re­turn ’ It is cur­rent­ly ${ condi­tion. text} with ${ condi­tion. temp} de­grees in ${ par­sedMes­sage. intent. slots.

Ain­si, lorsque le skill est ap­pe­lé par l’uti­li­sa­teur, il sau­ra quelle fonc­tion exé­cu­ter. Il ne vous reste plus qu’à zip­per votre pro­jet pour pas­ser à la suite.

En­voyer le skill sur les ser­veurs Ama­zon

Les res­sources créées dans Ama­zon Web Ser­vices sont iden­ti­fiées de fa­çon unique par un Ama­zon Re­source Name ( ARN). Nous al­lons voir comment créer une fonc­tion Lamb­da sur les ser­veurs d’Ama­zon et y en­voyer notre pro­jet com­pres­sé. Mu­nis­sez- vous de vos iden­ti­fiants Ama­zon De­ve­lo­per et ren­dez- vous à l’adresse sui­vante : https:// console. aws. ama­zon. com/? nc2= h_ m_ mc, puis cli­quez en haut à gauche sur Ser­vices puis Lamb­da. Il ne vous reste plus qu’à cli­quer sur Créer une fonc­tion Lamb­da puis sé­lec­tion­ner Fonc­tion vide. Sé­lec­tion­nez Kit Alexa Skills par­mi la liste des dé­clen­cheurs. C’est dans l’on­glet Confi­gu­rer une fonc­tion que notre code se­ra char­gé sur les ser­veurs Ama­zon. Ren­sei­gnez un nom et choi­sis­sez votre en­vi­ron­ne­ment d’exé­cu­tion. Le nom n’a pas d’im­por­tance, il ne se­ra pas réuti­li­sé plus tard. Choi­sis­sez l’op­tion Char­ger un fi­chier ZIP dans la liste dé­rou­lante Type d’en­trée de code. Après la page de récapitulatif, cli­quez sur Créer la fonc­tion pour pas­ser à l’étape sui­vante et no­tez bien l’adresse ARN de votre fonc­tion pour la suite.

En­re­gis­trer votre skill au­près d’Ama­zon

Mu­nis­sez- vous de vos iden­ti­fiants Ama­zon De­ve­lo­per et ren­dez- vous à l’adresse sui­vante : https:// de­ve­lo­per. ama­zon. com/ edw/ home. html#/ skills pour créer votre compte. Cli­quez sur le bou­ton Add a New Skill en haut à droite. À par­tir de là, vous n’avez plus qu’à vous lais­ser gui­der en four­nis­sant toutes les in­for­ma­tions né­ces­saires à la confi­gu­ra­tion de votre nou­veau skill. Dans la sec­tion In­ter­ac­tion Mo­del, vous re­trou­vez le Intent Sche­ma et les Sample Ut­te­rances. En­fin, dans la sec­tion Confi­gu­ra­tion, il vous est de­man­dé si votre skill est hé­ber­gé sur les ser­veurs Ama­zon ou bien sur un ser­veur pri­vé. Choi­sis­sez Ama­zon. C’est là que l’adresse ARN que vous avez no­tée pré­cé­dem­ment ser­vi­ra. Elle in­dique l’adresse où votre skill est exé­cu­té. Si tout s’est bien pas­sé, le ré­sul­tat du si­mu­la­teur de­vrait cor­res­pondre au ré­sul­tat at­ten­du. Il reste une der­nière étape pour pro­fi­ter plei­ne­ment de votre skill, l’ac­ti­va­tion. Comme men­tion­né plus haut, les skills ne sont pas té­lé­char­gés sur votre de­vice. Ils sont sim­ple­ment ac­ti­vés de­puis votre da­sh­board. Par dé­faut, votre skill est ac­ti­vé, mais si ce n’était pas le cas, il fau­drait vous connec­ter via l’ap­pli­ca­tion mo­bile Alexa pour le faire. En­fin, tant qu’ils ne sont pas sou­mis à va­li­da­tion – et va­li­dés – par Ama­zon, seul le compte dé­ve­lop­peur peut y avoir ac­cès. ❍

Le Lab126 d’Ama­zon. com, à l’ori­gine de l’as­sis­tant de re­con­nais­sance vo­cale Alexa.

Pour dé­ve­lop­per pour Alexa, vous de­vez avoir un compte Ama­zon.

Newspapers in French

Newspapers from France

© PressReader. All rights reserved.