【问题标题】:C# Speech Recognition - convert sentence into numbersC#语音识别 - 将句子转换为数字
【发布时间】:2015-03-22 03:51:41
【问题描述】:

我正在通过一个计算器项目学习 C#,并尝试添加一个很酷的功能,可以将语音识别为计算器输入。 System.Speech.Recognition 库允许我使用一些基本的 if 语句代码轻松地为数字 0-9 添加语法选择。但是,我希望它能够识别用户可以说的所有可能的数字组合......最好的方法是什么,而不必将每个可能的数字组合编码为句子/字符串(例如“五百三十七千四百二十二”)?

这是我目前所拥有的:

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...
 }

【问题讨论】:

标签: c# speech-recognition calculator


【解决方案1】:

那会很复杂

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

如果在同一场景中提供输入语音:

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

您的算法找不到结果。

如果输入像这样会容易得多:

例如。 “五三七零……等等”

【讨论】:

    猜你喜欢
    • 2023-01-09
    • 2021-09-12
    • 1970-01-01
    • 1970-01-01
    • 2020-01-31
    • 1970-01-01
    • 2020-08-06
    • 1970-01-01
    相关资源
    最近更新 更多