sxl_88 2015-07-14 07:50 采纳率: 50%
浏览 1827

利用微软语音识别类库System.Speech.Recognition,无法异步调用识别引擎。

C# Winform项目中,利用微软语音识别类库System.Speech.Recognition,可以正常识别语音,并异步调用语音的识别引擎。
目前遇到的问题是,在项目中有一个“视频监控”栏目。在“视频监控”正常运行的情况下,如果通过语音讲话就无法正常识别语音且不执行异步调用语音的识别引擎。

请问,如何实现在“视频监控”正常运行的情况下,可以正常识别语音,并异步调用语音的识别引擎。请帮忙看看怎么修改下面的代码:

代码:

private void FrmApp_Load(object sender, EventArgs e)
{

        this.Hide();

        TheadPackage();

        Thread m_trdSpeech = new Thread(doSpeechWork);//创建"语音识别"线程
        m_trdSpeech.Start();


    }

void TheadPackage()
{
Thread t_thread = new Thread(threadPro);//创建运行"视频监控"线程

t_thread.Start();
}

void threadPro()
{
try
{
MethodInvoker MethInvo = new MethodInvoker(ShowFrom);
BeginInvoke(MethInvo);
}
catch (Exception ex)
{
LLog.Log(string.Format("threadPro:{0}\terrmsg:{1}", this.ToString(), ex.Message));
}
}

void ShowFrom()
{
frmmontor = new FrmMonitor(); //启动运行"视频监控"的窗体
frmmontor.Show();
}

//语音识别
void doSpeechWork()
{
try
{
SRE.SetInputToDefaultAudioDevice();

GrammarBuilder GB = new GrammarBuilder();
GB.Append("选择");
GB.Append(new Choices(new string[] { "红色", "绿色" }));
Grammar G = new Grammar(GB);
G.SpeechRecognized += new EventHandler(G_SpeechRecognized);
SRE.LoadGrammar(G);
SRE.RecognizeAsync(RecognizeMode.Multiple); //<=======异步调用识别引擎,允许多次识别

        }
        catch (Exception ex)
        {
            LLog.Log(string.Format("threadPro:{0}\terrmsg:{1}", this.ToString(), ex.Message));
        }
    }

//目前的问题是,在运行“视频监控”的情况下,无法异步调用识别引擎这个方法
void G_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
//Text = e.Result.Text;
switch (e.Result.Text)
{
case "选择红色":
BackColor = Color.Red;
break;
case "选择绿色":
BackColor = Color.Green;
break;
}
}

  • 写回答

1条回答 默认 最新

  • sxl_88 2015-07-14 12:15
    关注

    通过语音打开了“视频监控“,在“视频监控“运行情况下,是不是无法异步调用识别引擎,所以导致无法识别语音。
    请各位高手帮忙看看,谢谢!

    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)