Cortana API是否可用于桌面应用程序?

时间:2015-08-10 22:51:31

标签: c# desktop-application windows-10 cortana

我想使用新的Cortana引擎在Windows 10上开发Windows应用程序。

不幸的是,据我所知,它似乎仅在Windows Phone 8.1项目中可用(例如,我没有找到从不同类型的Visual Studio项目访问Windows.Media.SpeechRecognition命名空间的方法)。

此外,我无法找到一个好的API文档,只有一些非常简单的例子。

编辑:

根据Peter Torr的回答,我写了一些代码。我已经能够认出一些词,但是当它试图识别一些像“你好”这样简单的词时,引擎似乎很难挣扎,而Cortana已经成功识别它。

我做错了吗?

DataManager.getTopAppsDataFromFileWithSuccess { (data) -> Void in
  // Get the number 1 app using optional binding and NSJSONSerialization
  //1
  var parseError: NSError?
  let parsedObject: AnyObject? = NSJSONSerialization.JSONObjectWithData(data,
    options: NSJSONReadingOptions.AllowFragments,
    error:&parseError)

}

3 个答案:

答案 0 :(得分:20)

严格来说,Cortana API是Windows.ApplicationModel.VoiceCommands namespace中的API。这些应用程序不适用于Classic(“桌面”)应用程序,但可用于Windows 10上的通用Windows应用程序.Classic应用程序无法使用API​​的原因是因为它们依赖于后台任务和应用程序标识之类的概念。适用于经典应用。

经典应用程序也无法使用Windows.Media.SpeechRecognition namespace中的类型,但我不确定其存在的限制。

注意:如@Andrew Pilley所述,您可以在桌面应用中使用这些类型,但目前尚未明确支持。

如果您只想在.NET应用程序中进行语音识别,则可以使用System.Speech.Recognition namespace,它使用相同的基础技术。

答案 1 :(得分:5)

因此,虽然Peter Torr对Cortana(Windows.ApplicationModel.VoiceCommands API)是正确的,但新的语音识别WinRT API(Windows.Media.SpeechRecognition)可用于经典的C#应用​​程序,如果你是愿意使用WinRT Interop库。

我已经详细说明了如何在this answer to a stack overflow question中进行设置,尽管提出这个问题的人在复制我在本地工作时遇到了一些麻烦。

答案 2 :(得分:0)

即使设置已关闭,您也可以通过将此“uri”称为新的Process()来激活Cortana的“WIN + C”事件。

MS-柯塔娜:// STARTMODE =无&安培; ListeningMode =真&安培; QuerySource = VoiceShortcutKey&安培;定位=桌面&安培; SpeechTextInputHeight = 40&安培; ColorPrevalenceEnabled =真安培; PersonaOnlySupported =真安培; TaskbarOrientation = 3及SearchBoxInTaskbar =假安培; AppsUseLightTheme =假安培; HideFileExtensions =假