Windows在后台使用带有UWP应用程序的SpeechRecognizer

时间:2017-10-25 11:26:05

标签: background uwp speech-recognition

我需要在用户使用计算机时捕获语音并将其转换为文本。 我知道" SpeechRecognizer" UWP中的课程,我已经设置了一个应用程序,如果它在" Active"中有效,但如果你切换应用程序(即使用浏览器),它就不会捕获语音。

如何在用户使用电脑时捕捉语音?

2 个答案:

答案 0 :(得分:0)

尝试extended execution,请求操作系统在将应用切换到后台后推迟暂停应用。在我的测试中,SpeechRecognizer在扩展的执行会话中运行良好。

扩展执行的长度取决于您使用的是桌面设备还是移动设备,以及设备是否连接到墙上电源或电池电源以及其他因素。

  

如果设备连接到墙上电源,则延长执行时间的长度没有限制。 (但系统可以随时撤销会话,文档有更详细的解释)

请求扩展执行会话的代码非常简单,只需几行即可。请记住,您还需要妥善处理扩展执行会话的处理和撤销。

var session = new ExtendedExecutionSession();
session.Reason = ExtendedExecutionReason.Unspecified;
ExtendedExecutionResult result = await session.RequestExtensionAsync();
if (result == ExtendedExecutionResult.Allowed)
{
    //do your long running task here
}

Here是一个更完整的示例,它指导您如何请求,处置和处理扩展执行会话的撤销。

答案 1 :(得分:0)

解决了创建WPF应用程序并使用SpeechRecognitionEngine(System.Speech)而不是UWP的SpeechRecognizer