cs_fauve
Messages postés661Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention23 mars 2011
-
14 juil. 2007 à 13:44
digital1977
Messages postés32Date d'inscriptionlundi 27 janvier 2003StatutMembreDernière intervention23 juin 2009
-
23 juin 2009 à 23:26
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 ?
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 :
<!-- BEGIN TEMPLATE: bbcode_code -->
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
#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
cs_fauve
Messages postés661Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention23 mars 20118 14 juil. 2007 à 13:45
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
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 14 juil. 2007 à 14:53
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)
cs_fauve
Messages postés661Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention23 mars 20118 14 juil. 2007 à 15:38
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.
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 14 juil. 2007 à 22:59
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?