Windows 10语音识别

我想在c#中为Windows 10创建一个WPF应用程序。现在,我在以前的Windows版本中遇到的问题是我是意大利语并且不支持意大利语中的语音识别。 但现在有了神经。 那么,我如何在我的应用程序中使用cortana的语音识别引擎? 如果我只是使用new SpeechRecognitionEngine(new CultureInfo("it-IT"))); 它给了我一个错误,因为没有简单的recongition引擎,所以我必须使用cortana的一个。 希望你理解并抱歉我的英语不好。 谢谢您的回答。

为了使用Windows 10中发布的新的SpeechRecognition WinRT API,您需要在桌面C#应用程序中添加对WinRT API的支持。 这不需要将应用程序转换为Windowsapp store应用程序,但至少对于某些部分而言。 据我所知,新的引擎还没有被移植到System.Speech.SpeechRecognitionEngine,它仍然使用传统的识别器(我会在这里查看演讲团队,如果我发现更多,请在这篇文章中跟进)在那一点上。)

基于此处和此处的指导,我能够创建经典的c#WPF应用程序,并实现以下代码:

 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.CompileConstraintsAsync(); 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.ToString()); } } 

为了得到这个,我补充道

   10.0  

到.csproj,并从Project – > Add References – > Universal Windows – > Core部分添加了Windows.Media和Windows.Foundation,我还手动添加了对

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

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

通过添加引用的浏览部分。

您需要检查SpeechRecognizer.SupportedGrammarLanguages以检索it-IT语言对象,以便将其传递给Recognizer构造函数,如果您的系统没有默认为IT-IT。 (如果您安装了意大利语版本的Windows 10,则默认情况下会发生这种情况)

现在,我上面的代码片段只编译一个超级简单的语法,它不会开始识别。 您需要查阅Windows.Media.SpeechRecognition API的其余部分,但它也是一样的。