Pocketsphinx возвращает пустую строку для гипотезы

Я использую Pocketshpinx для распознавания речи в пользовательском приложении C ++. Я заметил, что иногда строка гипотезы возвращается 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);
}

0

Решение

Вопрос: это ожидаемое поведение?

В этом нет ничего плохого

Если так, есть ли способ сказать pocketsphinx, чтобы он не выдавал пустую строку в качестве гипотезы?

Если ты ничего не сказал, что должно быть возвращено?

FPlatformProcess :: Сон (0,005);

Сон здесь не особо нужен

1

Другие решения