[Episode 3 - RTE Exemple] Contrôler avec sa voix (VoiceRecognition)

  • Auteur de la discussion Auteur de la discussion delete221380
  • Créé le Créé le
Statut
N'est pas ouverte pour d'autres réponses.
Ca tente des gens de savoir comment faire des requête a une base de donnée MySQL depuis une Form en C# ou C++ ou pas ?
Oui moi sa me tante enormement car tu devai mexpliquer mais tu doi pas avoir le temp de le faire ;) ses la seul chosse quil me manque pour release mon tool , je vai tester ton tuto sur la reconnaisance vocal et si je foir pas je vai faire tout mon tool avec :p merci a toi
 
Après tu demande à ton programme qu'il te réponde "vocalement" est sa éviteras à Curly d'être en manque de stock :troll:
 
Après tu demande à ton programme qu'il te réponde "vocalement" est sa éviteras à Curly d'être en manque de stock :troll:
J'ai testé pour lui demander l'heure et qui me donne une réponse, si t'arrive a faire l'enum de 400 action tu peut passer la journée a parler a ton PC comme un gros retard' :troll:
 
L'épisode suivant est disponible a cette adresse > http://reality-gaming.fr/threads/c-episode-4-requete-mysql-gestion.286963/#post-3170470
 
Enorme bravo ;)
 
Sa gère maggle ! :)
 
Yop all c'est DEVR0 on ce retrouve pour un nouveau tuto qui compte dans ma série dédié au tutoriaux programmation, Episode numero 3 :D . Ce tutoriel s'adresse au personne ayant des base en C#



Vous l'aurais comprit dans le titre, ce tutoriel va vous montrer comment faire une base de tool RTE contrôler avec votre voix, donc vous pouvez l'adapter avec n'importe quel autres actions comme SetMemory, GetMemory etc... (je vais pas vous faire un inventaire d'un tool RTE non plus). Ce système peut paraitre Useless pour certains mais croyez moi ca peut servrir pour n'importe quel situations comme créer un remote en vocale pour votre PC ou autre manager ;)

Pour l'exemple que je vais vous montrer ca sera pour établir une connexion entre le PC et la PS3 (DEX uniquement), ouvrir une Form, fermer le tout, faire écrire le logiciel a votre place

