Windows 10 reconnaissance vocale

Je souhaite créer une application WPF en c # pour Windows 10. À présent, le problème que j’avais avec les versions précédentes de Windows était que je suis italien et que la reconnaissance vocale en italien n’est pas prise en charge. Mais maintenant, il y a cortana. Alors, comment puis-je utiliser le moteur de reconnaissance vocale de cortana pour mon application? Si j’utilise simplement new SpeechRecognitionEngine(new CultureInfo("it-IT"))); cela me donne une erreur, parce qu’il n’y a pas de moteur de reconnaissance simple, je dois donc utiliser celui de cortana. J’espère que vous avez compris et désolé pour mon mauvais anglais. Merci pour votre réponse.

Pour utiliser la nouvelle API WinRT SpeechRecognition publiée dans Windows 10, vous devez append la prise en charge des API WinRT à votre application C # de bureau. Cela ne nécessite pas la conversion de l’application en une application Windows Store, mais au moins pour certaines parties. Autant que je sache, le nouveau moteur n’a pas été rétroporté pour append un support dans System.Speech.SpeechRecognitionEngine, qui utilise toujours un outil de reconnaissance hérité (je vérifierai avec l’équipe de la parole ici et continuerai dans cet article si j’en trouve plus sur ce point.)

Sur la base des instructions sockets ici et ici , j’ai pu créer une application c # WPF classique et implémenter le code suivant:

 private SpeechRecognizer reco; public MainWindow() { InitializeComponent(); reco = new SpeechRecognizer(); List constraints = new List(); constraints.Add("Yes"); constraints.Add("No"); reco.Constraints.Add(new SpeechRecognitionListConstraint(constraints)); IAsyncOperation op = reco.ComstackConstraintsAsync(); op.Completed += HandleCompilationCompleted; } public void HandleCompilationCompleted(IAsyncOperation opInfo, AsyncStatus status) { if(status == AsyncStatus.Completed) { System.Diagnostics.Debug.WriteLine("CompilationCompleted"); var result = opInfo.GetResults(); System.Diagnostics.Debug.WriteLine(result.Status.ToSsortingng()); } } 

Pour que cela soit compilé, j’ai ajouté

   10.0  

au .csproj, et ajouté Windows.Media et Windows.Foundation à partir du projet -> Ajouter des références -> Universal Windows -> Section Core, et j’ai également ajouté manuellement des références à

 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v4.5.1\System.Runtime.WindowsRuntime.dll 

et

 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v4.5.1\System.Runtime.InteropServices.WindowsRuntime.dll 

via la section parcourir de Ajouter des références.

Vous devrez vérifier SpeechRecognizer.SupportedGrammarLanguages ​​pour récupérer l’object Langage it-IT afin de le transmettre au constructeur de Recognizer, si votre système n’est pas déjà configuré par défaut avec it-IT. (Si vous avez installé une version italienne de Windows 10, cela devrait se produire par défaut)

Maintenant, mon extrait de code ci-dessus ne comstack qu’une grammaire très simple, il ne commence pas à être reconnu. Vous devrez consulter le rest de l’API Windows.Media.SpeechRecognition pour cela, mais cela va dans le même sens.