使用 IBM Watson 的语音转文本会导致在识别关键字时多次调用方法
Using IBM Watson's speech-to-text causes method to be called more than once when keyword is recognized
我在我的 Unity 程序中使用 IBM Watson Speech-To-Text 来识别语音。在识别语音的 onRecognize()
方法中,我放置了一个 if 语句,如果它识别关键字 "go" 就会调用一个方法。虽然,当单词 "go" 被识别时,该方法被调用了两次或三次而不是应有的一次,这导致程序无法按应有的方式运行。
我想不出任何解决方案,因为我无法更改代码。
//All of this is inside of the onRecognize() method
string text = string.Format("{0} ({1}, {2:0.00})\n", alt.transcript, res.final ? "Final" : "Interim", alt.confidence);
Log.Debug("ExampleStreaming.OnRecognize()", text);
ResultsField.text = text;
//This if statement inside of the onRecognize() method will play an
//animation if it detects the word "go"
if (alt.transcript.Contains("go"))
{
anim.Play("move", -1, 0f); //This will play an animation.
}
我希望下面的代码段在检测到单词 "go" 时只调用该方法一次,但它会被调用两次或三次。这导致它看起来有问题,而不是我想要的。任何帮助将不胜感激。
添加检查 res.final?
if (res.final && alt.transcript.Contains("go"))
{
anim.Play("move", -1, 0f); //This will play an animation.
}
我在我的 Unity 程序中使用 IBM Watson Speech-To-Text 来识别语音。在识别语音的 onRecognize()
方法中,我放置了一个 if 语句,如果它识别关键字 "go" 就会调用一个方法。虽然,当单词 "go" 被识别时,该方法被调用了两次或三次而不是应有的一次,这导致程序无法按应有的方式运行。
我想不出任何解决方案,因为我无法更改代码。
//All of this is inside of the onRecognize() method
string text = string.Format("{0} ({1}, {2:0.00})\n", alt.transcript, res.final ? "Final" : "Interim", alt.confidence);
Log.Debug("ExampleStreaming.OnRecognize()", text);
ResultsField.text = text;
//This if statement inside of the onRecognize() method will play an
//animation if it detects the word "go"
if (alt.transcript.Contains("go"))
{
anim.Play("move", -1, 0f); //This will play an animation.
}
我希望下面的代码段在检测到单词 "go" 时只调用该方法一次,但它会被调用两次或三次。这导致它看起来有问题,而不是我想要的。任何帮助将不胜感激。
添加检查 res.final?
if (res.final && alt.transcript.Contains("go"))
{
anim.Play("move", -1, 0f); //This will play an animation.
}