The Default TTS available on Windows is SAPI. By default, the TTS & SR engines run on a separate thread. However, the default SAPI TTS request will block the calling thread (unless the TTS request is made with the Async flag set). (SR requests will marshal back to the calling thread automatically.)
So, if the component is doing the TTS calls, you'll need to modify the component to make the TTS calls asynchronously.
You can also use thread affinity (aka the SetThreadAffinityMask
API) to force the main thread to only run on one core. That may not fix the race conditions, though. Using process affinity (SetProcessAffinityMask
) won't work, as it affects all threads, and you definitely need more than one thread.