C# 如何使IoT UWP的连续语音识别更有效?
我试图不断地在物联网设备上收听特定关键字,如“Alexa”。当触发时,我想进一步识别要执行的命令 目前我使用的是一个无限循环,它似乎没有效率,因为物联网有2GB的RAM,因此滞后很多。尽管此解决方案似乎适用于x64环境C# 如何使IoT UWP的连续语音识别更有效?,c#,windows-runtime,uwp,windows-10-iot-core,C#,Windows Runtime,Uwp,Windows 10 Iot Core,我试图不断地在物联网设备上收听特定关键字,如“Alexa”。当触发时,我想进一步识别要执行的命令 目前我使用的是一个无限循环,它似乎没有效率,因为物联网有2GB的RAM,因此滞后很多。尽管此解决方案似乎适用于x64环境 private async void SetupTheContinuousSpeechRecognitionForAlexa() { try { speechRecognizerAlexa = new SpeechRecognizer();
private async void SetupTheContinuousSpeechRecognitionForAlexa()
{
try
{
speechRecognizerAlexa = new SpeechRecognizer();
speechRecognizerAlexa.Timeouts.BabbleTimeout = TimeSpan.FromSeconds(0);
speechRecognizerAlexa.Timeouts.InitialSilenceTimeout = TimeSpan.FromSeconds(0);
speechRecognizerAlexa.Timeouts.EndSilenceTimeout = TimeSpan.FromSeconds(0);
speechRecognizerAlexa.Constraints.Add(new SpeechRecognitionListConstraint(new string[] { "alexa", "tiger" }));
await speechRecognizerAlexa.CompileConstraintsAsync();
while (true)
{
try
{
var speechResult = await speechRecognizerAlexa.RecognizeAsync();
if (speechResult.Confidence == SpeechRecognitionConfidence.High || speechResult.Confidence == SpeechRecognitionConfidence.Medium || speechResult.Confidence == SpeechRecognitionConfidence.Low)
{
IsAlexaVoiceTriggered = true;
var helloResult = PlayTheString("How can I help you", false);
OnSpeechRecognitionCommandClicked();
}
else if (isSpeechEnabled)
{
IsAlexaVoiceTriggered = false;
}
}
catch
{
}
}
}
catch (Exception ex)
{
this.log.Error("Failed in SetupTheContinousSpeechRecognitionForAlexa " + ex.Message);
}
}
有没有其他人尝试在物联网环境中实现这一点?如果有,我如何进一步优化
谢谢。使用Cortana的引擎不是更有效吗?它会,但我有自己的自定义AI引擎,所以我想我会给它一个相当个人化的触感。正如你所说的物联网设备有2GB的RAM,在x64环境下工作,我假设你使用的是MinnowBoard Max设备。我说的对吗?我正在使用带有自定义添加麦克风硬件的RPi 2/3。您可以确保USB麦克风显示在“已连接的设备”下。然后确保将下面的行添加到测试应用程序的package.appmanifest文件的“Capabilities”项组下。代码在我的RPi3和关键字“Alexa”上成功运行可以被触发。你能提供更多关于什么让你有“滞后很多”感觉的细节吗?这是while循环吗?