jithinpt
jithinpt

Reputation: 1244

Pocketsphinx returns empty string for hypothesis

I'm using pocketshpinx for speech recognition in a custom C++ application. I noticed that sometimes the hypothesis string returned by the ps_get_hyp() method is an empty string.

Question: Is this an expected behaviour? If so, is there a way to tell pocketsphinx to not give the empty string as a hypothesis?

Following is a snippet of the relevant portion of my code:

do { ReadAudioBuffer(); } while (!in_speech);
while (in_speech) { ReadAudioBuffer(); }

ps_end_utt(ps);
hyp = ps_get_hyp(ps, NULL);

The ReadAudioBuffer() method:

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);
}

Upvotes: 0

Views: 585

Answers (1)

Nikolay Shmyrev
Nikolay Shmyrev

Reputation: 25220

Question: Is this an expected behaviour?

There is nothing wrong with it

If so, is there a way to tell pocketsphinx to not give the empty string as a hypothesis?

If you said nothing what should be returned then?

FPlatformProcess::Sleep(0.005);

Sleep is not really needed here

Upvotes: 1

Related Questions