Welcome,
Let’s say OpenEars insists on controlling the mic.
Well, this is basically the purpose of the framework when you use it to perform speech recognition – it is a low-latency continuous listening tool and its audio driver is very adapted to that goal. I mention this because I’m happy to help to extent possible, but it can be a case of diminishing returns to work around a primary feature, and there is a danger of basing your rework on an implementation detail which isn’t permanent.
Is there another method?
Is there a way we can pass audio buffers directly to Sphinx recognition methods?
If you want to work with buffers, you can modify the source in many different ways to make that possible, but it isn’t possible for me to provide code for that. Take a look at ContinuousAudioUnit.m which is where the buffer callback lives. If you want to work with WAV files, OpenEars has two different methods that perform recognition on WAV files, either as a test file in the main loop or by using the less-supported WAV recognition method of PocketsphinxController.