C# 如何使IoT UWP的连续语音识别更有效?

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();

我试图不断地在物联网设备上收听特定关键字,如“Alexa”。当触发时,我想进一步识别要执行的命令

目前我使用的是一个无限循环,它似乎没有效率,因为物联网有2GB的RAM,因此滞后很多。尽管此解决方案似乎适用于x64环境

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循环吗?