簡體   English   中英

C#語音識別-將句子轉換為數字

[英]C# Speech Recognition - convert sentence into numbers

我正在通過一個計算器項目學習C#,並試圖添加一個很酷的功能,可以將語音識別為計算器輸入。 System.Speech.Recognition庫使我可以使用一些基本的if語句代碼輕松地為數字0-9添加語法選擇。 但是,我希望它能夠識別出用戶可以說的所有可能的數字組合...對此最好的方法是什么,而不必將每個可能的數字組合都編碼為句子/字符串(例如“ 530七千四百二十二“)?

這是我到目前為止的內容:

private void buttonListen_Click(object sender, EventArgs e)
 {
    SpeechRecognitionEngine speechRecognize = new SpeechRecognitionEngine();

    Choices ones = new Choices();
    ones.Add(new string[] { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" });

    Grammar calculatorGrammerOnes = new Grammar(new GrammarBuilder(ones));

    try
        {
            speechRecognize.RequestRecognizerUpdate();
            speechRecognize.LoadGrammar(calculatorGrammerOnes);
            speechRecognize.SpeechRecognized += speechRecognize_SpeechRecognized;
            speechRecognize.SetInputToDefaultAudioDevice();
            speechRecognize.RecognizeAsync(RecognizeMode.Multiple);
        }
    catch
        {
            return;
        }
 }

private void speechRecognize_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
 {
    if (e.Result.Text == "one")
    {
      //Insert "1" as the operand
    }
    else if (e.Result.Text == "two")
    {
      //Insert "2" as the operand
    }
etc...
 }

那會很復雜

例如“五十三萬七千四百二十二”,

如果在相同的情況下,請提供以下輸入語音:

“五十三萬七千四百二十二”

您的算法找不到結果。

如果輸入像這樣會容易得多:

例如。 “五三七零..etc”

暫無
暫無

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

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