处置PhraseRecognitionSystem之后听写识别会话也不会开始

时间:2018-07-13 11:22:10

标签: c# unity3d

在Unity上,我正在通过两个按钮上分配的以下功能来测试关键字识别和听写识别器。

Unity博士说,短语识别系统不会从听写识别系统开始,但是在关键字识别器的文章中并未提及。在此测试中,一切正常,但即使我启动了关键字识别器并在下次单击时进行了处理,在另一个按钮上,单击听写识别器也不会启动并显示以下错误:

Cannot start dictation recognition session while PhraseRecognitionSystem is running.

这是第一个按钮的OnButtonClick方法的代码:

           if(start != true){    
            m_Recognizer.Stop();
            m_Recognizer.Dispose();
            Debug.Log("disposed recognizer.");
            start = true;
            } //start on else...;

以下是用于启动听写识别器的代码:

        m_DictationRecognizer = new DictationRecognizer();

        m_DictationRecognizer.DictationResult += M_DictationRecognizer_DictationResult;


        m_DictationRecognizer.DictationHypothesis += (text) =>
        {

            Debug.LogFormat("Dictation hypothesis: {0}", text);
            m_Hypotheses.text = text;

        };
        //here happens mentioned exception.
               m_DictationRecognizer.Start();

我需要知道如何正确配置关键字识别器对象以及如何正确启动m_DictaionRecognizer,并且这两者可以同时运行吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

使用两个系统都没有意义。 无论如何,如果您想重新启动DictationRecognizer,请通过在函数中编写第二个代码段代码来完全重新初始化它,然后在“启动代码”中调用此函数以启动重新协调。

最好的选择是不要停止处置DictationRecognizer,然后将已识别的句子发送给REGEX。

if( Regex.IsMatch(DictationResult.text, "mykeyword", RegexOptions.IgnoreCase) )
{
   //do something
}