C# .Net で Windows Speech to Text 機能を試し始めたところです。私は現在、基本的な作業を行っています(IE - 何かを言うと、あなたの言うことに基づいて出力が提供されます)。ただし、実際にユーザー入力を変数として受け取る方法を理解するのに苦労しています。
これが意味することは、例えば、それです。ユーザーが次のように言う場合:
"Call me John"
John
次に、単語を変数として取り、それをたとえば人のユーザー名として保存できるようにしたいと考えています。
私の現在のSpeechRecognized
イベントは次のとおりです。
void zeusSpeechRecognised(object sender, SpeechRecognizedEventArgs e)
{
writeConsolas(e.Result.Text, username);
switch (e.Result.Grammar.RuleName)
{
case "settingsRules":
switch (e.Result.Text)
{
case "test":
writeConsolas("What do you want me to test?", me);
break;
case "change username":
writeConsolas("What do you want to be called?", me);
break;
case "exit":
writeConsolas("Do you wish me to exit?", me);
break;
}
break;
}
}
NB:writeConsolas
は単に美化された a への追加行RichTextBox
です。
次のことを行う別のものを追加したいと思いcase
ます。
case "call me"
username = e.Result.GetWordFollowingCallMe() //Obv not a method, but thats the general idea.
break;
明らかに、そのような方法はありませんが、それが私が実装したい一般的な考え方です。特定のフレーズ (IE: ) を検索してCall me
、次の単語を取る方法はありますか?
編集: e.Result.Text は、辞書内の Text に一致する単語のみを返すことに注意してください。