alphacep / vosk-api

Offline speech recognition API for Android, iOS, Raspberry Pi and servers with Python, Java, C# and Node
Apache License 2.0
7.84k stars 1.09k forks source link

Python binding: strange effect when reusing KaldiRecognizer (Reset not working properly?) #1372

Open fquirin opened 1 year ago

fquirin commented 1 year ago

Hi,

I noticed a strange effect when I checked a set of transcriptions created by running through a number of WAV files in different folders. Sometimes I get slightly different results for the same WAV files with the exact same settings, depending on the order of processing the files 🤨.

Since I was reusing the KaldiRecognizer in a loop (for wav in wav_files ...) I thought the only logical explanation could be that there is "something" left internally that remains inside the recognizer and influences the next transcription and indeed, when I add rec = KaldiRecognizer(model, 16000) in every iteration the effect is gone and everything is always identical 🤔. I tried to add rec.Reset() instead, but that didn't work, only creating a new instance every time helps.

Is this expected behavior? Shouldn't a rec.FinalResult() or a rec.Reset() always reset the recognizer properly?

madkote commented 1 year ago

duplicate of https://github.com/alphacep/vosk-api/issues/868 possibly