support asynchronous text-to-speech