It shouldn’t be necessary to check this because they run in parallel. Can you take a look at my previous reply and describe in more depth what the symptom is that makes it seem like they are blocking each other? Speech recognition in OpenEars is 100% multithreaded and it doesn’t do anything on mainThread but start and send notifications. FliteController may do synthesis on mainThread but that only accounts for the moment of synthesis – all the playback is asynchronous. NeatSpeech doesn’t even do the synthesis on mainThread. So I’d need a bit more information about what the situation you are seeing is that seems like everything is blocking – is it the UI being frozen, and if so, under which circumstances, or is it one of the OpenEars elements not being responsive, and if so, which one and under which circumstances? Or is this because recognition suspends during speech for the reason I explained above?