2017-07-12 209 views
1

我使用UWP創建智能鏡像應用程序,我希望用戶使用語音來控制應用程序。到目前爲止,我做了一個測試語音識別的簡單程序,它可以工作,但我只希望當應用程序聽到關鍵詞 - 「Jason」時,它就會開始將語音轉換爲文本(我稱之爲我的智能鏡像Jason )就像:「傑森,給我看一些消息」,因爲之後我會將文字按摩傳遞給LUIS功能。如果該句子不以「Jason」開頭,則該應用不會將其轉換爲文本。我該怎麼做才能做到呢? 「UWP連續語音識別

private SpeechRecognizer contSpeechRecognizer; 
    private CoreDispatcher dispatcher; 
    protected async override void OnNavigatedTo(NavigationEventArgs e) 
    { 
     dispatcher = CoreWindow.GetForCurrentThread().Dispatcher; 
     contSpeechRecognizer = new Windows.Media.SpeechRecognition.SpeechRecognizer(); 
     await contSpeechRecognizer.CompileConstraintsAsync(); 
     contSpeechRecognizer.ContinuousRecognitionSession.ResultGenerated +=ContinuousRecognitionSession_ResultGenerated; 
     contSpeechRecognizer.ContinuousRecognitionSession.AutoStopSilenceTimeout = TimeSpan.FromDays(1); 
     contSpeechRecognizer.ContinuousRecognitionSession.Completed += ContinuousRecognitionSession_Completed; 
     await contSpeechRecognizer.ContinuousRecognitionSession.StartAsync(); 
    } 
    private async void ContinuousRecognitionSession_Completed(SpeechContinuousRecognitionSession sender, SpeechContinuousRecognitionCompletedEventArgs args) 
    { 
     await contSpeechRecognizer.ContinuousRecognitionSession.StartAsync(); 
    } 
    private async void ContinuousRecognitionSession_ResultGenerated(SpeechContinuousRecognitionSession sender, SpeechContinuousRecognitionResultGeneratedEventArgs args) 
    {   
     await dispatcher.RunAsync(CoreDispatcherPriority.Normal,() => 
     { 
      SpeechResult.Text = args.Result.Text; 
     }); 
    } 

回答

1

如果你只是想使用‘傑森’作爲觸發,你可以添加

if(speechResult.Contains("Jason")||speechResult.Contains("jason")) 
{//Pass the Result to LUIS}