0

Я создаю AI в Microsoft Visual Studios 2015, и я использую объект SpeechSytheizer вместе с объектом SpeechRecognizer вместо объекта speechRecognitionEngine, чтобы разрешить мне для использования распознавателя голоса Microsoft вместо распознавателя, встроенного в SpeechRecognitionEngine, поэтому мне нужно использовать grammarBuilders и загружать их в SpeechRecognitionEngine.AI в Microsoft Visual Studios 2015, который распознает каждое слово, произнесенное и произнося каждое слово назад

С учетом сказанного я создал richTextBox, который добавляет слова, которые я говорю, и распознал richtextBox; Однако, я пытаюсь иметь аи сказать что-нибудь после того, как я говорю что-то с помощью:

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

однако по какой-то причине Microsoft голос распознаватель оленья кожа спать после того, как я что-то сказать, но добавляет текст, но и не делает ай saything назад.

Если кто-нибудь знает, как сделать голос распознаватель сна как только предложение было сказано, а затем есть объект speechSythesizer сказать что-то обратно потом, что было бы здорово

Спасибо, thatProgrammingGuy23

Heres кода так далеко:

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() +«»' может быть упрощено до 'Result.Text' поскольку текст является строка вызова ToString() возвращает ту же строку, также вы ищете' SpeechRecognizer.PauseRecognizerOnRecognition' ? –

+0

Я считаю, вам нужно стимулировать ключевое слово для активации и таймер, чтобы контролировать время, в течение которого он читает голос. Затем, после закрытия временного окна, вы можете использовать то, что сказали ppl в ответах, чтобы отключить прослушивание и сделать рассказ, если это ваша проблема ... – Niklas

+0

Вы заглянули в ботовую инфраструктуру Microsoft? https://docs.botframework.com/en-us/bot-intelligence/speech/#navtitle –

ответ

1

Если вы хотите SpeechRecognizer игнорировать речь в течение определенного времени вы можете использовать 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

То, что я хочу сделать, это сказать что-то речевому рекогнозатору, а затем отключить распознаватель речи Microsoft, пока мой ай говорит меня и или сделайте какое-то действие, а затем снова начните слушать, как будто речь идет о речевой речи. – thatProgrammingGuy