C# 语音识别
在.NET4.0中,我可以借助System.Speech组件让电脑来识别我们的声音。以上,当我说"你好",显示"Darren",我说"age",显示"永远21"。如何做呢?首先要开启电脑的语音识别功能。右键电脑右下方的扬声器,选择"录音设备"。点击默认的"麦克风",再点击左下角的"配置"按钮。点击"打开语音识别"。一系列简单设置后,屏幕上出现如下:在VS中创建一个窗体应用程序,界面上有一个Rich
·
在.NET4.0中,我可以借助System.Speech组件让电脑来识别我们的声音。
以上,当我说"你好",显示"Darren",我说"age",显示"永远21"。如何做呢?
首先要开启电脑的语音识别功能。
右键电脑右下方的扬声器,选择"录音设备"。
点击默认的"麦克风",再点击左下角的"配置"按钮。
点击"打开语音识别"。
一系列简单设置后,屏幕上出现如下:
在VS中创建一个窗体应用程序,界面上有一个RichTextBox和2个Button。
添加System.Speech的引用。
编写如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Speech;
using System.Speech.Recognition;
namespace SpeechDemo
{
public partial class Form1 : Form
{
SpeechRecognitionEngine recEngine = new SpeechRecognitionEngine();
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
recEngine.RecognizeAsync(RecognizeMode.Multiple);
button2.Enabled = true;
button1.Enabled = false;
}
private void button2_Click(object sender, EventArgs e)
{
recEngine.RecognizeAsyncStop();
button2.Enabled = false;
button1.Enabled = true;
}
private void Form1_Load(object sender, EventArgs e)
{
Choices preCmd = new Choices();
preCmd.Add(new string[] { "你好", "你", "age", "啦", "A"});
GrammarBuilder gb = new GrammarBuilder();
gb.Append(preCmd);
Grammar gr = new Grammar(gb);
recEngine.LoadGrammarAsync(gr);
recEngine.SetInputToDefaultAudioDevice();
recEngine.SpeechRecognized += recEngine_SpeechRecognized;
}
void recEngine_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
switch (e.Result.Text)
{
case "你":
richTextBox1.Text += "\n号";
break;
case "你好":
richTextBox1.Text += "\nDarren";
break;
case "age":
richTextBox1.Text += "\n永远21";
break;
case "啦":
richTextBox1.Text += "\n听见了";
break;
case "A":
richTextBox1.Text += "\n听见了";
break;
}
}
}
}
具体验证效果如下图所示
源码下载地址
参考下载地址:SpeechDemo.rar: https://url98.ctfile.com/f/19054198-584153167-a01935?p=1746 (访问密码: 1746)
更多推荐
已为社区贡献1条内容
所有评论(0)