Я использую 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);
}
Вопрос: это ожидаемое поведение?
В этом нет ничего плохого
Если так, есть ли способ сказать pocketsphinx, чтобы он не выдавал пустую строку в качестве гипотезы?
Если ты ничего не сказал, что должно быть возвращено?
FPlatformProcess :: Сон (0,005);
Сон здесь не особо нужен