Bref commençons par ce qu'il vous faut :
  • Visual Studio 2012 ou 2013.
  • Etre patient
  • Un cerveau :troll: (c'est pas donner a tout le monde hein :troll:)
  • Avoir des bases en C# (peut s'adapter dans d'autre langages, je l'ai également mis en C++)

Création du projet :​

Créer un nouveau projet séléctionné "WindowsForm Application" comme a votre habitude, pour ma part j'ai selectionner "WPF Application" (pour test des composants nouveau) choisissez le nom que vous voulez pour ma part se sera "VoiceTest.cs" .​

1396810354-projet.png



Form, Composants & Réferences :

Vous pouvez voir que votre écran et en 2 partie, mais que vous avez tout de même un concepteur de Form pour faire votre design, faite comme a votre habitude ajouter vos composants, faite vos menu etc....
Ajouter aussi vos références PS3TMAPI et PS3Lib.

Pour ajouter votre outil vous devez refaire afficher la boite a outil, j'ai encadré ou allez pour l'affcher (dans le cas d'une WPF Application)

1396811265-projet3.png


(J'ai quand même ajouter des bouton Connect & Attach au cas ou l'user a envie d'utiliser en mode conventionnel )
Pour le moment nous avons préparer le terrain pour controler ce petit sample avec notre voix, n'oublié pas de coder aussi la partie utilisation conventionnel (comme pour n'importe quel tool RTE).

Pour pouvoir contrôler notre Formulaire avec la voix nous allons avoir besoin d'une référence appelé System.Speech (elle est de base dans VS depuis NET Framework 4.0) > Ajouter la en référence

Une fois le dll ajouter en référence ne pas oublié de déclarer son utilisations
Code:
using System.Speech.Recognition;
(l'ajout de ce code au même titre que totu le reste se passe dans MainWindow.waml.cs)

Déclaré aussi une instance dans votre public partial class comme ceci

Code:
  private SpeechRecognitionEngine tutoRG;


Vous devez obtenir quelque choses de similaires a ceci

1396812305-projet-5.png

Une fois ceci fait, double cliquer sur votre bouton "Démaré la reconaissance vocale" ou si vous le voulez de base vous pouvez lancer la fonction au démarage de votre Form.

Fonction de reconnaissance au démarage du tool : ( ca ne changera rien si votre fonction est déclaré "public" ou "private" )
Créer simplement une fonction comme celle-ci , appelé la comme vous voulez c'est pas très important:

Code:
 public void Reconnaissance()

        {

            Reco = new SpeechRecognitionEngine();
            Reco.SetInputToDefaultAudioDevice();
            Choices choices = new Choices("Connexion", "Attacher", "Connect", "Attach", "Statistique", "Réglages", "Fermer", "OK", "Standart", "Accueil", "Max", "Envoie","Déconnexion","Active","Désactive","Reality","Affiche","Redémare");
            GrammarBuilder grBuilder = new GrammarBuilder(choices);
            Grammar grammar = new Grammar(grBuilder);
            Reco.LoadGrammar(grammar);
            Reco.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(_rg_SpeechRecognized);
            Reco.RecognizeAsync(RecognizeMode.Multiple);
        }

Ajoute simplement dans le Form_Load //Code servant a utiliser une fonction (dans la porté de la classe uniquement*)
Code:
Reconnaissance();




Fonction de reconnaissance activé au clique d'un bouton :

Une fois dans le code du bouton entrer cette fonction
//On définit le perophérique d'entré avec le périphérique d'entré par défault de votre PC donc soit casque soit micro intégré
//On fait l'inventaire des mot a reconnaitre


Code:
 //Initialisation
            tutoRG = new SpeechRecognitionEngine();
            tutoRG.SetInputToDefaultAudioDevice();

            //Liste des mot a reconnaitre, vous pouvez en ajouter
            Choices choices = new Choices("Connexion", "Attacher", "Déconnexion", "Fermer");

            //Création & chargement du tableau
            GrammarBuilder grBuilder = new GrammarBuilder(choices);
            Grammar grammar = new Grammar(grBuilder);
            tutoRG.LoadGrammar(grammar);
            //La variable tutoRG appel le tableau créer auparavant
            //Création d'un évenement
            tutoRG.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(_rg_SpeechRecognized);

            tutoRG.RecognizeAsync(RecognizeMode.Multiple);


Et créer juste en dessous une fonction qui va analyser ce que vous avez dis et traduira donc l'information reçu par une action. Fonction sous forme de boucle. (vous pouvez ajouter des mot composé et plusieurs méthodes de prononciation pour la même action)

Code:
  void _rg_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
foreach (RecognizedWordUnit word in e.Result.Words)
            {
                switch (word.Text)
                {
                    case "Connexion":
                        try
                        {
                            DEXVoice.ConnectTarget();
                            MessageBox.Show("PS3 Connecté avec votre voix, GG bitchez");
                        }
                        catch
                        {
                            MessageBox.Show("Erreur de connexion, ou ta voix n'est pas assez sensuel *_*");
                        }

                        break;
                    case "Attacher":
                        try
                        {
                            DEXVoice.AttachProcess();
                            MessageBox.Show("Processur attaché avec succès");
                        }
                        catch
                        {
                            MessageBox.Show("Impossible d'attaché le processus");
                        }
                        break;
                    case "Déconnexion":
                        DEXVoice.DisconnectTarget();
                        break;
                    case "Fermer":
                        this.Close();
                        break;
                    default:
                        break;
                }
            }
}

Ceci est un exemple pour connecté, attacher le processus, déconnécté et fermer le logiciel avec votre voix

Une fois ceci fait vous devriez avoir un code similaire a celui ci

1396812981-projet8.png

Petit vidéo prouvant que ceci fonctionne bel est bien , je test en cliquant et juste avec ma voix

Le tool présenté dans le tuto :
Vous devez être inscrit pour voir les médias
Dans l'exemple vous pouvez controler avec la voix mais juste l'action est effectué aucune réponse vocale ne vous est donné, vous pouvez faire l'inverse en ajoutant la voix de Google ou de JARVIS d'Iron Man ;D

Ce qu'on peut faire d'autre dans le même domaine :
Vous devez être inscrit pour voir les médias

Les extras :

Vous pouvez également ajouter des sons grave au WPMLib, qui réponde a certains mot clé, par exemple si vous dite "Connexion" le logiciel vous répondra "Connecté" ou "Erreur de connexion" en fonction de ce qui se passera avec le même système ;)

Applications possible a faire assez sympa :​
  • Un outil de communication avec votre PC (pour les gens solo :troll: )
  • Un remote vocale de votre PC avec les classe management et VMI
  • Un Skype only vocale , y tappe a votre place
  • Un outil de gestionnaire
  • plein d'autre logiciel peuvent être fait avec cette méthodes
/!\ Methodes de contrôle vocale sans réponse, Merci de ne pas faire de copier coller sans crédits ;) /!\


Série de tuto :

Episode précédent : Episode 2 clique ici
Episode suivant : Episode 4 clique ici


Crédits :

iMCSx : Utilisation du PS3Lib
iMoDz | Team


Pour ceux qui veulent je donne le dossier projet​

Il gère ton tutoriel !
 
Merci pour le tuto :ok:
 
Super tuto, mais je ne comprend rien, mais quel codes modifier pour le convertir afin qu'il fonctionne sur Skype?
 
Dernière édition:
Super tuto, mais je ne comprend rien, mais quel codes modifier pour le convertir afin qu'il fonctionne sur Skype?
Rien à modifié réelement, juste a importé le SKYPE4COMLIB et a codé en conséquence, pour que chaque mot soit retrranscrit en écriture dans la zone de message
 
Rien à modifié réelement, juste a importé le SKYPE4COMLIB et a codé en conséquence, pour que chaque mot soit retrranscrit en écriture dans la zone de message
Y-aurai t-il possibilité de me passer les codes, ou encore de m'aider, c'est beaucoup trop complexe pour moi :( Et je ne suis que débutant dans le domaine ;)
 
Y-aurai t-il possibilité de me passer les codes, ou encore de m'aider, c'est beaucoup trop complexe pour moi :( Et je ne suis que débutant dans le domaine ;)
Oui je compte en faire un tuto détaillés, tu n'est pas le seul à m'avoir demander pour l'utilisé sur Skype, je prépare un truc complet sur ça ;) je posterais le lien du topic ;)
 
Oui je compte en faire un tuto détaillés, tu n'est pas le seul à m'avoir demander pour l'utilisé sur Skype, je prépare un truc complet sur ça ;) je posterais le lien du topic ;)
Merci, j'attend le tutoriel avec impatience! Ça m'as l'air sympa de ne plus se servir du clavier sur Skype, après je peut toujours essayer :)
 
Sa doit être cool genre si tu veux qu'il y ait une phrase en pleine partie pas la peine d'écrire, tu parle :D
 
Tu crois ya moyen de faire un truc qui répète mais avec une voix différente ?
 
Statut
N'est pas ouverte pour d'autres réponses.
Retour
Haut