IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

reconaissance vocal ne marche pas avec xml


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 76
    Points : 53
    Points
    53
    Par défaut reconaissance vocal ne marche pas avec xml
    bonjour je suis en train d'appliquer l'exemple d'un site en utilisant sdk 5.1.
    par exemple dans une simple méthode qui sélectionne une image ça marche parfaitement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    public void InitialisationContexteRCSelect()
            {
                // Contexte de reconnaissance RCSelect et sa grammaire
                RCSelect = new SpSharedRecoContext();
                // Lien de l'évenement Recognation
                RCSelect.Recognition += new _ISpeechRecoContextEvents_RecognitionEventHandler(RCSelect_Recognition_EventHandler);
     
                ISpeechRecoGrammar grammaireSelect;
                ISpeechGrammarRule maRègleSelect;
     
                // Création de la grammaire
                grammaireSelect = RCSelect.CreateGrammar(0);
                // Création de la règle
                maRègleSelect = grammaireSelect.Rules.Add("règleSelect", SpeechRuleAttributes.SRATopLevel | SpeechRuleAttributes.SRADefaultToActive, 0);
     
                ISpeechGrammarRuleState étatAprèsSelect;
                étatAprèsSelect = maRègleSelect.AddState();
     
                // Définition de l'état initial, de la première transition
                object propertyValue = "";
                maRègleSelect.InitialState.AddWordTransition(
                       étatAprèsSelect,  // état suivant
                       "select",               // mot à reconnaître
                       " ", SpeechGrammarWordType.SGLexical, "propSelect",
                       0, ref propertyValue, (float)1);
     
                // Définition des transitions suivantes vers l'état final
                étatAprèsSelect.AddWordTransition(null, "one",
                            " ", SpeechGrammarWordType.SGLexical, "propSelect",
                            0, ref propertyValue, (float)1);
                étatAprèsSelect.AddWordTransition(null, "two",
                            " ", SpeechGrammarWordType.SGLexical, "propSelect",
                            0, ref propertyValue, (float)1);
                étatAprèsSelect.AddWordTransition(null, "three",
                            " ", SpeechGrammarWordType.SGLexical, "propSelect",
                            0, ref propertyValue, (float)1);
                // Validation et activation des règles
                grammaireSelect.Rules.Commit();
                grammaireSelect.CmdSetRuleState("règleSelect", SpeechRuleState.SGDSActive);
                // Lien de l'événement Recognation
                RCSelect.Recognition += new
                    _ISpeechRecoContextEvents_RecognitionEventHandler(RCSelect_Recognition_EventHandler);
            }
    et la methode qui execute l'action :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     private void RCSelect_Recognition_EventHandler(int StreamNumber, object StreamPosition, SpeechRecognitionType RecognitionType, ISpeechRecoResult Result)
            {
                // Désélection de l'image actuellement sélectionnée :
                switch (imageSelectionnée)
                {
                    case 1: image1.BorderStyle = BorderStyle.None; break;
                    case 2: image2.BorderStyle = BorderStyle.None; break;
                    case 3: image3.BorderStyle = BorderStyle.None; break;
                    default: break;
                }
                // Ajouté le style Fixed3D à l'image choisie :
                // On choisie le deuxième élément de Result soit l'élément numéro 1
                string sélection = Result.PhraseInfo.GetText(1, 1, true);
                switch (sélection){
                    case "one": image1.BorderStyle = BorderStyle.Fixed3D;
                        imageSelectionnée = 1;
                        break;
                    case "two": image2.BorderStyle = BorderStyle.Fixed3D;
                        imageSelectionnée = 2;
                        break;
                    case "three": image3.BorderStyle = BorderStyle.Fixed3D;
                        imageSelectionnée = 3;
                        break;
                    default: break;
                }
            }
    toute est bien l'image est sélectionner,mais lorsque je voulais utiliser fichier xml qui contient mon grammaire comme ça,voici les etapes,en premier la méthode qui écoute l'événement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     public void InitialisationContexteRCSelect(){
                // Contexte de reconnaissance RCSelect et sa grammaire
                RCSelect = new SpSharedRecoContext();
                // Lien de l'événement Recognation
                RCSelect.Recognition += new _ISpeechRecoContextEvents_RecognitionEventHandler(
                                       RCSelect_Recognition_EventHandler);
                // Création de la grammaire
                ISpeechRecoGrammar grammaireSelect;
                grammaireSelect = RCSelect.CreateGrammar(0);
                // Chargement de la règle par le fichier .xml
                grammaireSelect.CmdLoadFromFile("regleSelection.xml", SpeechLoadOption.SLODynamic);
                // Validation et activation des règles
                grammaireSelect.Rules.Commit();
                grammaireSelect.CmdSetRuleState("regleSelect",SpeechRuleState.SGDSActive);
            }
    est le fichier xml qui contient grammaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <GRAMMAR LANGID="409">
      <RULE NAME="selection" TOPLEVEL="ACTIVE">
        <P>daba</P>
        <RULEREF NAME="imageNumber"/>
      </RULE>
      <RULE NAME="imageNumber">
        <L>
          <P>one</P>
          <P>two</P>
          <P>three</P>
        </L>
      </RULE>
    </GRAMMAR>
    mon question ,dans la deuxieme méthode est ce qu'il y a une erreur ?
    et merci d'avance.

  2. #2
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 76
    Points : 53
    Points
    53
    Par défaut
    bonjour pour que le fichier xml ou la methode qui utilise le fichier xml soit fonctionnel il faut changer la dernier ligne de la methode ecouteur d'evenement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grammaireSelect.CmdSetRuleState("regleSelect",SpeechRuleState.SGDSActive);
    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    grammaireSelect.CmdSetRuleIdState(0, SpeechRuleState.SGDSActive);
                // Lien de l'événement Recognation
                RCSelect.Recognition += new _ISpeechRecoContextEvents_RecognitionEventHandler(RCSelect_Recognition_EventHandler);
    et merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP-JS] Marche pas avec le Javascript?
    Par MinsK dans le forum Langage
    Réponses: 3
    Dernier message: 04/05/2006, 14h24
  2. [VB6] TypeOf ne marche pas avec les Label ?
    Par belfaigore dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 21/04/2006, 13h36
  3. [CSS] Bug IE avec height ne marche pas avec les %
    Par El Riiico dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 23/06/2005, 17h11
  4. [xhtml][css] bouton du form ne marche pas avec IE6
    Par chinouk dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 14/06/2005, 14h00
  5. Rollback ne marche pas avec interbase
    Par Tsimplice dans le forum Bases de données
    Réponses: 2
    Dernier message: 09/03/2004, 08h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo