簡體   English   中英

C#語音識別-將用戶語音輸入存儲到字符串

[英]C# Speech Recognition - Store user speech input to string

因此,我要實現的目標是當SpeechSynthesizer詢問“我該怎么稱呼您”時? 並且用戶說“ Bob”,將“ Bob”存儲在名為myName的字符串變量中,如圖所示,並使用(“ Hello” + myName)進行回復。 現在,我有一個.txt文件中的單詞列表,SpeechSynthesizer可以理解,並且該列表中包含“鮑勃”。 我有一個用戶語音輸入的日志,可以看到它正在注冊它,但是沒有執行if語句。

我沒有完全理解該庫,並嘗試進行一些研究,但找不到與我的問題有關的任何內容。

這里重要的是,我需要將其存儲在變量中,因為這將解決我遇到的其他問題。 這更多是一個示例問題。

提前致謝。

private void sRecognize_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
    {

        if (e.Result.Text == "listen")
        {
            listenMode = true; //resume listening
            sSynth.Speak("listening mode initializing.  Listening now");                              
        }

        if (listenMode == true)
        {
            switch (e.Result.Text)
            {                                     
                case "setup":
                    sSynth.Speak("setup initialized");
                    sSynth.Speak("what should i call you?");
                    if (e.Result.Text == "bob")
                    {
                        myName = e.Result.Text;
                        sSynth.Speak("hello " + myName);
                        break;
                    }
                    else
                        break;


                default:
                    answer.Text = answer.Text + " " + e.Result.Text.ToString();
                    break;
            }


        }
    }

我可以這樣做(但是這不是我所需要的)。

case "Bob":
     sSynth.Speak("Hello Bob");
break;

不要以為事件值會隨時變化。 因此,對於已識別數據的每個部分,都會引發新事件。

我建議將參數類型/名稱(最好是枚舉)作為變量,並根據值執行操作來檢查處理程序中的值。

private string _parameter = string.Empty;

private void sRecognize_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
    switch(_parameter)
    {
        case string.Empty: 
        {
            switch (e.Result.Text)
            {                                     
                case "setup": _parameter = "Name"; ...
            }
            break;
        }
        case "Name" : 
        { 
            sSynth.Speak("hello " + myName); 
            _parameter = "Age";
        }
        ...
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM