0

私はMicrosoft Visual Studios 2015でAIを作成しています.SpeechRecognizerオブジェクトの代わりにSpeechSytheizerオブジェクトをspeechRecognitionEngineオブジェクトの代わりに使用していますSpeechRecognitionEngineに組み込まれている認識プログラムの代わりにMicrosoft音声認識プログラムを使用するようにしてください。grammarBuildersを使用してSpeechRecognitionEngineに読み込む必要があります。AIのすべての単語を認識し、すべての単語を話す

これが言われているように、私はrichtextBoxに私が言う、認識した単語を追加するrichTextBoxを作成しました。しかし、私は愛を持ってしようとしていますことは、私が使用して何かを言う戻った後、何かを言う:

if(e.result.text.toString().contains("whatever I said")){ 
s.speak("whatever i want it to say back"); 
} 

しかし、いくつかの理由で、マイクロソフトの音声認識doesntの睡眠私が何かを言うが、テキストが、バックsaythingのAIのdoesntを追加した後。

誰もが音声認識の睡眠を作る方法を知っていれば、一度の文がspeechSythesizerオブジェクトを持って、その後前記されたが戻ってその後何かを言う相続人

おかげで、 thatProgrammingGuy23

ので、コード素晴らしいことだというはるか:あなたはSpeechRecognizerは、一定の時間のためにスピーチを無視したい場合は

public partial class Form1 : Form{ 

    public Form1() 
    { 
     InitializeComponent(); 
    } 
    SpeechSynthesizer s = new SpeechSynthesizer(); 
    SpeechRecognizer rec = new SpeechRecognizer(); 
    private void Form1_Load(object sender, EventArgs e) 
    { 
     rec.SpeechRecognized += rec_SpeechRecognized; 
    } 

    private void rec_SpeechRecognized(object sender, SpeechRecognizedEventArgs e) 
    { 

     richTextBox1.AppendText(e.Result.Text.ToString() + ""); 

     if (e.Result.Text.Contains("hello")){ 
      s.Speak("hi"); 

     } 
    } 
} 
+0

'Result.Text.ToString()+" "' TextはToString()を呼び出す文字列であるため、Result.Text'に単純化できます。同じ文字列を返します。また、 'SpeechRecognizer.PauseRecognizerOnRecognition' ? –

+0

私はアクティブ化のためのキーワードと、音声を読み込む時間を制御するタイマーを迫害する必要があると信じています。その後、時間窓が閉じられた後、あなたが聞いていることを無効にしてナレーションをする答えに言ったことを使うことができます。 – Niklas

+0

Microsoftのボットフレームワークを調べましたか? https://docs.botframework.com/en-us/bot-intelligence/speech/#navtitle –

答えて

1

を使用できSpeechRecognizer.Enabled

SpeechSynthesizer s = new SpeechSynthesizer(); 
SpeechRecognizer rec = new SpeechRecognizer(); 
private void Form1_Load(object sender, EventArgs e) 
{ 
    rec.SpeechRecognized += rec_SpeechRecognized; 
} 

private void rec_SpeechRecognized(object sender, SpeechRecognizedEventArgs e) 
{ 
    richTextBox1.AppendText(e.Result.Text); 

    if (e.Result.Text.Contains("hello")) 
    { 
     rec.Enabled = false; 
     //Do stuff 
     s.Speak("hi"); 
     rec.Enabled = true; 
    } 
} 
+0

私がしたいことは、speechRecognizerに何かを言い、その後、私のAIが話す間、そのマイクロソフトの音声認識装置をスリープさせることです。私は何らかの行動をしてから、それがspeechRecognitionEngineのように再び聞き始めます。 – thatProgrammingGuy

関連する問題