使用System.Speech无法正常工作的语音识别

时间:2017-09-10 15:59:31

标签: c# system.speech.recognition

我一直在尝试使用system.speech功能我已经看过各种在线视频和网络文章教学如何正确使用它,但我无法以某种方式让它工作。我没有错误,程序会按照应有的方式进行编译,但是当我说话没有任何反应时,我已经尝试将我的语言改为en-UK并回到en-US,但它没有做任何事情。我使用的是VS17,代码如下:

    SpeechRecognitionEngine recEngine = new SpeechRecognitionEngine(new CultureInfo("en-US"));

    public Form1()
    {
        InitializeComponent();
        this.TransparencyKey = (BackColor);
        this.StartPosition = FormStartPosition.Manual;
        this.Location = new Point(Convert.ToInt32(0.10), 300);
        textBox1.Visible = false;
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        Choices commands = new Choices();
        commands.Add(new string[] { "hello" });
        GrammarBuilder gr = new GrammarBuilder();
        gr.Append(commands);
        Grammar grammar = new Grammar(gr);

        recEngine.LoadGrammarAsync(grammar);
        recEngine.SetInputToDefaultAudioDevice();
        recEngine.SpeechRecognized += RecEngine_SpeechRecognized;
    }

    private void RecEngine_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
    {
        switch (e.Result.Text)
        {
            case "hello":
                MessageBox.Show("Hello");
                break;
        }
    }

    private void label1_Click(object sender, EventArgs e)
    {
    }

    private void pictureBox2_Click(object sender, EventArgs e)
    {
        recEngine.RecognizeAsyncStop();
    }

    private void textBox1_TextChanged(object sender, EventArgs e)
    {
    }

    void button1_Click(object sender, EventArgs e)
    {
        recEngine.RecognizeAsync(RecognizeMode.Multiple);
    }
}

编辑:我在2台不同的计算机上使用下面相同的代码下载并测试了该程序,除了这一台之外,所有这些都能正常运行。我试着用两台识别我演讲的电脑的麦克风。但是它们都没有用,所以问题就在于我的PC,我可能不得不下载一些带语音功能的Windows更新或类似的东西。我在哪里可以找到它?

1 个答案:

答案 0 :(得分:0)

显然以管理员身份运行修复了该问题。 不知怎的,这个想法甚至都没有达到我的想法。