0

我在自定义 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 audio\n"));
        return;
    }

    ps_process_raw(ps, adbuf, k, FALSE, FALSE);
    in_speech = ps_get_in_speech(ps);
    FPlatformProcess::Sleep(0.005);
}
4

1 回答 1

1

问题:这是预期的行为吗?

没有什么问题

如果是这样,有没有办法告诉pocketsphinx不要将空字符串作为假设?

如果你什么都没说,那应该返回什么?

FPlatformProcess::Sleep(0.005);

这里真的不需要睡眠

于 2015-05-26T23:32:25.640 回答