I want to do Text-to-speech with many voices in many languages.
I tried SpeechSynthesizer
(Ref: System.Speech) but it only allows 2 English voices. After installing 6 English voices from Microsoft site, I still cannot get any other voices.
I changed to SpVoice
(Ref: Microsoft Speech Object Library). SpVoice can recognize 6 voices I just installed. The problem is when I call spVoice.Pause()
, it always delay 0.5 second before it stops speaking completely. I also tried to set AlertBoundary
for SpVoice but it didn't help.
SpeechSynthesizer can pause right away with SpeakAsyncCancelAll
but only works with default voices.