使用C#的语音识别程序

时间:2014-11-28 02:44:20

标签: c# artificial-intelligence voice-recognition

我正在尝试根据此链接构建语音识别程序: https://www.youtube.com/watch?v=OJdVfwiTIXE

问题是..当我在编译后运行Windows窗体时,它无法识别并响应我的语音命令......我正在为此项目使用.NET framework 4客户端配置文件。我只参考了#34; system.speech"我使用笔记本电脑的麦克风构建语音输入..

这是我的文本文件(我从第一行开始逐行编写):

hi
hello henry
close
close henry

到目前为止,这是我的代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Speech.Recognition;
using System.Speech.Synthesis;
using System.IO;

namespace Henry
{
    public partial class Form1 : Form
    {
        SpeechRecognitionEngine _recognizer = new SpeechRecognitionEngine();
        SpeechSynthesizer Henry = new SpeechSynthesizer();

        Random rnd = new Random();

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            _recognizer.SetInputToDefaultAudioDevice();
            _recognizer.LoadGrammar(new Grammar(new GrammarBuilder(new Choices(File.ReadAllLines(@"C:\Henry\com.txt")))));
            _recognizer.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(_recognizer_SpeechRecognized);
            _recognizer.RecognizeAsync(RecognizeMode.Multiple);
        }

        void _recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
        {
            int ranNum = rnd.Next(1, 10);
            string speech = e.Result.Text;
            switch (speech)
            {
                //GREETINGS
                case "hi":
                case "hello henry":
                    if (ranNum < 6) { Henry.Speak("Hello sir"); }
                    else if (ranNum > 5) { Henry.Speak("Hi"); }
                    break;

                case "close":
                case "close henry":
                    Henry.Speak("Until next time");
                    Close();
                    break;
            }
        }
    }
}

0 个答案:

没有答案