基于C#实现语⾳识别功能详解在4.0中,我可以借助System.Speech组件让电脑来识别我们的声⾳。
以上,当我说"name",显⽰"Darren",我说"age",显⽰"永远21"。如何做呢?
⾸先要开启电脑的语⾳识别功能。
右键电脑右下⽅的扬声器,选择"录⾳设备"。
点击默认的"麦克风",再点击左下⾓的"配置"按钮。
在VS中创建⼀个窗体应⽤程序,界⾯上有⼀个RichTextBox和2个Button。
添加System.Speech的引⽤。
(PS:强调⼀下如果不打开语⾳识别功能,启动程序会报错:在此系统上语⾳识别不可⽤。找不到 SAPI 和语⾳识别引擎。)编写如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Speech.Recognition;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsForms
{
public partial class Form1 : Form
{
SpeechRecognitionEngine recEngine = new SpeechRecognitionEngine();
public Form1()
{
InitializeComponent();
}
private void btnEnable_Click(object nder, EventArgs e)
{
recEngine.RecognizeAsync(RecognizeMode.Multiple);
btnDisable.Enabled = true;
}
private void Form1_Load(object nder, EventArgs e)
{
Choices preCmd = new Choices();
preCmd.Add(new string[] { "name", "age" });
GrammarBuilder gb = new GrammarBuilder();
gb.Append(preCmd);
Grammar gr = new Grammar(gb);
recEngine.LoadGrammarAsync(gr);
recEngine.SetInputToDefaultAudioDevice();
recEngine.SpeechHypothesized += RecEngine_SpeechHypothesized;
}
private void RecEngine_SpeechHypothesized(object nder, SpeechHypothesizedEventArgs e)
{
switch (e.Result.Text)
{
ca "name":
txtList.Text += "\nDarren";
break;
ca "age":
txtList.Text += "\n永远21";
break;
default:
break;
}
}
private void btnDisable_Click(object nder, EventArgs e)
{
recEngine.RecognizeAsyncStop();
btnDisable.Enabled = fal;
}
}
}
当然中⽂也是可以识别的,项⽬很有意思,⼤家可以调⽤语⾳播放进⾏播放回复内容。
到此这篇关于基于C#实现语⾳识别功能详解的⽂章就介绍到这了,更多相关C#语⾳识别内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!