Reply To: Pocketsphinx 'heard' different to received hypothesis

Home Forums OpenEars Pocketsphinx 'heard' different to received hypothesis Reply To: Pocketsphinx 'heard' different to received hypothesis

#1022457
Halle Winkler
Politepix

OK, thank you for clarifying. That is a pretty novel use of the platform so I wouldn’t expect it to necessarily work, but we can troubleshoot it a bit, with the proviso that the overall app logic question is more complex than I can help you with, since it would require reproducing it in an app in order to give feedback which isn’t something there are time resources available for, regretfully.

I would troubleshoot this by reducing it. So, take a clean slate and start by creating three language models which each have one (different) word. Create a test which is just analyzing the first two models and then switching to the third. See if the issue replicates, and if not, see what changes/additions first cause replication. Get rid of the FliteController stuff because it has overhead and doesn’t help with your test.

The first area I’d be suspicious of is whether you are passing in the language models you expect at the time expected, so log the path of the language models right before they are passed to the recognition function and confirm that they are exactly what is expected (needless to say, give each model a unique and function-related name). The next thing I would wonder about is the asynchronous nature of the hypothesis response and whether you have something happening out of series or in a race condition because you are running two recognitions on a background thread which both return their results on a foreground thread and are not guaranteed to have similar processing times. I would verify this by noting similarities or dissimilarities in the order of return as you build up to the complexity with which you are experiencing the delayed hypothesis.

Take a lot of care with confirming that any pointers point to what you think they are pointing to, by logging anything before it is passed to anything else and confirming that it is as expected.