<!--// /* '_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ '_/ This Microsoft Agent Script Template was generated by '_/ MASH 5.7 - The Microsoft Agent Scripting Helper '_/ Copyright 1998-2002 by BellCraft Technologies (Gordon Scott Bell) '_/ This copyright notice may not be removed without permission. '_/ Visit the MASH Web Site at http://www.bellcraft.com/mash '_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ */ // * Character Objects var Merlin; // * Variables var UsedChars; var MerlinID; var MerlinACS; var MerlinURL; var MerlinStates; var MerlinAnimations; var MerlinReq; var MerlinStatesReq; var MerlinAnimationsReq; var MerlinLoaded; var LoadReq; var HideReq; var MerlinLeftX, MerlinCenterX, MerlinRightX; var MerlinTopY, MerlinCenterY, MerlinBottomY; // * Initialize UsedChars = "Merlin"; // * Merlin MerlinID = "Merlin"; MerlinACS = "merlin.acs"; MerlinURL = "http://agent.microsoft.com/agent2/chars/merlin/merlin.acf"; MerlinStates = "Showing, Hiding, Speaking, Moving"; MerlinAnimations = "Announce, Congratulate_2, Congratulate, Acknowledge, Greet"; MerlinLoaded = false; Window_OnLoad(); function Window_OnLoad() { // Purpose: Runs automatically when page is loaded // * INSERT ANY NON-AGENT RELATED SCRIPTING HERE AgentControl.Connected = true; MerlinLoaded = LoadLocalAgent(MerlinID, MerlinACS); if (!MerlinLoaded) { // Attempt to load default character MerlinLoaded = LoadLocalAgent(MerlinID, ""); } if (MerlinLoaded) { SetCharObj(); } CheckLoadStatus(); } function LoadLocalAgent(CharID, CharACS) { // Purpose: Attempts to load the specified character // Returns: true if successful, false if not AgentControl.RaiseRequestErrors = false; if (CharACS == "") { LoadReq = AgentControl.Characters.Load(CharID); } else { LoadReq = AgentControl.Characters.Load(CharID, CharACS); } AgentControl.RaiseRequestErrors = true; if (LoadReq.Status != 1) { return(true); } return(false); } function SetCharObj() { // Purpose: Sets the character reference and TTS Language ID Merlin = AgentControl.Characters.Character(MerlinID); Merlin.LanguageID = 0x409; } function CheckLoadStatus() { // Purpose: Determines if required characters have been loaded. // If not, issue request to load next character // else run the AgentIntro routine if (!MerlinLoaded) { window.status = "Loading " + MerlinID + " Character. Please Wait..."; MerlinReq = AgentControl.Characters.Load(MerlinID, MerlinURL); return(false); } window.status = ""; AgentIntro(); return(true); } function LoadError() { var strMsg; window.status = ""; strMsg = "Error Loading Character: " + MerlinID + "\n"; strMsg = strMsg + "This Microsoft Agent Script requires the character(s):\n"; strMsg = strMsg + UsedChars; alert(strMsg); } function GetScreenPositions() { var ScreenWidth = window.screen.width; var ScreenHeight = window.screen.height; if ((ScreenWidth == 0) || (ScreenHeight == 0)) { ScreenWidth = 800; ScreenHeight = 600; } MerlinCenterX = (parseInt(ScreenWidth / 2) - parseInt(Merlin.Width / 2)); MerlinRightX = (ScreenWidth - Merlin.Width); MerlinCenterY = (parseInt(ScreenHeight / 2) - parseInt(Merlin.Height / 2)); MerlinBottomY = (ScreenHeight - Merlin.Height); } function InitAgentCommands() { // Purpose: Initialize the Commands menu Merlin.Commands.RemoveAll(); Merlin.Commands.Caption = "My Menu Name"; Merlin.Commands.Add("ACO", "Advanced Character Options", "Advanced Character Options"); } function AgentIntro() { GetScreenPositions(); InitAgentCommands(); // *** BEGIN MASH SCRIPT *** Merlin.Show(); Merlin.Play("Announce"); Merlin.Speak("Welcome to ToLearnEnglish dot com!!"); Merlin.GestureAt(MerlinCenterX, MerlinCenterY); Merlin.Play("Congratulate_2"); Merlin.Speak("A very good choice!"); Merlin.Play("Congratulate"); Merlin.Play("Acknowledge"); Merlin.Play("Greet"); Merlin.Hide(); // *** END MASH SCRIPT *** } //--> <!--// // Purpose: Take action on completion or failure of requests { switch (RequestObject) { case MerlinReq : if (RequestObject.Status == 0) { SetCharObj(); if (MerlinStates != "") { window.status = "Loading " + MerlinID + " States. Please Wait..."; MerlinStatesReq = AgentControl.Characters(MerlinID).Get("State", MerlinStates, true); } else if (MerlinAnimations != "") { window.status = "Loading " + MerlinID + " Animations. Please Wait..."; MerlinAnimationsReq = AgentControl.Characters(MerlinID).Get("Animation", MerlinAnimations, true); } else { MerlinLoaded = true; CheckLoadStatus(); } } else { LoadError(); } break; case MerlinStatesReq : if (RequestObject.Status == 0) { if (MerlinAnimations != "") { window.status = "Loading " + MerlinID + " Animations. Please Wait..."; MerlinAnimationsReq = AgentControl.Characters(MerlinID).Get("Animation", MerlinAnimations, true); } else { MerlinLoaded = true; CheckLoadStatus(); } } else { LoadError(); } break; case MerlinAnimationsReq : if (RequestObject.Status == 0) { MerlinLoaded = true; CheckLoadStatus(); } else { LoadError(); } break; case HideReq : AgentControl.Characters.Unload(MerlinID); break; } // end switch } //--> <!--// // Purpose: Determine Command that was selected either by menu or voice // and run the applicable Command Script var BadConfidence; BadConfidence = 10; if (Input.Confidence <= -40) { // Bad Recognition } else if ((Input.Alt1Name != "") & (Math.abs(Math.abs(Input.Alt1Confidence) - Math.abs(Input.Confidence)) < BadConfidence)) { // Bad Confidence - too close to another command } else if ((Input.Alt2Name != "") && (Math.abs(Math.abs(Input.Alt1Confidence) - Math.abs(Input.Confidence)) < BadConfidence)) { // Bad Confidence - too close to another command } else { // High Confidence // *** BEGIN MASH COMMANDS *** switch(Input.Name) { case "ACO" : AgentControl.PropertySheet.Visible = true; break; } // *** END MASH COMMANDS *** } //--> <!--// //--> <!-- // Insert Click Event Code Here --> <!-- // Purpose: Stop and Hide all characters on double-click Merlin.StopAll(); if (!Merlin.HasOtherClients) { if (Merlin.Visible) { HideReq = Merlin.Hide(); } else { AgentControl.Characters.Character.Unload(MerlinID); } } //_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ //-> 8m54

 

