Cortana API是否可用于桌面应用程序?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cortana API是否可用于桌面应用程序?相关的知识,希望对你有一定的参考价值。
我想使用新的Cortana引擎在Windows 10上开发Windows应用程序。
不幸的是,据我所知,它似乎仅在Windows Phone 8.1项目中可用(例如,我没有找到从不同类型的Visual Studio项目访问Windows.Media.SpeechRecognition命名空间的方法)。
此外,我无法找到一个好的API文档,只有一些非常简单的例子。
编辑:
根据Peter Torr的回答,我写了一些代码。我已经能够认出一些词,但是当它试图识别一些简单的单词如“你好”时,引擎似乎很挣扎,而Cortana成功地认出了它。
难道我做错了什么?
public static class SpeechSynthetizerManager
{
private static readonly SpeechSynthesizer synth = new SpeechSynthesizer();
private static readonly SpeechRecognitionEngine speechRecognitionEngine = new SpeechRecognitionEngine();
public static event EventHandler<SpeechRecognizedEventArgs> SpeechRecognized
{
add { speechRecognitionEngine.SpeechRecognized += value; }
remove { speechRecognitionEngine.SpeechRecognized -= value; }
}
public static event EventHandler<RecognizeCompletedEventArgs> RecognizeCompleted
{
add { speechRecognitionEngine.RecognizeCompleted += value; }
remove { speechRecognitionEngine.RecognizeCompleted -= value; }
}
static SpeechSynthetizerManager()
{
synth.SelectVoiceByHints(VoiceGender.Female);
speechRecognitionEngine.LoadGrammar(new DictationGrammar());
speechRecognitionEngine.SetInputToDefaultAudioDevice();
}
public static void Speak(string message)
{
synth.Speak(message);
}
public static void Listen()
{
speechRecognitionEngine.RecognizeAsync();
}
}
严格来说,Cortana API是Windows.ApplicationModel.VoiceCommands
namespace中的API。这些应用程序不适用于Classic(“桌面”)应用程序,但可用于Windows 10上的通用Windows应用程序.Classic应用程序无法使用API的原因是因为它们依赖于后台任务和应用程序标识之类的概念。适用于经典应用。
Windows.Media.SpeechRecognition
namespace中的类型也不适用于Classic应用程序,但我不确定它的限制是什么。
注意:正如@Andrew Pilley所提到的,您可能能够在桌面应用程序中使用这些类型,但目前尚未明确支持。
如果您只想在.NET应用程序中进行语音识别,则可以使用System.Speech.Recognition
namespace,它使用相同的基础技术。
因此,虽然Peter Torr对Cortana(Windows.ApplicationModel.VoiceCommands API)是正确的,但如果您愿意使用WinRT,可以在经典的C#应用程序中使用新的语音识别WinRT API(Windows.Media.SpeechRecognition)。互操作库。
我已经详细介绍了如何在this answer to a stack overflow question中设置它,尽管提出这个问题的人在复制我在本地工作时遇到了一些麻烦。
您可以通过调用此“uri”来激活Cortana的“WIN + C”事件,就像新的Process()一样,即使设置已关闭也是如此。
MS-柯塔娜:// STARTMODE =无&ListeningMode =真QuerySource = VoiceShortcutKey与定位=桌面&SpeechTextInputHeight = 40&ColorPrevalenceEnabled =真PersonaOnlySupported =真TaskbarOrientation = 3&SearchBoxInTaskbar =假AppsUseLightTheme =假HideFileExtensions = FALSE
以上是关于Cortana API是否可用于桌面应用程序?的主要内容,如果未能解决你的问题,请参考以下文章
用于从桌面访问 iOS 应用程序的文档目录的 Windows API?