Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Synthèse et reconnaissance vocale [ Divers / General ] (fauve)

samedi 14 juillet 2007 à 13:44:07 | Synthèse et reconnaissance vocale

fauve

Membre Club
Bonjour,

J'ai reussi à faire une transcription en VB.NET du tutoriel présent à cette adresse : http://lgmorand.developpez.com/dotnet/syntrecovocale/

La synthèse vocale fonctionne très bien. En revanche j'ai quelques soucis avec la reconnaissance vocale. La méthode « HandlerReco » est bien appelée à chaque fois que je prononce un mot. En revanche, il n'arrive pas à afficher la règle déclenchée (retour d'une chaîne vide dans la variable « regle »).

Et en ce qui la variable « entree », j'ai affiché ce qu'elle contenait avec une MessageBox et il me retourne pas le mot identifié mais à chaque fois le mot « blah ».

Alors je voudrais savoir si vous pourriez tester ce code et si vous obteniez la même chose ?

Pour que le code fonctionne fonctionne bien, il faut :
          1°   Installer Microsoft Speech SDK 5.1 (disponible à cette adresse : [ Lien ] 
                     >>> Nom du fichier : SpeechSDK51.exe                68.0 MB
         
           2°   Ajouter une référence avec le fichier sapi.dll se trouvant dans ce répertoire : "C:\Program Files\Fichiers communs\Microsoft Shared\Speech"

           3°   Configurer Windows pour qu'il utilise le moteur du Speech SDK "SAPI Developer Sample Engine"

              Panneau de configuration > Voix
Voici le code en VB.NET :

Code :

						
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Button1.Click test(TextBox1.Text)' TestBox1.Text contient le texte que l'utilisateur veut entendreEndSub   Sub test(ByVal phrase AsString)' Synthèse vocaleDim voix AsNew SpVoice Dim flags As SpeechVoiceSpeakFlags If ComboBox1.SelectedItem = ""Then MsgBox("Veuillez sélectionner le type de voix !!!", MsgBoxStyle.OkOnly)ExitSubEndIf voix.Voice = voix.GetVoices("", "").Item(Convert.ToInt32(ComboBox1.SelectedIndex))If TextBox1.Text = ""Then MsgBox("Veuillez entrer une phrase !!!", MsgBoxStyle.OkOnly)ExitSubEndIf voix.Speak(phrase, flags) voix.Volume = 50EndSub   --------------------------------------------------------------------------   PrivateSub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Button2.Click test2()EndSub   Sub test2()' Reconnaissance vocaleDim monRecoContext AsNew SpSharedRecoContext Dim maGrammaire As ISpeechRecoGrammar = monRecoContext.CreateGrammar(0)   maGrammaire.CmdLoadFromFile("C:\grammaire.xml", SpeechLoadOption.SLODynamic) maGrammaire.DictationSetState(SPRULESTATE.SPRS_ACTIVE)   AddHandler monRecoContext.Recognition, AddressOf HandlerReco   EndSub   #Region"HandlerReco"PrivateSub HandlerReco(ByVal StreamNumber AsInteger, ByVal StreamPosition AsObject, ByVal RecognitionType As SpeechRecognitionType, ByVal result As ISpeechRecoResult)Dim entree AsString = result.PhraseInfo.GetText(0, -1, True)Dim regle AsString = result.PhraseInfo.Rule.Name MsgBox(entree)Dim precision AsDouble = CDbl(result.PhraseInfo.Elements.Item(0).ActualConfidence)Dim precision2 AsDouble = CDbl(result.PhraseInfo.Elements.Item(0).ActualConfidence)   If precision <= -1ThenSelectCase regle Case"message" : MessageBox.Show("Nouveau message")Case"exit" : MessageBox.Show("L'application va être fermée")EndSelectEndIfEndSub#End Region

Voici le contenu du fichier "Grammaire.XML"

Citation:
<GRAMMAR LANGID="409">
<RULE NAME="developpez" TOPLEVEL="ACTIVE">
<P>developpez</P>
</RULE>
<RULE NAME="message" TOPLEVEL="ACTIVE">
<P>message</P>
</RULE>
<RULE NAME="hide" TOPLEVEL="ACTIVE">
<P>hide </P>
</RULE>
<RULE NAME="exit" TOPLEVEL="ACTIVE">
<L>
<P>exit</P>
<P>close</P>
</L>
</RULE>
</GRAMMAR>
Merci à tous ceux qui prêteront un peu d'attention à mon post.

samedi 14 juillet 2007 à 13:45:07 | Re : Synthèse et reconnaissance vocale

fauve

Membre Club
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Button1.Click
    test(TextBox1.Text)' TestBox1.Text contient le texte  que l'utilisateur veut entendre
EndSub
 
Sub test(ByVal phrase AsString)' Synthèse vocale
    Dim voix AsNew SpVoice
    Dim flags As SpeechVoiceSpeakFlags
   
    If ComboBox1.SelectedItem = ""Then
        MsgBox("Veuillez sélectionner le type de voix !!!", MsgBoxStyle.OkOnly)
        ExitSub
    EndIf
    voix.Voice = voix.GetVoices("", "").Item(Convert.ToInt32(ComboBox1.SelectedIndex))
    If TextBox1.Text = ""Then
        MsgBox("Veuillez entrer une phrase !!!", MsgBoxStyle.OkOnly)
        ExitSub
    EndIf
    voix.Speak(phrase, flags)
    voix.Volume = 50
EndSub
 
--------------------------------------------------------------------------
 
PrivateSub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Button2.Click
test2()
EndSub
 
Sub test2()' Reconnaissance vocale
       
Dim monRecoContext AsNew SpSharedRecoContext
      Dim maGrammaire As ISpeechRecoGrammar = monRecoContext.CreateGrammar(0)
 
      maGrammaire.CmdLoadFromFile("C:\grammaire.xml", SpeechLoadOption.SLODynamic)
      maGrammaire.DictationSetState(SPRULESTATE.SPRS_ACTIVE)
 
      AddHandler monRecoContext.Recognition, AddressOf HandlerReco
 
EndSub
 
#Region"HandlerReco"
    PrivateSub HandlerReco(ByVal StreamNumber AsInteger, ByVal StreamPosition AsObject, ByVal RecognitionType As SpeechRecognitionType, ByVal result As ISpeechRecoResult)
        Dim entree AsString = result.PhraseInfo.GetText(0, -1, True)
        Dim regle AsString = result.PhraseInfo.Rule.Name
        MsgBox(entree)
        Dim precision AsDouble = CDbl(result.PhraseInfo.Elements.Item(0).ActualConfidence)
        Dim precision2 AsDouble = CDbl(result.PhraseInfo.Elements.Item(0).ActualConfidence)
 
        If precision <= -1Then
            SelectCase regle
                Case"message" : MessageBox.Show("Nouveau message")
                Case"exit" : MessageBox.Show("L'application va être fermée")
            EndSelect
        EndIf       
    EndSub
#End Region

samedi 14 juillet 2007 à 14:53:10 | Re : Synthèse et reconnaissance vocale

us_30

Membre Club
Bonjour,

Peut-être une remarque/question stupide : Est-ce que le fait que tu utilises la reconnaissance Anglaise au lieu du Français, jouerais un rôle dans ton problème ?
(fichier : Mcrosoft English Recognizer)

Amicalement,
Us.

samedi 14 juillet 2007 à 15:38:19 | Re : Synthèse et reconnaissance vocale

fauve

Membre Club

Salut us_30,

Je me suis trompé c'est pas Microsoft English Recognizer v5.1 mais
SAPI Developer Sample Engine qui est utilisé comme moteuret lorsque je teste la synthèse vocale (pour cela, j'ai une TextBox où l'utilisateur
peut rentrer le texte en français qu'il désire entendre). La voix qui dit la phrase de l'utilisateur est française, ce n'est pas une voix anglaise à qui on demande de dire une phrase française. L'accent est correct.

Est ce que tu as reussi à tester mon code ou si tu as d'autres questions sur des points d'ombres sur mon code n'hésites pas à me les poser.

Merci de m'avoir répondu aussi vite.


samedi 14 juillet 2007 à 22:59:32 | Re : Synthèse et reconnaissance vocale

us_30

Membre Club
Bonsoir,

Désolé, je ne peux pas tester ton code car c'est du VB.NET si j'en crois les constantes... je ne faisais qu'une suggestion.
Je laisse une personne calée sur le sujet en VB.Net répondre...

Déjà "blah" cela me cause pas beaucoup, ni sur la base de connaissances de Microsoft ... c'est pas trés clair... IL me semble que cela est lié à un dépassement de capacité
ou quelque chose comme ça... (mauvais typage ?)... c'est vraiment tous que je peux faire... c'est pas grand chose... désolé.

Amicalement,
Us.



Cette discussion est classé dans : vocale, result, voix, reconnaissance, synthèse


Répondre à ce message

Sujets en rapport avec ce message

reconnaissance vocale [ par neo06 ] salut!je cherche du code pour faire de la reconnaissance vocaleHELP!!! Reconnaissance vocale [ par Cyber Bug ] Ya tu quelqun qui sais ou je peux trouver de l'info pour dévlopper un programme avec de la reconnaissance vocale intégré??Merci a l'avance reconnaissance vocale [ par hierroc ] Je rédige un programme où je pourrais envoyer des commandes vocales. Or, malgré mes rercherches sur le site de Microsoft, je n'ai trouvé que des outil Comment faire pour la reconnaissance vocale sur un Agent Microsoft ? [ par meltaphoenix ] Je voudrais savoir comment il est possible d'effectuer une capture de son pour la reconnaissance vocale sur un control microsoft Agent. J'ai mené ma p Comment faire pour la reconnaissance vocale avec un Agent Microsoft ? [ par meltaphoenix ] Je voudrais savoir comment il est possible d'effectuer une capture de son pour la reconnaissance vocale sur un control microsoft Agent. J'ai mené ma p Reconnaissance vocale [ par Alexandre Gauthier ] Salut!J'aimerais programmé sous Vb un programme de protection pour mon portatif... Saisie d'un mot de passe puis reconnaissance vocale. Je recherche u Reconnaissance vocale?!? [ par TaZ83 ] Salut,j'aurais voulu savoir si il était possible de faire en vb6 un programme qui lorsque ont dit par exemple; "internet" il lance internet explorer?? Reconnaissance vocale ( DTW ) [ par sydesys ] Bonjour,Je suis à la recherche d'un algo sur la DTW (Dynamic Time Wrappin) Si l'un de vous à des infos sur le sujet se serait sympat de me les faires reconnaissance vocale [ par ivanjl ] je cherche un programme VB, pouvant commander un logiciel tel winamp... par reconnaissance vocale (ou du moin sonore!)ca doit deja exister!!! (du moin microsoft vcmd ou commande vocale ??? [ par DoudouBidou ] encore une question de reconnaissance vocalej'ai voulais ajouter la synthèse vocale en français et c'est fait en installant le TTS français (vtext)mai


Nos sponsors

Sondage...

CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,234 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.