Running SAPI on separate thread

Generating a thread for each play is excessive. You can simply use the native SPF_ASYNC.

hr = pVoice->Speak(L"Hello, welcome to the VR AI Retail Store", SPF_ASYNC, NULL);