【发布时间】: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