Un petit test sur lequel je travaille en ce moment.

Ne fonctionne qu'avec Internet Explorer, sur un ordinateur équipé de Windows.

Normalement, Merlin va apparaître en haut à gauche.

Merlin sait aussi parler!

Si vous l'avez entendu parler, vous pouvez également lui faire prononcer des phrases en anglais ici.

 

 

Encore plus surprenant! Allez acheter une pizza chez Peedy. Peedy va prendre votre commande et va attendre vos ordres! Vous allez les lui donner en parlant dans votre microphone.

Si vous avez l'ADSL (recommandé pour les composants à installer), un microphone, un PC et Internet Explorer, vous allez er un bon moment.

Normalement, en allant visiter la pizzeria de Peedy, votre ordinateur va automatiquement télécharger tout, mais si vous n'avez pas de son, si vous ne pouvez pas communiquer avec Peedy ou si vous ne le voyez pas (c'est un perroquet), téléchargez ces fichiers.

Fichiers pour voir Peedy

Fichier à installer uniquement si vous avez Windows XP

Fichier pour parler avec Peedy

 

Pour visiter la pizzeria de Peedy, cliquez sur l'image. ATTENTION: n'oubliez pas d'écouter ses instructions pour comprendre comment cela fonctionne. Note: quand vous voulez lui parler, appuyez sur SCROLL LOCK en haut à droite de votre clavier pendant votre intervention, puis relâchez. Ne gardez le doigt appuyé que pendant que vous parlez. Vous allez voir, ça fonctionne très bien, avec un peu d'entraînement (et une bonne prononciation). Pour voir les commandes vocales reconnues, vous pouvez aussi cliquer avec le bouton droit sur Peedy.