首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Windows 10语音识别

Windows 10语音识别
EN

Stack Overflow用户
提问于 2015-08-09 16:18:25
回答 1查看 10.5K关注 0票数 8

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

EN

回答 1

Stack Overflow用户

发布于 2015-08-11 01:53:20

为了使用Windows10中发布的新SpeechRecognition WinRT API,您需要在桌面WinRT应用程序中添加对C# API的支持。然而,这并不需要将应用程序转换为Windows Store应用程序,至少对某些部分是这样。据我所知,新引擎还没有向后移植到System.Speech.SpeechRecognitionEngine中,它仍然使用传统的识别器(我会在这里与speech团队核实,如果我在这一点上找到更多信息,我会在这篇文章中跟进)。

基于来自herehere的指导,我能够创建一个经典的c# WPF应用程序,并实现以下代码:

代码语言:javascript
运行
复制
private SpeechRecognizer reco;

    public MainWindow()
    {
        InitializeComponent();

        reco = new SpeechRecognizer();
        List<string> constraints = new List<string>();
        constraints.Add("Yes");
        constraints.Add("No");
        reco.Constraints.Add(new SpeechRecognitionListConstraint(constraints));
        IAsyncOperation<SpeechRecognitionCompilationResult> op = reco.CompileConstraintsAsync();
        op.Completed += HandleCompilationCompleted;
    }

    public void HandleCompilationCompleted(IAsyncOperation<SpeechRecognitionCompilationResult> opInfo, AsyncStatus status)
    {
        if(status == AsyncStatus.Completed)
        {
            System.Diagnostics.Debug.WriteLine("CompilationCompleted");
            var result = opInfo.GetResults();
            System.Diagnostics.Debug.WriteLine(result.Status.ToString());
        }
    }

为了编译这段代码,我添加了

代码语言:javascript
运行
复制
  <PropertyGroup>
    <TargetPlatformVersion>10.0</TargetPlatformVersion>
  </PropertyGroup>

添加到.csproj中,并从项目->添加引用->通用Windows ->核心部分添加了Windows.Media和Windows.Foundation,我还手动添加了对

代码语言:javascript
运行
复制
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v4.5.1\System.Runtime.WindowsRuntime.dll

代码语言:javascript
运行
复制
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v4.5.1\System.Runtime.InteropServices.WindowsRuntime.dll

通过Add References的浏览部分。

您将需要检查SpeechRecognizer.SupportedGrammarLanguages以检索it-IT语言对象,以便将其传递给识别器构造函数,如果您的系统没有默认使用它- it的话。(如果您安装的是意大利语版本的Windows10,默认情况下应该会出现这种情况)

现在,我上面的代码片段只编译了一个超级简单的语法,它不会开始识别。您需要参考Windows.Media.SpeechRecognition应用程序接口的其余部分,但它们的思路是一样的。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31902274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档