D
delete221380
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
. 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 :
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" .
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)
(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
(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
Vous devez obtenir quelque choses de similaires a ceci
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.
Ajoute simplement dans le Form_Load //Code servant a utiliser une fonction (dans la porté de la classe uniquement*)
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
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)
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
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
(c'est pas donner a tout le monde hein
)
- 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" .

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)

(J'ai quand même ajouter des bouton Connect & Attach au cas ou l'user a envie d'utiliser en mode conventionnel )
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;
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

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
Petit vidéo prouvant que ceci fonctionne bel est bien , je test en cliquant et juste avec ma voixUne fois ceci fait vous devriez avoir un code similaire a celui ci

Le tool présenté dans le tuto :
Ce qu'on peut faire d'autre dans le même domaine :
Les extras :
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 ;DCe 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
)
- 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
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
Fichiers joints
Dernière édition par un modérateur: