This post will talk about some frequent questions when using TTS functionality in Microsoft Server Speech Platform. I will keep it updated as new questions come up.
For the detailed usage of the API, please go to MSDN.
· Why SpeechSynthesizer Speak doesn’t produce sound on my sound card?
Currently the server voice doesn’t speak to sound card because it is primarily designed for server usage. It is a difference against System.Speech.Synthesizer.
There are serveral ways for you to play the audio from SpeechSynthesizer.
1. You can speak to wave file first and play that wave file. See SetOutputToWavefile method of SpeechSynthesizer
2. Use a custom output stream to send the audio bytes to your target device (could be audio device or network socket). See SetOutputAudioStream method.
3. Speak to a memory stream, and then play the stream with System.Media.SoundPlayer
· Why SpeechSynthesizer throws an exception that says “No voice installed on the system or none available with the current security setting”?
It could be caused by following reasons:
1. The speech platform runtime is installed, but the language pack is not installed. Make sure you install the TTS language pack.
2. The speech platform and language pack are installed, but the .net application is compiled as a target platform different from the speech platform. For example, speech platform is x64, but the app is x86.
· What are the difference between desktop speech API, and server speech API?
Here are some differences between desktop speech API and server speech API from usage perspective.
1. They have different GUIDs for COM object.
2. They have different name space. (System.Speech for Desktop, Microsoft.Speech for Server)