chenduo

类库需要引用:System.Speech.Synthesis;

/// <summary>
        /// 微软TTS合成
        /// </summary>
        /// <param name="messagePlay">需要合成的文字内容</param>
        /// <param name="fullFileName">音频保存地址(包括文件名称).mp3格式</param>
        /// <returns></returns>
        public void MSTTSPlay(string messagePlay,string fullFileName)
        {
            try
            {
                MemoryStream ms = new MemoryStream();

                Thread thread = new Thread(() =>
                {
                    SpeechSynthesizer ss = new SpeechSynthesizer();
                    ss.SetOutputToWaveStream(ms);
                    ss.Speak(messagePlay);
                    ss.SetOutputToNull();
                    ss.Dispose();
                });
                thread.Start();
                
                Thread.Sleep(200);

                FileStream fileStream = new FileStream(fileSavePath, FileMode.Create);
                ms.WriteTo(fileStream);
                ms.Close();
                fileStream.Close();

            }
            catch (AggregateException ex)
            {
                var sb = new StringBuilder();
                foreach (var item in ex.InnerExceptions)
                {
                    var t1 = item.GetType();
                    sb.AppendLine(t1.Namespace + "." + t1.Name + " " + item.Message);
                }
                _logger.ErrorFormat("微软TTS合成失败:{0}", sb.ToString());

                _logger.ErrorFormat("微软TTS合成失败:{0}", ex);
            }
        }

  IIS需要注意把当前项目的应用程序池修改为:LocalSystem

 

 

下载离线语音包:

https://www.microsoft.com/en-us/download/details.aspx?id=27224

 MSSpeech_TTS_zh-CN_HuiHui.msi

分类:

技术点:

相关文章: