カスタム C++ アプリケーションで音声認識に pocketshpinx を使用しています。ps_get_hyp()
メソッドによって返される仮説文字列が空の文字列である場合があることに気付きました。
質問:これは予期された動作ですか? もしそうなら、空の文字列を仮説として与えないようにポケットフィンクスに伝える方法はありますか?
以下は、私のコードの関連部分のスニペットです:
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);
}