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