2011-01-05 3 views
3

Je fais une application qui implique l'utilisation de la reconnaissance vocale Windows. Je pense utiliser C++ pour faire ceci puisque j'ai une certaine expérience avec cette langue. La façon dont je veux utiliser la reconnaissance vocale est telle qu'elle fonctionne en interne. Si je télécharge un fichier audio dans mon programme, je veux que la reconnaissance vocale écrive ce fichier audio en tant que fichier texte, mais tout cela doit être fait en interne. S'il vous plaît fournir de l'aide avec cela et si je n'ai pas expliqué ma question correctement s'il vous plaît faites le moi savoir et je vais essayer de vous expliquer à nouveau.Utilisation de C++ pour appeler et utiliser Windows Reconnaissance vocale

Merci à l'avance, Divs

Répondre

3

Windows fournit les moteurs de reconnaissance vocale pour les clients et les serveurs. Les deux peuvent être programmés avec C++ ou avec des langages .NET. L'API traditionnelle pour la programmation en C++ s'appelle SAPI. Les noms de domaine du framework .NET pour le langage client et serveur sont System.Speech et Microsoft.Speech.

documentation SAPI - http://msdn.microsoft.com/en-us/library/ms723627(VS.85).aspx

L'espace de noms .NET pour la reconnaissance du client est System.Speech - http://msdn.microsoft.com/en-us/library/system.speech.recognition.aspx. Windows Vista et 7 incluent le moteur vocal.

L'espace de noms .NET pour la reconnaissance du serveur est Microsoft.Speech et le SDK complet pour la 10.2 version est disponible à http://www.microsoft.com/downloads/en/details.aspx?FamilyID=1b1604d3-4f66-4241-9a21-90a294a5c9a4. Le moteur de la parole est un téléchargement gratuit.

Beaucoup de questions antérieures ont abordé ce problème. Voir Prototype based on speech recognition et SAPI and Windows 7 Problem pour des exemples.

+0

Et l'article élémentaire lié à (http://msdn.microsoft.com/en-us/magazine /cc163663.aspx) est très utile. –

2

(vieille question, mais aucune réponse acceptée, et semble assez élevé dans google)

Si vous voulez vraiment faire cela en C++, vous devez télécharger le SDK SAPI, qui ne vient pas standard avec Windows: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=5e86ec97-40a7-453f-b0ee-6583171b4530&displaylang=en, sélectionnez SpeechSDK51.exe

La meilleure documentation que vous pouvez trouver sur SAPI n'est pas sur le Web, elle se trouve dans le SDK lui-même, dans le dossier Docs /. Le .chm explique très bien tout. Here est un lien supplémentaire pour vous aider à démarrer.

Cependant, il n'est pas une exigence pour vous, je vous recommande fortement de le faire en C#. C'est vraiment beaucoup plus simple (pas de composants COM, pas de SDK séparé, plus de doc sur MSDN, plus de tutoriels, ...). Voir this CodeProject article; vous devrez supprimer toutes les choses de l'interface graphique, et tous les trucs de synthèse vocale, et vous verrez, la reconnaissance vocale jusqu'à 10 lignes de code. Assez impressionnant.

exemple de code EDIT, non compilé, non testé:

using System.Speech; 
using System.Speech.Recognition; 

// in constructor or initialisation 
SpeechRecognitionEngine recognizer = null; 
recognizer = new SpeechRecognitionEngine(); 
recognizer.SetInputToDefaultAudioDevice(); 
recognizer.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized); 
recognizer.RecognizeAsync(RecognizeMode.Multiple); 

// The callback called when a sentence is recognized 
private void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e){ 
    string text = e.Result.Text; 
    // Do whatever you want with 'text' now 
} 

ta dah, fait

Questions connexes