Windows 语音识别 API

问题描述 投票:0回答:1

我注意到在Windows 10和11中,您可以按Win+H启动“语音输入”功能。您对着麦克风说话,小部件会将击键发送到任何具有焦点的窗口。识别效果出人意料地好,并且可以在多种语言(例如意大利语)和本地(不需要互联网连接,我通过断开 PC 来尝试)下进行。

我想知道是否有办法访问相同的语音识别引擎。

互联网搜索表明,微软为 Windows 开发人员提供了许多不同的引擎。

  • 在经典的
    .net
    应用程序中,可以在
    System.Speech.Recognition
    命名空间下找到该应用程序。但这在意大利语中不起作用1
  • “Microsoft 语音平台”(
    Microsoft.Speech.Recognition
    ) 与
    System.Speech.Recognition
    类似,但适用于服务器应用程序。我这里没有安装2
  • 在 UWP 应用程序中,有
    Windows.Media.SpeechRecognition
    。 (这仅适用于在线)
  • 还有“语音 SDK”(
    Microsoft.CognitiveServices.Speech
    ),它看起来像是 Azure 认知服务(在线)的 REST API 的包装器。

问题是:什么是“语音输入”,我可以访问它吗?


  1. 意大利语不起作用,通过此代码验证:

    foreach (RecognizerInfo info in SpeechRecognitionEngine.InstalledRecognizers())
    {
        Debug.WriteLine(info.Culture);
    }
    

    只给我

    en-US
    ,尽管安装了其他语言包并且“语音输入”功能在同一台机器和用户上可以使用意大利语。

  2. 我没有安装语音服务器运行时,通过缺少

    \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech Server\
    注册表项进行验证。所以我不认为 Windows 小部件正在使用这个。

.net windows winapi uwp
1个回答
0
投票

感谢@SimonMourier 的评论。

语音输入功能似乎采用了一种混合方法,即在可用时使用在线服务,在无法访问互联网时使用离线模式。

使用的 API 是“Azure 认知服务”中的 API: https://learn.microsoft.com/en-us/azure/ai-services/speech-service/how-to-recognize-speech

这通常发生在网上,但他们也可以提供在本地运行的“嵌入式”模型: https://learn.microsoft.com/en-us/azure/ai-services/speech-service/embedded-speech?tabs=windows-target%2Cjre&pivots=programming-language-csharp

但是,要访问此模型,您的用例需要获得 Azure 的批准(因为公开访问意味着会损失一些甜蜜的钱)。您可以填写此表格来请求访问权限: https://customervoice.microsoft.com/Pages/ResponsePage.aspx?id=v4j5cvGGr0GRqy180BHbR7en2Ais5pxKtso_Pz4b1_xUMFNKUU9RTU1UTkdUMzVYUkxDOFZRMVFGSyQlQCN0PWcu

然后在 10 个工作日内被拒绝。

当某件事好得令人难以置信时...

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.