Plateforme de reconnaissance vocale Microsoft

J’ai écrit une application en C # pour la reconnaissance vocale à l’aide de System.Speech, qui fonctionne correctement sous Windows 7. Cependant, je crée après la même application qui fonctionnera sous Windows 2003 (x86).

Mon environnement de programmation: Windows 7 x64 Pro Visual Studio 2008

Afin de développer cette application dans mon environnement de programmation, j’ai installé:

1.Microsoft Speech Platform – Exécution sur serveur (Version 10.1) (x86)

http://www.microsoft.com/downloads/details.aspx?FamilyID=674356C4-E742-4855-B3CC-FC4D5522C449&displaylang=en&displaylang=en

2.Microsoft Speech Platform – Kit de développement logiciel (SDK) (Version 10.1) (x86)

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=4d36908b-3264-49ef-b154-f23bf7f44ef4

3.Microsoft Speech Platform – Langues d’exécution du serveur (version 10.1)

(installé ici SR pour en-GB)

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=f704cd64-1dbf-47a7-ba49-27c5843a12d5

Dans mon programme au lieu de System.Speech, j’ai utilisé Microsoft.Speech.Recognition;

Collé ce code de la documentation du SDK:

using Microsoft.Speech.Recognition; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { // Create a new SpeechRecognitionEngine instance. sre = new SpeechRecognitionEngine(); // Create a simple grammar that recognizes “red”, “green”, or “blue”. Choices colors = new Choices(); colors.Add("red"); colors.Add("green"); colors.Add("blue"); GrammarBuilder gb = new GrammarBuilder(); gb.Append(colors); // Create the actual Grammar instance, and then load it into the speech recognizer. Grammar g = new Grammar(gb); sre.LoadGrammar(g); // Register a handler for the SpeechRecognized event. sre.SpeechRecognized += new EventHandler(sre_SpeechRecognized); sre.SetInputToDefaultAudioDevice(); sre.RecognizeAsync(RecognizeMode.Multiple); } // Simple handler for the SpeechRecognized event. void sre_SpeechRecognized(object sender, SpeechRecognizedEventArgs e) { MessageBox.Show(e.Result.Text); } SpeechRecognitionEngine sre; } } 

J’ai également défini la cible de la plate-forme sur x86 dans les propriétés du projet. Le code est compilé mais une fois que je l’ai exécuté ou mis au point, la reconnaissance ne fonctionne pas. Une idée de ce qui me manque?

Vous créez un moteur de reconnaissance vocale sans spécifier de moteur. Depuis que vous avez installé le moteur en-GB, vous devez spécifier un Cultureinfo (ou un Recognizerinfo ):

 sre = new SpeechRecognitionEngine(new CultureInfo("en-GB"));