Speech Recognition Command and Control SAPI 5.1
Re: Speech Recognition Command (Reconnaissance vocale)
Arg je n'arrive pas à le faire marcher.
Probleme avec COMatePlus ?
"L'initiation de la reconnaissance vocale à échoué :["
Probleme avec COMatePlus ?
"L'initiation de la reconnaissance vocale à échoué :["
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Speech Recognition Command (Reconnaissance vocale)
..........
Dernière modification par Backup le mer. 13/juin/2012 18:39, modifié 2 fois.
Re: Speech Recognition Command (Reconnaissance vocale)
Vivi tout de même ^^Dobro a écrit :questions bete ,
tu as Seven ?
tu as activé la reconnaissance vocale de Seven ? (il sert a rien de l'activer )
tu as crée le fichier XML ( "dico.xml") (utilise Notepad++ pour ça )
si tu sauve avec le Wordpad , tu vas avoir un "dico.xml.txt" ...c'est pas bon
Par contre je m'en vais tester le 1er code.
---edit----
le 1er code fonctionne pourtant bien

Arf je crois que j'ai trouvé, c'est bien le bloc note qui a créé des car spéciaux ... Je modifie et retest
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Speech Recognition Command (Reconnaissance vocale)
C'est bien mon bloc note qui avait squizzé les accents ^^
Par contre maintenant ce n'est pas Virginie qui tchatch, c'est la pauvre voix robotisée de windows.. Faut que je regarde ça de plus prés.
En tout cas, un grand merci à vous ! Y'a de quoi s'amuser comme un fou !
Par contre maintenant ce n'est pas Virginie qui tchatch, c'est la pauvre voix robotisée de windows.. Faut que je regarde ça de plus prés.
En tout cas, un grand merci à vous ! Y'a de quoi s'amuser comme un fou !
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Speech Recognition Command (Reconnaissance vocale)
sinon la procedureDobro a écrit :a ce propos , si vous installez Virginie (magnifique voix Française, en Sapi5 ) sous Win seven 64 bit
il est possible que cette vois n’apparaisse pas dans les voix disponible de Seven
pour la rendre disponible il faut allez dans :
Ordinateur > c:\ Windows > SysWOW64 > Speech >SpeechUX
et double cliquer dur le fichier "sapi.cpl" ; et voila , elle sera reconnue
je remet ici : le lien de la voix Virginie :
http://idee-association.org/wp-content/ ... French.zip
Code : Tout sélectionner
speakk(voix,text.s,volume,vitesse)
par defaut 0 c'est la voix fourni de base
sauf si tu installe virginie
( en fait faudrai vérifier dans le panneauc de config a quel emplacement est la voix )
et mettre le paramettre voix avec le numero (0,1,2,3,4..etc )
ps : j'ai fait une librairie qui permet d'afficher/recuperer le nom des voix, de parler ..etc .. lib_Speak .. faut que je la remette en ligne
le paramettre voix deviens une chaine comprenant directement le nom de la voix a faire parler ...
Re: Speech Recognition Command (Reconnaissance vocale)
oupsOrdinateur > c:\ Windows > SysWOW64 > Speech >SpeechUX
et double cliquer dur le fichier "sapi.cpl" ; et voila , elle sera reconnue


~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Speech Recognition Command (Reconnaissance vocale)
autre exemple , utilisation avec un programme comprenant des boutons , et des case a cocher 
il faut mettre dans le meme emplacement ceci avec comme nom "dico_choix.xml"
se sera le dictionnaire de mots reconnu dans le programme ...
contrairement a celui au dessus, ce programme ne comprends que la formulation simple
par exemple pour le bouton "ok" , il faut dire "ok" ... rien avant , rien apres
dans le dico , seul les termes :"ok,annuler,nico,vache,poisson,chat,quitter" seront reconnus ..
les termes a reconnaitre dans le dico ont la forme :
voici le dictionnaire "dico_choix.xml"
voici le code :

il faut mettre dans le meme emplacement ceci avec comme nom "dico_choix.xml"
se sera le dictionnaire de mots reconnu dans le programme ...
contrairement a celui au dessus, ce programme ne comprends que la formulation simple
par exemple pour le bouton "ok" , il faut dire "ok" ... rien avant , rien apres

dans le dico , seul les termes :"ok,annuler,nico,vache,poisson,chat,quitter" seront reconnus ..
les termes a reconnaitre dans le dico ont la forme :
Code : Tout sélectionner
<item>
[b]quitter[/b] [color=#004000]<<<<<<< ici le terme a reconnaitre[/color]
<tag>$.mouskie={}; $.mouskie._value=[b]"quitter"[/b];</tag> [color=#004000]<<<<< ici le terme qui sera envoyé au prg[/color]
</item>
Code : Tout sélectionner
<GRAMMAR LANGID="40C">
<RULE NAME="interface" TOPLEVEL="ACTIVE">
<L>
<P>ok</P>
<P>quitter</P>
<P>annuler</P>
<P>nono</P>
<P>nico</P>
</L>
</RULE>
<RULE NAME="choix" TOPLEVEL="ACTIVE">
<L>
<P>vache</P>
<P>poisson</P>
<P>chat</P>
</L>
</RULE>
</GRAMMAR>
Code : Tout sélectionner
XIncludeFile "COMatePLUS.pbi"
;{ **************** init synthese Vocale ***************************************
;-init synthese vocale
Procedure Speak2(Text$)
Interface ISpNotifySource Extends IUnknown
SetNotifySink(a)
SetNotifyWindowMessage(a,b,c,d)
SetNotifyCallbackFunction(a,b,c)
SetNotifyCallbackInterface(a,b,c)
SetNotifyWin32Event()
WaitForNotifyEvent(a)
GetNotifyEventHandle()
EndInterface
Interface ISpEventSource Extends ISpNotifySource
SetInterest(a,b)
GetEvents(a,b,c)
GetInfo(a)
EndInterface
Interface ISpVoice Extends ISpEventSource
SetOutput(a,b)
GetOutputObjectToken(a)
GetOutputStream(a)
Pause()
Resume()
SetVoice(a)
GetVoice(a)
Speak(a,b,c)
SpeakStream(a,b,c)
GetStatus(a,b)
Skip(a,b,c)
SetPriority(a)
GetPriority(a)
SetAlertBoundary(a)
GetAlertBoundary(a)
SetRate(a)
GetRate(a)
SetVolume(a)
GetVolume(a)
WaitUntilDone(a)
SetSyncSpeakTimeout(a)
GetSyncSpeakTimeout(a)
SpeakCompleteEvent()
IsUISupported(a,b,c,d)
DisplayUI(a,b,c,d,e)
EndInterface
#CLSCTX_INPROC_SERVER = $1
#CLSCTX_INPROC_HANDLER = $2
#CLSCTX_LOCAL_SERVER = $4
#CLSCTX_REMOTE_SERVER = $10
#CLSCTX_ALL = (#CLSCTX_INPROC_SERVER|#CLSCTX_INPROC_HANDLER|#CLSCTX_LOCAL_SERVER|#CLSCTX_REMOTE_SERVER)
Global VoiceObject.ISpVoice
length = Len(Text$)*2+10
*mem = AllocateMemory(length)
MultiByteToWideChar_(#CP_ACP ,0,Text$,-1,*mem, length)
VoiceObject\Speak(*mem,0,0)
DataSection
CLSID_SpVoice:
;96749377-3391-11D2-9EE3-00C04F797396
Data.l $96749377
Data.w $3391,$11D2
Data.b $9E,$E3,$00,$C0,$4F,$79,$73,$96
IID_ISpVoice:
;6C44DF74-72B9-4992-A1EC-EF996E0422D4
Data.l $6C44DF74
Data.w $72B9,$4992
Data.b $A1,$EC,$EF,$99,$6E,$04,$22,$D4
EndDataSection
EndProcedure
;}
; **********************************************************************
;{ ************ init reconnaissance Vocale **************************************************************
;-init reconaissance Vocale
#CLSCTX_INPROC_SERVER = $1
#CLSCTX_INPROC_HANDLER = $2
#CLSCTX_LOCAL_SERVER = $4
#CLSCTX_REMOTE_SERVER = $10
#CLSCTX_ALL = (#CLSCTX_INPROC_SERVER|#CLSCTX_INPROC_HANDLER|#CLSCTX_LOCAL_SERVER|#CLSCTX_REMOTE_SERVER)
enumeration
#window
endenumeration
Structure Parametres
SpRecoContext.i
SpeechRecoGrammar.i
EndStructure
;Global VoiceObject.ISpVoice
Declare OpenWindow_Window_0()
Declare SpeechRecoContextEvents(event.COMateObject, event$, parameterCount)
Declare Load_Speech_Recognition(*Speech_Recognition.Parametres, File.s)
Declare Load_Speech_Recognition2(*Speech_Recognition.Parametres)
Declare Finish_Speech_Recognition(*Speech_Recognition.Parametres)
Declare Desactive_Recognition(*Speech_Recognition.Parametres, Valeur.l)
Declare speakk(voix,text.s,volume,vitesse)
CoInitialize_(0)
; ********** chargement du Dico ************************
File.s = "dico_choix.xml"
If Load_Speech_Recognition(@Speech_Recognition.Parametres, File.s) = 0
MessageRequester("Erreur", "L'initialisation du moteur de la reconnaissance vocale à échoué!")
End
EndIf
;}
; ***************************************************************************************************
;{- Enumerations / DataSections
;{ Windows
Enumeration
#Window_0
EndEnumeration
;}
;{ Gadgets
Enumeration
#Button_0
#Button_1
#Button_2
#CheckBox_3
#CheckBox_4
#CheckBox_5
#Button_6
EndEnumeration
;}
;}
Procedure OpenWindow_Window_0()
If OpenWindow(#Window_0, 488, 218, 490, 244, "Window_0", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
If CreateGadgetList(WindowID(#Window_0))
ButtonGadget(#Button_0, 21, 16, 76, 40, "Ok")
ButtonGadget(#Button_1, 114, 17, 76, 40, "annuler")
ButtonGadget(#Button_2, 202, 17, 76, 40, "Nico")
CheckBoxGadget(#CheckBox_3, 38, 110, 163, 24, "vache")
CheckBoxGadget(#CheckBox_4, 38, 133, 163, 24, "poisson")
CheckBoxGadget(#CheckBox_5, 38, 156, 163, 24, "chat")
ButtonGadget(#Button_6, 392, 187, 76, 40, "quitter")
EndIf
EndIf
EndProcedure
OpenWindow_Window_0()
;{- Event loop
Repeat
Select WaitWindowEvent(2)
; ///////////////////
Case #PB_Event_Gadget
Select EventGadget()
Case #Button_0
Case #Button_1
Case #Button_2
Case #CheckBox_3
Case #CheckBox_4
Case #CheckBox_5
Case #Button_6
EndSelect
; ////////////////////////
Case #PB_Event_CloseWindow
Select EventWindow()
Case #Window_0
CloseWindow(#Window_0)
Break
EndSelect
EndSelect
Forever
;
;}
;{ ******************** zone procedure Reconnaissance vocale ****************************************
;- procedure reconnaissance vocale
Macro GUID(iid, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, b0)
DataSection
IID:
Data.l $a0
Data.w $a1, $a2
Data.b $a3, $a4, $a5, $a6, $a7, $a8, $a9, $b0
EndDataSection
EndMacro
GUID(IID_ISpeechRecoGrammar ,B6D6F79F,2158,4E50,B5,BC,9A,9C,CD,85,2A,09)
GUID(IID_ISpeechRecognizer, 2D5F1C0C, BD75, 4B08, 94, 78, 3B, 11, FE, A2, 58, 6C)
Procedure SpeechRecoContextEvents(event.COMateObject, event$, parameterCount)
Protected iParam.iUnknown
Protected SpeechRecoResult.COMateObject
Protected SpeechPhraseInfo.COMateObject
Protected Texte.s
;Debug("EVT " + Str(parameterCount) + " " + event$)
Select event$
Case "FalseRecognition"
;SetGadgetText(#String, "<Phrase ou mot non reconnu>")
Case "Recognition"
Debug "-------------Recognition-----------------"
iParam = event\GetObjectEventParam(4)
If iParam
SpeechRecoResult = COMate_WrapCOMObject(iParam)
If SpeechRecoResult
SpeechPhraseInfo = SpeechRecoResult\GetObjectProperty("PhraseInfo()")
If SpeechPhraseInfo
mem_text.s=texte.s ; on retient le mot qui viens d'etre reconnu
Texte.s = SpeechPhraseInfo\GetStringProperty("GetText(0, -1, 1)") ; on recupere le mot entendu
if mem_text<>texte.s ; ajout du teste qui empeche la diction du meme mot reconnu ..; ajout du teste qui empeche la diction du meme mot reconnu ; on parle seulement si ce n'est pas le meme mot que tout a l'heure
;SetGadgetText(#String, Texte)
debug texte
Select Texte
case "ok" ; terme reçu par la reconnaissance vocale
MessageRequester("info","tu as choisi 'OK'")
Case "annuler"; terme reçu par la reconnaissance vocale
MessageRequester("info","tu as choisi 'ANNULER'")
Case "nico"; terme reçu par la reconnaissance vocale
MessageRequester("info","tu as choisi 'NICO'")
case "vache"; terme reçu par la reconnaissance vocale
SetGadgetState(#CheckBox_3, 1)
SetGadgetState(#CheckBox_4, 0)
SetGadgetState(#CheckBox_5, 0)
case "poisson"; terme reçu par la reconnaissance vocale
SetGadgetState(#CheckBox_3, 0)
SetGadgetState(#CheckBox_4, 1)
SetGadgetState(#CheckBox_5, 0)
case "chat"; terme reçu par la reconnaissance vocale
SetGadgetState(#CheckBox_3, 0)
SetGadgetState(#CheckBox_4, 0)
SetGadgetState(#CheckBox_5, 1)
case "quitter"; terme reçu par la reconnaissance vocale
CoUninitialize_() ; sert a quitter le moteur de reconnaissance vocale
end
EndSelect
Texte=" "
SpeechPhraseInfo\Release()
endif
EndIf
SpeechRecoResult\Release()
EndIf
iParam\Release()
EndIf
Case "Hypothesis"
;{
;Debug "------------Hypothesis------------------"
;
; SetGadgetText(#Text_Message, "Enregistrement en cours...")
;
; iParam = event\GetObjectEventParam(3)
; If iParam
; SpeechRecoResult = COMate_WrapCOMObject(iParam)
; If SpeechRecoResult
; SpeechPhraseInfo = SpeechRecoResult\GetObjectProperty("PhraseInfo()")
; If SpeechPhraseInfo
; Texte = SpeechPhraseInfo\GetStringProperty("GetText(0, -1, 1)")
;
; SetGadgetText(#Editor, Texte + Chr(13) + GetGadgetText(#Editor))
;
; SpeechPhraseInfo\Release()
; EndIf
; SpeechRecoResult\Release()
; EndIf
; iParam\Release()
; EndIf
;}
Case "SoundStart"
Debug "SoundStart"
;SetGadgetText(#String, "")
Case "SoundEnd"
Debug "SoundEnd"
;SetGadgetText(#Text_Message, "Parler")
Case "StartStream"
; Debug "StartStream"
Case "EndStream"
; Debug "EndStream"
ProcedureReturn
EndSelect
EndProcedure
Procedure Load_Speech_Recognition(*Speech_Recognition.Parametres, File.s)
Protected SpRecoContext.COMateObject
Protected SpRecoGrammar.COMateObject
Protected Init_Recognition.l = 0
Protected SpRecognizer.COMateObject
Protected SpeechRecognizer.COMateObject
Protected SpObjectTokenCategory.COMateObject
Protected SpObjectToken.COMateObject
SpRecoContext = COMate_CreateObject("SAPI.SpInProcRecoContext")
Debug COMate_GetLastErrorDescription()
If SpRecoContext = 0 : Goto Clean : EndIf
SpRecoGrammar = SpRecoContext\GetObjectProperty("CreateGrammar(0)")
If SpRecoGrammar = 0 : Goto Clean : EndIf
RecoGrammar.idispatch = SpRecoGrammar\GetCOMObject()
If RecoGrammar = 0 : Goto Clean : EndIf
RecoGrammar\QueryInterface(?IID_ISpeechRecoGrammar, @SpeechRecoGrammar_)
If SpeechRecoGrammar_= 0 : Goto Clean : EndIf
SpeechRecoGrammar.COMateObject = COMate_WrapCOMObject(SpeechRecoGrammar_)
Debug COMate_GetLastErrorDescription()
If SpeechRecoGrammar = 0 : Goto Clean : EndIf
#SLOStatic = 0
#SLODynamic = 1
If SpeechRecoGrammar\invoke("CmdLoadFromFile('" + File + "', " + Str(#SLODynamic) + ")") <> 0
Debug COMate_GetLastErrorDescription()
Goto Clean
EndIf
If SpRecoContext\SetEventHandler(#COMate_CatchAllEvents, @SpeechRecoContextEvents()) <> 0
Debug COMate_GetLastErrorDescription()
Goto Clean
EndIf
SpRecognizer = SpRecoContext\GetObjectProperty("Recognizer()")
If SpRecognizer = 0 : Goto Clean : EndIf
Recognizer.idispatch = SpRecognizer\GetCOMObject()
If Recognizer = 0 : Goto Clean : EndIf
Recognizer\QueryInterface(?IID_ISpeechRecognizer, @SpeechRecognizer_)
If SpeechRecognizer_ = 0 : Goto Clean : EndIf
SpeechRecognizer.COMateObject = COMate_WrapCOMObject(SpeechRecognizer_)
If SpeechRecognizer = 0 : Goto Clean : EndIf
SpObjectTokenCategory = COMate_CreateObject("SAPI.SpObjectTokenCategory")
If SpObjectTokenCategory = 0 : Goto Clean : EndIf
#SpeechCategoryAudioIn="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\AudioInput"
If SpObjectTokenCategory\invoke("SetId('"+ #SpeechCategoryAudioIn +"', 0)") <> 0
Debug comate_getlasterrordescription()
Goto Clean
EndIf
SpObjectToken = COMate_CreateObject("SAPI.SpObjectToken")
If SpObjectToken = 0 : Goto Clean : EndIf
Audio$=SpObjectTokenCategory\GetStringProperty("Default()")
Debug audio$
If SpObjectToken\invoke("SetId('"+ Audio$ + "')") <> 0
Goto Clean
EndIf
If SpeechRecognizer\Setpropertyref("AudioInput(" + Str(SpObjectToken) + " as COMateObject)") <> 0
Goto Clean
EndIf
; La Règle de grammaire est active.
#SGDSActive = 1
If SpeechRecoGrammar\invoke("CmdSetRuleIdState(0, " + Str(#SGDSActive) + ")") <> 0
Goto Clean
Else
Init_Recognition = 1
EndIf
Clean:
If Init_Recognition = 0
If SpRecoContext <> 0 : SpRecoContext\Release() : EndIf
If SpRecoGrammar <> 0 : SpRecoGrammar\Release() : EndIf
If SpeechRecoGrammar <> 0 : SpeechRecoGrammar\Release() : EndIf
Else
*Speech_Recognition\SpRecoContext = SpRecoContext
*Speech_Recognition\SpeechRecoGrammar = SpeechRecoGrammar
EndIf
ProcedureReturn Init_Recognition
EndProcedure
Procedure Finish_Speech_Recognition(*Speech_Recognition.Parametres)
Protected SpRecoContext.COMateObject
Protected SpeechRecoGrammar.COMateObject
SpRecoContext = *Speech_Recognition\SpRecoContext
SpeechRecoGrammar = *Speech_Recognition\SpeechRecoGrammar
If SpeechRecoGrammar <> 0
; La Règle de grammaire est inactive.
#SGDSInActive = 0
SpeechRecoGrammar\invoke("CmdSetRuleIdState(0, " + Str(#SGDSInActive) + ")")
SpeechRecoGrammar\Release()
EndIf
If SpRecoContext <> 0
SpRecoContext\SetEventHandler(#COMate_CatchAllEvents, 0)
SpRecoContext\Release()
EndIf
EndProcedure
Procedure Desactive_Recognition(*Speech_Recognition.Parametres, Valeur.l)
Protected SpeechRecoGrammar.COMateObject
SpeechRecoGrammar = *Speech_Recognition\SpeechRecoGrammar
#SGDSInActive = 0
#SGDSActive = 1
If Valeur = 0
SpeechRecoGrammar\invoke("CmdSetRuleIdState(0, " + Str(#SGDSActive) + ")")
Debug COMate_GetLastErrorDescription()
ElseIf Valeur = 1
SpeechRecoGrammar\invoke("CmdSetRuleIdState(0, " + Str(#SGDSInActive) + ")")
Debug COMate_GetLastErrorDescription()
EndIf
EndProcedure
;}
; *****************************************************************************************************
Dernière modification par Backup le mer. 13/juin/2012 18:40, modifié 2 fois.
Re: Speech Recognition Command (Reconnaissance vocale)
Je viens de saisir l'histoire des deux formats, celle que j'ai posté est pour le SAPI 5.1, pour le 5.3, une norme à été pondu, on y parle de sémantique, il faut faire appel à d'autres interfaces pour récupérer ces valeurs avec l'interface ISpXMLRecoResult apparemment, il faudrait donc adapté le code pour le nouveau format.
Re: Speech Recognition Command (Reconnaissance vocale)
.............
Dernière modification par Backup le mer. 13/juin/2012 18:42, modifié 1 fois.
Re: Speech Recognition Command (Reconnaissance vocale)
De toute façon, c'est clair qu'il faudrait utiliser le dernier format, mais j'ai voulu tester ce que tu dis et ça marche très bien, voici le fichier:
Code : Tout sélectionner
<GRAMMAR LANGID="40C">
<RULE NAME="cacher" TOPLEVEL="ACTIVE">
<L>
<P>cacher</P>
<P>disparaitre</P>
</L>
</RULE>
<RULE NAME="montrer" TOPLEVEL="ACTIVE">
<L>
<P>montrer</P>
<P>afficher</P>
</L>
</RULE>
<RULE NAME="programmation" TOPLEVEL="ACTIVE">
<P>coder </P>
</RULE>
<RULE NAME="fermer" TOPLEVEL="ACTIVE">
<L>
<P>sortir</P>
<P>terminer</P>
</L>
</RULE>
<RULE NAME="fruits" TOPLEVEL="ACTIVE">
<L>
<P>orange</P>
<P>pomme</P>
</L>
</RULE>
</GRAMMAR>
Re: Speech Recognition Command (Reconnaissance vocale)
ha mais oui , mais moi je partait sur la structure que tu avait mis en topic page 1
là c'est deja plus la meme chose

là c'est deja plus la meme chose

Re: Speech Recognition Command (Reconnaissance vocale)
faudra faire gaffe pour les anglais
cette ligne semble poser probleme
c'est 
et
cette ligne semble poser probleme
Code : Tout sélectionner
xml:lang="fr-FR" mode="voice" tag-format="semantics-ms/1.0"
je pensexml:lang="en-GB" mode="voice" tag-format="semantics-ms/1.0"

et
pour l'ancien format<GRAMMAR LANGID="409">
Re: Speech Recognition Command (Reconnaissance vocale)
Oui, c'est sûr, en plus toutes les langues ne sont pas forcément implémentées,
j'ai vu que c'était bon pour l'anglais british et us, le français et l'espagnol mais pour le reste je ne sais pas.
J'ai updaté le code, j'ai ajouté la possibilité de récupérer le niveau de reconnaissance (-1,0,1) correspondant à bas, normal et haut, il ne faut utiliser que le retour de texte en niveau normal, voir même priviligier le niveau 1.
Il faudrait faire un petit algorithme lorsqu'on met une phrase au lieu d'un mot pour déterminer un seuil acceptable.
De plus, j'affiche aussi le nom du rule; c'est plus simple pour le codage; ça permet de mettre plusieurs textes pour une même commande, donc au lieu de travailler avec le texte, on travaille avec le nom du rule.
j'ai vu que c'était bon pour l'anglais british et us, le français et l'espagnol mais pour le reste je ne sais pas.
J'ai updaté le code, j'ai ajouté la possibilité de récupérer le niveau de reconnaissance (-1,0,1) correspondant à bas, normal et haut, il ne faut utiliser que le retour de texte en niveau normal, voir même priviligier le niveau 1.
Il faudrait faire un petit algorithme lorsqu'on met une phrase au lieu d'un mot pour déterminer un seuil acceptable.
De plus, j'affiche aussi le nom du rule; c'est plus simple pour le codage; ça permet de mettre plusieurs textes pour une même commande, donc au lieu de travailler avec le texte, on travaille avec le nom du rule.
Re: Speech Recognition Command (Reconnaissance vocale)
j'ai lu que ce n'etait tout simplement pas pris en charge !nico a écrit : j'ai vu que c'était bon pour l'anglais british et us, le français et l'espagnol mais pour le reste je ne sais pas.
ha ! ça c'est enorme !J'ai updaté le code, j'ai ajouté la possibilité de récupérer le niveau de reconnaissance (-1,0,1) correspondant à bas, normal et haut, il ne faut utiliser que le retour de texte en niveau normal, voir même priviligier le niveau 1.

ça permet carrement de na pas tenir compte lorsqu'on est pas sur !
facile si <1 say (avec la voix de thierry Bourdon dans inconnu ) " Vous pouvez répéter la question ?"Il faudrait faire un petit algorithme lorsqu'on met une phrase au lieu d'un mot pour déterminer un seuil acceptable.

ce qui permettrai de faire réagir le programme sur "Fruit"De plus, j'affiche aussi le nom du rule; c'est plus simple pour le codage; ça permet de mettre plusieurs textes pour une même commande, donc au lieu de travailler avec le texte, on travaille avec le nom du rule.
alors que l'orateur dit "pomme" ou "orange" ... c'est bien ça ?
si oui, ça ouvre carrément les choix

sacres boulot !

et encore Désolé , pour le forum anglais ..
Re: Speech Recognition Command (Reconnaissance vocale)
Code : Tout sélectionner
facile si <1 say (avec la voix de thierry Bourdon dans inconnu ) " Vous pouvez répéter la question ?"