我在一个自定义c++应用程序中使用pocketshpinx进行语音识别。我注意到有时ps_get_hyp()
方法返回的假设字符串是空字符串。
问题:这是预期的行为吗?如果是这样,有没有办法告诉pocketsphinx不要给出空字符串作为假设?
下面是我代码中相关部分的代码片段:
do { ReadAudioBuffer(); } while (!in_speech);
while (in_speech) { ReadAudioBuffer(); }
ps_end_utt(ps);
hyp = ps_get_hyp(ps, NULL);
ReadAudioBuffer()
法:
void SpeechRecognizer::ReadAudioBuffer()
{
if ((k = ad_read(ad, adbuf, 2048)) < 0)
{
UE_LOG(LogTemp, Warning, TEXT("Failed to read audion"));
return;
}
ps_process_raw(ps, adbuf, k, FALSE, FALSE);
in_speech = ps_get_in_speech(ps);
FPlatformProcess::Sleep(0.005);
}
问题:这是预期的行为吗?
没有问题
如果是这样,有没有办法告诉pocketsphinx不要给出空字符串作为假设?
如果你什么也没说,那么应该返回什么呢?
FPlatformProcess:睡眠(0.005);
这里不需要睡眠