WPF语言朗读

今天在园子里看到一些网友们发布了用SpeechSynthesizer来朗读语音的程序,我自己也写了一个函数,感觉效果还不错。代码如下:

    public static class Speaker

    {

        ///<summary>

        /// 调用系统 语音朗读   备注 该方法只支持.net 4.0 版本以上 

        /// </summary>

        /// <param name="words">朗读的内容</param>

        /// <param name="isAsync">是否同步朗读</param>

        public static void SpeekWords(string words, bool isAsync=true)

        {

            using (SpeechSynthesizer synthesizer = new SpeechSynthesizer())

            {

                synthesizer.Volume = 100;   //音量 0~100   最大只能100

                synthesizer.Rate = 0;   //  语速 -10~10    0 中等

                synthesizer.SetOutputToDefaultAudioDevice();



                if (isAsync)

                {

                    //异步朗读 

                    synthesizer.SpeakAsync(words);

                }

                else

                {  //同步朗读 

                    synthesizer.Speak(words);

                }

            }

        }

    }

有一个问题,我的开发环境是XP SP3+vs2010.开始不能朗读中文,只能朗读英文。后来在网上查了下,发现xp使用的是Speech SDK 5.1,需要安装5.1 Language Pack  之后才能朗读中文和日文。

下载地址:

http://www.microsoft.com/en-us/download/details.aspx?id=10121

 

网站原文是这样说的的:

If you want to use the Japanese and Simplified Chinese engines for development purposes, download the Speech SDK 5.1 Language Pack file (SpeechSDK51LangPack.exe) in addition to the Speech SDK 5.1 file.

 

为了避免上述链接失效,我将两个文件上传到了迅雷网盘。希望对大家有用。

http://f.xunlei.com/jump?fref=W00003&location=http%3A%2F%2Ff.xunlei.com%2F8257565%2Ff%2F0a2302e3-c829-4581-a5e1-ad5f80822534

此时默认是中文朗读,但是英文单词都会以字母的形式一个一个的读出来。

如何在程序中设置中文方式还是英文方式还要进一步研究下~~

你可能感兴趣的:(WPF)