7

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 に一致する単語のみを返すことに注意してください。

4

3 に答える 3