使用 System.Speech 的语音识别无法正常工作
Voice recognition using System.Speech not working correctly
我一直在尝试使用 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);
}
}
编辑:我使用下面的相同代码在两台不同的计算机上下载并测试了该程序,除这台计算机外,它在所有计算机上都运行良好。我尝试使用识别我的语音的两台计算机的麦克风。但是 none 有效,所以问题毕竟出在我的电脑上,我可能需要下载一些 windows 具有语音功能或类似功能的更新。我在哪里可以找到它?
显然 运行 作为管理员解决了这个问题。
不知何故,我从来没有想过这个想法。
我一直在尝试使用 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);
}
}
编辑:我使用下面的相同代码在两台不同的计算机上下载并测试了该程序,除这台计算机外,它在所有计算机上都运行良好。我尝试使用识别我的语音的两台计算机的麦克风。但是 none 有效,所以问题毕竟出在我的电脑上,我可能需要下载一些 windows 具有语音功能或类似功能的更新。我在哪里可以找到它?
显然 运行 作为管理员解决了这个问题。 不知何故,我从来没有想过这个想法。