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