Speech Recognition Command and Control SAPI 5.1

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Speech Recognition Command (Reconnaissance vocale)

Message par Backup »

ça rejoint ce que je disais a Case

si tu considere un ou deux mots clefs dans une phrase , ça deviens simple a deviner

on regarde le score des mots clef !

par contre si le but est la diction d'un texte , là ç'est different

car il faudrait etre sur que chaque mot soit niquel

dans ce cas l'algo c'est ecouter la phrase , mettre les mots ( et leur valeur ) dans un tableau (list.. )

et faire répéter a nouveau cette liste de mots, pour éliminer le doute sur les mots en question
et du coup remplacer par les nouveau mots ; les mots qui etait avc un score inf a 1 :)

ex : le gars dit :"je suis allez chez le medecin"
il y a un doute sur "medecin"
le prg a compris "mes deux Seins" ... :lol:

il fait répéter "mes deux Seins" ; le score est bon , "medecin" remplacera "mes deux Seins"

bon l'exemple est trivial :lol:
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Speech Recognition Command (Reconnaissance vocale)

Message par nico »

C'est bon, j'arrive à récupérer la sémantique, j'ai trouvé quelques explications ici concernant le format:

http://msdn.microsoft.com/fr-fr/vcsharp/hh202852.aspx
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Speech Recognition Command (Reconnaissance vocale)

Message par Ar-S »

Cool ça, Et parfait pour se faire un lanceur d'appli de façon vocale.

en me basant sur le code du 1er topic

J'ai testé en ajoutant dans le dico

Code : Tout sélectionner

<RULE NAME="navigateur" TOPLEVEL="ACTIVE">
    <L>
     <P>fayeurfox</P> <<<<< écrit à la française comme je le prononce à l'anglaise
     <P>internet</P>
    </L>
</RULE>
et dans le code :

Code : Tout sélectionner

Case "internet"
                SetGadgetText(#String, "Lancement du navigateur")
                RunProgram("c:\Program Files (x86)\Mozilla Firefox\Firefox.exe")
ça marche nikel.

C'est vraiment un rêve qui se réalise (pouvoir faire ça en PB, j'avais bien Dragon Naturally Speaking mais trop trop lourd pour un simple lanceur)

Merci encore Nico. ça devient excellent.
~~~~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
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Speech Recognition Command (Reconnaissance vocale)

Message par Backup »

merci a toi aussi Ar-s , plus ont est de fou a chercher , mieux on avance :)

le coup du lanceur d'application, j'y pensai bien pour coupler avec mon ( notre) starter :)
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Speech Recognition Command (Reconnaissance vocale)

Message par Ar-S »

D'ailleurs faudrait mettre à jour le dico un par rapport à l'interface au topic 1 concernant visible/invisible.
<GRAMMAR LANGID="40C">
<RULE NAME="cacher" TOPLEVEL="ACTIVE">
<L>
<P>invisible</P>
<P>cacher</P>
<P>disparaitre</P>
</L>
</RULE>
<RULE NAME="montrer" TOPLEVEL="ACTIVE">
<L>
<P>visible</P>
<P>montrer</P>
<P>afficher</P>
</L>
</RULE>
<RULE NAME="programmation" TOPLEVEL="ACTIVE">
<P>coder </P>
</RULE>
<RULE NAME="fermer" TOPLEVEL="ACTIVE">
<L>
<P>fermer</P>
<P>sortir</P>
<P>terminer</P>
</L>
</RULE>
<RULE NAME="fruits" TOPLEVEL="ACTIVE">
<L>
<P>orange</P>
<P>pomme</P>
</L>
</RULE>
<RULE NAME="navigateur" TOPLEVEL="ACTIVE">
<L>
<P>fayeurfox</P>
<P>internet</P>
</L>
</RULE>


</GRAMMAR>
Il faut aussi permettre la reconnaissance de tous les mots par RuleName dans le Select/case

Code : Tout sélectionner

