Search code examples
c#.netmicrosoft-speech-platform

Using Microsoft Speech Platform SDK v11.0 can not speak Chinese


I just followed the MSDN Installation, installed the "MSSpeech_TTS_zh-CN_HuiHui.msi" & "MSSpeech_SR_zh-CN_TELE.msi", and ran the Sample, English voice works well, but when I type Chinese like:

SpeechSynthesizer synth = new SpeechSynthesizer();
synth.SelectVoiceByHints(VoiceGender.Neutral);
synth.Speak("你好");

it don't speak any thing, any suggustion? Thanks!


Solution

  • You may want to select the voice explicitly, looking at the MSDN documentation on SelectVoiceByHints it states that it will return the first voice that matches your specifications.

    From Link(emphasis mine).

    Use the GetInstalledVoices method and VoiceInfo class to obtain the names of installed text-to-speech (TTS) voices that you can select.The SpeechSynthesizer object selects the first installed voice that matches the specified characteristics.

    When an application calls GetInstalledVoices, the method verifies that each of the voices it finds in the registry meets certain minimum criteria. For any voice that fails verification, GetInstalledVoices sets its Enabled property to False. An application cannot select a voice whose Enabled property is False. Typically, applications will not set a voice’s Enabled property.

    To select a voice by name, use the SelectVoice method

    or you can use the Overload of the SelectVoiceByHints Method that takes CultureInfo as a parameter.

    The SpeechSynthesizer object finds voices whose Gender, Age, and Culture properties match the gender, age, and culture parameters. The SpeechSynthesizer counts the matches it finds, and returns the voice when the count equals the voiceAlternate parameter.

    Microsoft Windows and the System.Speech API accept all valid language-country codes. To perform text-to-speech using the language specified in the culture parameter, a speech synthesis engine that supports that language-country code must be installed. The speech synthesis engines that shipped with Microsoft Windows 7 work with the following language-country codes:

    •en-US. English (United States)

    •zh-CN. Chinese (China)

    •zh-TW. Chinese (Taiwan)

    Two-letter language codes such as "en" are also permitted.