bonne API de reconnaissance vocale

Je travaille sur un projet universitaire dans lequel j’utilise la reconnaissance vocale. Actuellement, je le développe sur Windows 7 et j’utilise le package API system.speech qui vient avec .net et je le fais sur C #.

Le problème auquel je suis confronté est que la reconnaissance de la dictée n’est pas assez précise. Ensuite, chaque fois que je lance mon application, la reconnaissance vocale sur le bureau démarre automatiquement. C’est une grosse nuance pour moi. Comme déjà les mots que je parle ne sont pas assez clairs et une reconnaissance en conflit sont interprétés comme des commandes et des actions telles que la commutation d’application sont réduites

Ceci est une partie essentielle de mon application et je vous prie de bien vouloir me suggérer une bonne API vocale autre que cette gaffe de Microsoft. Ce sera une bonne chose même s’il peut comprendre une simple grammaire dictée.

Je pense que la reconnaissance des postes de travail commence car vous utilisez un outil de reconnaissance des postes de travail partagé. Vous devez utiliser un identificateur Inproc pour votre application uniquement. Pour ce faire, vous instanciez un SpeechRecognitionEngine () dans votre application.

Étant donné que vous utilisez la grammaire de dictée et le programme de reconnaissance de Windows, je pense que le locuteur peut le former pour améliorer sa précision. Suivez la formation sur le programme de reconnaissance Windows 7 et voyez si la précision s’améliore.

Pour débuter avec .NET speech, il existe un très bon article qui a été publié il y a quelques années à l’ adresse http://msdn.microsoft.com/en-us/magazine/cc163663.aspx . C’est probablement le meilleur article d’introduction que j’ai trouvé jusqu’à présent. C’est un peu désuet, mais très serviable. (La méthode AppendResultKeyValue a été abandonnée après la version bêta.)

Voici un exemple rapide illustrant l’une des applications les plus simples .NET Windows Forms pour utiliser une grammaire de dictée à laquelle je pouvais penser. Cela devrait fonctionner sous Windows Vista ou Windows 7. J’ai créé un formulaire. J’ai laissé tomber un bouton et fait le gros bouton. Ajout d’une référence à System.Speech et à la ligne:

using System.Speech.Recognition; 

Puis j’ai ajouté le gestionnaire d’événement suivant à button1:

 private void button1_Click(object sender, EventArgs e) { SpeechRecognitionEngine recognizer = new SpeechRecognitionEngine(); Grammar dictationGrammar = new DictationGrammar(); recognizer.LoadGrammar(dictationGrammar); try { button1.Text = "Speak Now"; recognizer.SetInputToDefaultAudioDevice(); RecognitionResult result = recognizer.Recognize(); button1.Text = result.Text; } catch (InvalidOperationException exception) { button1.Text = Ssortingng.Format("Could not recognize input from default aduio device. Is a microphone or sound card available?\r\n{0} - {1}.", exception.Source, exception.Message); } finally { recognizer.UnloadAllGrammars(); } } 

Vous trouverez un peu plus d’informations sur les différentes variantes de moteurs de parole et d’API fournies par Microsoft à l’adresse Quelle est la différence entre System.Speech.Recognition et Microsoft.Speech.Recognition? ?