0

我嘗試使用此代碼想要語音輸入到一個文本框,下面的代碼做,但只有一次,(UWP C#)

SpeechRecognitionResult speechRecognitionResult = await speechRecognizer.RecognizeAsync(); 
textBox1.Text = speechRecognitionResult.Text; 

但它提供的輸出只有1次,但我想輸出連續直到我關閉它自己。 請幫我,我可以做到這一點。

我試過這種方法,但它沒有提供任何東西。

await speechRecognizer.CompileConstraintsAsync(); 
speechRecognizer.ContinuousRecognitionSession.ResultGenerated += async (s, e1) => 
{ 
    if ((e1.Result != null)) 
    { 
     await this.Dispatcher.RunAsync(CoreDispatcherPriority.Low,() => 
     { 
      var result = e1.Result.Text; 
      textBox1.Text = result; 
     }); 
     speechRecognizer.ContinuousRecognitionSession.Resume(); 
    } 
}; 
await speechRecognizer.ContinuousRecognitionSession.StartAsync(SpeechContinuousRecognitionMode.PauseOnRecognition); 

請幫助,謝謝,並且必須回覆。 :)

+0

令人吃驚的馬虎格式。請修復。 – IInspectable

回答

2

要獲得連續的語音識別結果,請參閱Continuous dictation。本文檔描述如何捕獲和識別長形式,連續的聽寫語音輸入。您可以按照本文檔中的步驟執行您自己的步驟。而且,GitHub中有一個官方的Speech recognition and synthesis sample可能會幫助你。

要開始識別,您可以調用StartAsync() 方法,因爲您需要語音識別器在識別結果生成後繼續偵聽並處理語音輸入。然後在ResultGenerated事件處理程序中將不需要使用speechRecognizer.ContinuousRecognitionSession.Resume();,您可以安全地從代碼中移除它。

相關問題