The issue is that PocketsphinxController can’t perform speech recognition on a sample rate other that 16k, so your choice is between 16k playback with less sound resolution or 44.1k recognition with lower-accuracy recognition and other potential problems such as buffer overruns. Option 3 is to separate the two functions and set the session as needed when switching between them, which doesn’t sound like it’s available to you in your usage case.
The best bet for a permanent workaround would be to put some research into how to change the audio driver so that it mixes its own input requirements with external output requirements instead of using its own output settings. I can also do this when there is time, but there are a number of things ahead of that feature at the moment so it will be a bit. Have you tried setting the AudioSessionManager allowMixing property to TRUE? A quick search of the forums should explain more about that.