ユーザーからの複数の単語を認識するアプリケーションを構築しています。したがって、認識された単語を使用して文をまとめます。
これが私が今持っているものです:
namespace SentenceRecognitionFramework__v1_
{
public partial class Form1 : Form
{
SpeechRecognitionEngine recog = new SpeechRecognitionEngine();
SpeechSynthesizer sp = new SpeechSynthesizer();
public Form1()
{
InitializeComponent();
}
private void btnListen_Click(object sender, EventArgs e)
{
Choices sList = new Choices();
sList.Add(new String[] { "what","is", "a", "car" });
Grammar gr = new Grammar(new GrammarBuilder(sList));
recog.RequestRecognizerUpdate();
recog.LoadGrammar(gr);
recog.SpeechRecognized += sRecognize_SpeechRecognized;
recog.SetInputToDefaultAudioDevice();
recog.RecognizeAsync(RecognizeMode.Multiple);
recog.SpeechRecognitionRejected += sRecognize_SpeechRecognitionRejected;
}
private void sRecognize_SpeechRecognitionRejected(object sender, SpeechRecognitionRejectedEventArgs e)
{
sentenceBox.Text = "Sorry, I couldn't recognize";
}
private void sRecognize_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
sentenceBox.Text = e.Result.Text.ToString();
}
}
}
ただし、このコードは一度に 1 つの単語しか認識しません。これを行うためにコードを編集しても:
private void sRecognize_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
sentenceBox.Text = sentenceBox.Text + " " + e.Result.Text.ToString();
}
「車って何?」という言葉を途切れることなく連続して発声すると、アプリが連続して単語を認識できなくなります。
プログラムが、定義された単語を使用して作成された文全体を認識し、文を発声するときにスピーチを中断することなく、プログラムが認識できるようにするには、どのような変更を加えることができますか?
必要な出力:
私は次の言葉を発します:車とは
アプリケーション表示:車とは
完璧な例: Google 音声認識Google は、単語ライブラリにある単語を使用して文を作成します。
よろしくお願いします:)