It works great after the first try, and there is no pause or hesitation and no intermittent noise during the first try
Under real-world conditions it’s likely to create interaction stress for your users since they will hesitate and experience intermittent noise, among other challenges such as mic distance, accent, etc. Avoiding long queries via voice recognition is a suggestion I make when I give talks on the subject of speech UI, since it reduces user interaction stress.
You can check out the calibration options in PocketsphinxController’s docs and I’d also recommend setting a longer secondsOfSilence pause time along with the longer calibration.
It sounds like maybe there is something about the app setup that is leading to a poor calibration (maybe another audio object interrupting it or something weird when the listening loop starts), so that is an area you could troubleshoot to detect why the calibration results aren’t ideal.