目录
1.还记得小娜的声音么
那是Winodws系统内置的语言模块
可以直接用C#调用
2.参考代码
命名空间using System.Speech.Recognition;
2.1创建语言识别对象
static SpeechRecognitionEngine speechRecognition = new SpeechRecognitionEngine();//创建语言识别对象
2.2创建选择对象、添加要响应的词组
Choices choices = new Choices();//创建选择
choices.Add(new string[] { "你好", "谢谢" });//添加要监听、识别的词组
2.3加载选择、创建语法
GrammarBuilder gb = new GrammarBuilder();//语法构建者
gb.Append(choices);//加载选择
Grammar gr = new Grammar(gb);//创建语法
2.4加载语法
speechRecognition.LoadGrammarAsync(gr);
speechRecognition.SetInputToDefaultAudioDevice();
2.5编写响应函数
public static void speechRecognition_response(object sender, SpeechRecognizedEventArgs e)
{
//识别到语法里的词组、则进入函数
switch (e.Result.Text)//判断识别到的词组是哪个
{
case "你好":
Console.WriteLine("你好");
break;
case "谢谢":
Console.WriteLine("谢谢");
break;
}
}
2.6把响应函数加入事件
speechRecognition.SpeechRecognized += speechRecognition_response;
2.7启动监听
speechRecognition.RecognizeAsync(RecognizeMode.Multiple);
2.8总参考
static SpeechRecognitionEngine speechRecognition = new SpeechRecognitionEngine();//创建语言识别对象
static void Main(string[] args)
{
Choices choices = new Choices();//创建选择
choices.Add(new string[] { "你好", "谢谢" });//添加要监听、识别的词组
GrammarBuilder gb = new GrammarBuilder();//语法构建
gb.Append(choices);//加载选择
Grammar gr = new Grammar(gb);//创建语法
speechRecognition.LoadGrammarAsync(gr);
speechRecognition.SetInputToDefaultAudioDevice();
speechRecognition.SpeechRecognized += speechRecognition_response;
speechRecognition.RecognizeAsync(RecognizeMode.Multiple);//启动
Console.ReadLine();
}
public static void speechRecognition_response(object sender, SpeechRecognizedEventArgs e)
{
//识别到语法里的词组、则进入函数
switch (e.Result.Text)//判断识别到的词组是哪个
{
case "你好":
Console.WriteLine("你好");
break;
case "谢谢":
Console.WriteLine("谢谢");
break;
}
}
这样麦克风听见你好、就会打印你好、听见谢谢、就会打印谢谢