Pocketsphinx为假说返回空字符串



我在一个自定义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);

这里不需要睡眠

最新更新