Select Texte
; Rule 'AFFICHER'
              Case "visible","montrer","afficher"
								HideWindow(#Window_0, 0)
; Rule 'CACHER'
              Case "invisible","cacher","disparaitre"
								HideWindow(#Window_0, 1)
; Rule NAVIGATEUR
              Case "internet","fayeurfox"
                SetGadgetText(#String, "Lancement du navigateur")
                RunProgram("c:\Program Files (x86)\Mozilla Firefox\Firefox.exe")

; Etc, Etc..                
            EndSelect
~~~~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
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Speech Recognition Command (Reconnaissance vocale)

Message par Backup »

Ar-S a écrit :D'ailleurs faudrait mettre à jour le dico un par rapport à l'interface au topic 1 concernant visible/invisible.
ne t'embale pas , le bon format c'est celui-ci (normalement... mais peut etre que l'autre format donne la compatibilité avec XP ..? ) ;)

Code : Tout sélectionner

<?xml version="1.0" encoding="UTF-8"?>
<grammar version="1.0" xml:lang="fr-FR" mode="voice" tag-format="semantics-ms/1.0"
root="mouskie" xmlns="http://www.w3.org/2001/06/grammar">
<rule id="mouskie" scope="public">
<ruleref special="GARBAGE" />
<one-of>
<item>
l'heure
<tag>$.mouskie={}; $.mouskie._value="l'heure";</tag>
</item>
<item>
météo
<tag>$.mouskie={}; $.mouskie._value="météo";</tag>
</item>
<item>
nono
<tag>$.mouskie={}; $.mouskie._value="dobro";</tag>
</item>
<item>
bye
<tag>$.mouskie={}; $.mouskie._value="bye";</tag>
</item>
<item>
merci
<tag>$.mouskie={}; $.mouskie._value="merci";</tag>
</item>
<item>
bidon
<tag>$.mouskie={}; $.mouskie._value="bidon";</tag>
</item>
</one-of>
<ruleref special="GARBAGE" />
</rule>
</grammar>

Il faut aussi permettre la reconnaissance de tous les mots par RuleName dans le Select/case
non , car avec le nouveau "moteur" que Nico a ecris , plusieurs terme seront reconnu sous le nom de la rule

genre si on dit orange ou pomme ; le prg reçoit nom de rule :"fruits" , mais reçoit aussi "pomme" ou "orange"en tant que Termes.. enfin c'est ce que j'ai crus comprendre en regardant les résultat du Dernier code :)

reedit : ben oui , je t'ai relu , finalement tu as raison pour les Case :oops: :lol:
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Speech Recognition Command (Reconnaissance vocale)

Message par Ar-S »

En tout cas ça marche déjà très bien avec un dico structuré en

<RULE NAME="" TOPLEVEL="ACTIVE">
<L><P></P></L>
</RULE>

je navigue sans problème dans mes répertoires de cette façon, c'est déjà énorme.

Code : Tout sélectionner

<RULE NAME="dossier" TOPLEVEL="ACTIVE">
    <L>
     <P>mes codes P B</P>
     <P>ma musique</P>
	 <P>mes documents</P>
	 <P>mes vidéos</P>
	 <P>mes séries</P>
	 <P>mes images</P>
    </L>
</RULE>
Je pars bosser, j'essayerai de revenir d'ici ce soir ou demain.
~~~~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
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Speech Recognition Command (Reconnaissance vocale)

Message par nico »

Ce topic là ne concernera que le SAPI 5.1 compatible XP, j'ouvrirais un autre topic pour la 5.3 compatible à partir de vista.

Je ne reprendrais pas l'exemple de Dobro avec l'exemple mouskie qui est trop compliqué dans la syntaxe, je reprendrais l'exemple ici:
http://msdn.microsoft.com/fr-fr/vcsharp/hh202852.aspx
beaucoup plus simple à comprendre

Avec la 5.3 on peut combiner avec des références

Avec cette extrait:

Il y a une référence vers lecture sur l'item arreter, ce qui permet de dire: arrêter lecture, arrêter lecture texte etc...
donc on peut combiner des trucs sans avoir à tous réécrire.

Code : Tout sélectionner

...

<item>ARRETER
     <ruleref uri="#ID_LECTURE"/>
       <tag>out="ARRETER";</tag>
     </item>

...

<ruleid="ID_LECTURE">
   <one-of>
     <item>Lecture du texte</item>
     <item>Lecture</item>
     <item>Synthétiser le texte</item>
     <item>Synthétiser</item>
     <item>Jouer le texte</item>
     <item>Jouer</item>
   </one-of>
</rule>
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Speech Recognition Command and Control SAPI 5.1

Message par Ar-S »

Donc si j'ai bien compris le <tag>out="ARRETER";</tag> permet de reprendre les données d'ID_Lecture ?
Dans l'exemple donné
<ruleid="ID_LECTURE">
<one-of>
<item>Lecture du texte</item>
<item>Lecture</item>
<item>Synthétiser le texte</item>
<item>Synthétiser</item>
<item>Jouer le texte</item>
<item>Jouer</item>
</one-of>
</rule>
Et de comprendre ce qui suit sans avoir à le taper ?
<ruleid="ID_LECTURE">
<one-of>
<item>Arreter Lecture du texte</item>
<item>Arreter Lecture</item>
<item>Arreter Synthétiser le texte</item>
<item>Arreter Synthétiser</item>
<item>Arreter Jouer le texte</item>
<item>Arreter Jouer</item>
</one-of>
</rule>
J'ai bien compris ?
~~~~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
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Speech Recognition Command and Control SAPI 5.1

Message par nico »

Oui sauf que c'est cette ligne qui permet de faire ça:

Code : Tout sélectionner

<ruleref uri="#ID_LECTURE"/>
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Speech Recognition Command (Reconnaissance vocale)

Message par Backup »

nico a écrit : Je ne reprendrais pas l'exemple de Dobro avec l'exemple mouskie qui est trop compliqué dans la syntaxe, je reprendrais l'exemple ici:
http://msdn.microsoft.com/fr-fr/vcsharp/hh202852.aspx
beaucoup plus simple à comprendre
moi ça me vas , du moment que ça marche ...

de plus je dispose d'ordis sous Seven ET Xp alors .... ;)

ps : enfin je remarque que l'entete dans ton lien ,(http://msdn.microsoft.com/fr-fr/vcsharp/hh202852.aspx) est quand meme le meme !

et aussi ,ils ecrivent "private" au lieu de mouskie

<grammar xml:lang="fr-FR" root="root" tag-format="semantics/1.0"
version="1.0" xmlns="http://www.w3.org/2001/06/grammar">

Ensuite il faut définir la règle racine

<rule id="root"scope="private">
et pas :
<GRAMMAR LANGID="40C">
...

a moins que tu ne te soit trompé de lien ?
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Speech Recognition Command and Control SAPI 5.1

Message par nico »

Ah mais c'est pas vrai, va falloir que je l'écrive combien de fois!!!

Window XP est sorti en 2002 et la norme est sortie en 2004, c'est pour ça qu'il y a SAPI 5.1 et SAPI 5.3, les API qui permette de tirer parti de la norme font partie de SAPI 5.3, en clair sous Window XP, tu ne peux pas utiliser ce fichier parce que tu n'as tout simplement pas les API qui permettent de l'exploiter!

C'est clair maintenant.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Speech Recognition Command and Control SAPI 5.1

Message par Backup »

oula ! doucement


1 - tu dis :
Je ne reprendrais pas l'exemple de Dobro avec l'exemple mouskie qui est trop compliqué dans la syntaxe,


2- tu dis :
je reprendrais l'exemple ici:
http://msdn.microsoft.com/fr-fr/vcsharp/hh202852.aspx
beaucoup plus simple à comprendre
je vais dans le lien en question , et je lis :
Exemple de grammaire

Sans rentrer trop dans le détail du format XML d’une grammaire, en voici les éléments principaux : (Vous retrouverez dans la documentation MSDN tout le détail des éléments et des attributs utilisés http://msdn.microsoft.com/en-us/library/ff394896.aspx)

Une grammaire commence toujours par la balise <grammar>

<grammar xml:lang="fr-FR" root="root" tag-format="semantics/1.0"
version="1.0" xmlns="http://www.w3.org/2001/06/grammar">

Ensuite il faut définir la règle racine

<rule id="root"scope="private">
je constate qu'il s'agit du meme entête que le miens !

et pas
<GRAMMAR LANGID="40C">
, entete que TU utilises depuis le debut du topic

donc , il y a une incohérence dans tes propos !
c'est pourquoi j'ai pensé que tu t'etais trompé d'adresse de lien

maintenant , je vais te laisser sur ce topic , puisqu'il semble que ma présence dérange !
amusez vous bien ..
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Speech Recognition Command and Control SAPI 5.1

Message par nico »

Tu ne déranges pas, on va dire que l'écrit à ses limites, et il n'est pas toujours aisé de se faire comprendre surtout sur un forum.

J'ai écrit que je ferais un sujet 5.1 (celui-ci même) et un nouveau sujet 5.3 pour parler du nouveau format

donc je laisse l'exemple du premier post.

Désolé de t'avoir froissé.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Speech Recognition Command and Control SAPI 5.1

Message par Backup »

nico a écrit :Tu ne déranges pas, on va dire que l'écrit à ses limites, et il n'est pas toujours aisé de se faire comprendre surtout sur un forum.

J'ai écrit que je ferais un sujet 5.1 (celui-ci même) et un nouveau sujet 5.3 pour parler du nouveau format

donc je laisse l'exemple du premier post.
ceux a quoi j'ai répondu :


nico a écrit : Je ne reprendrais pas l'exemple de Dobro avec l'exemple mouskie qui est trop compliqué dans la syntaxe, je reprendrais l'exemple ici:
http://msdn.microsoft.com/fr-fr/vcsharp/hh202852.aspx
beaucoup plus simple à comprendre
...
Dobro a écrit : moi ça me vas , du moment que ça marche ...
;)


allez , j'ajoute meme , qu'au fond, je préfere , la syntaxe est plus simple :)
Répondre