(转) 使用Speech SDK 5.1文字转音频

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

SeppchSDK51.exe 语音合成引擎
SpeechSDK51LangPack.exe 支持日语和简体中文需要这个支持。
SpeechSDK51MSM.exe 如果要将引擎作为产品的一部分发布需要这个。
Sp5TTintXP.exe XP下Mike和Mary语音
sapi.chm 文档

1.安装SpeechSDK51.EXE
2.安装SpeechSDK51LangPack.exe 来支持中文
3.可以在安装文件夹找到一些示例文件,示例文件里可以找到一个生成好的Interop.SpeechLib.dll的文件,当然也可以自己生成这个文件.

简单的代码

1.生成wav文件,其中filename为生成的文件名。

SpeechVoiceSpeakFlags SpFlags = SpeechVoiceSpeakFlags.SVSFlagsAsync;
SpVoice Voice = new SpVoice(); SpeechStreamFileMode SpFileMode = SpeechStreamFileMode.SSFMCreateForWrite; SpFileStream SpFileStream = new SpFileStream();
SpFileStream.Open(filename, SpFileMode, false); Voice.AudioOutputStream = SpFileStream;
Voice.Speak(text, SpFlags);
Voice.WaitUntilDone(Timeout.Infinite);
SpFileStream.Close();
    1. wav文件转换为MP3
      这里需要依赖lame的程序[http://www.rarewares.org/mp3-lame-bundle.php]

      string outfile = "-b 32 --resample 22.05 -m m "" + fileName + "" "" + fileName.Replace(".wav", ".mp3") + """;
      System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo();
      psi.FileName = dir + "lame.exe";
      psi.Arguments = outfile;
      psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Minimized;
      System.Diagnostics.Process p = System.Diagnostics.Process.Start(psi);
      if (waitFlag)
      {
      p.WaitForExit();
      }

上一篇:用sql增、修改、删除字段


下一篇:程序员面试题精选100题(33)-在O(1)时间删除链表结点[数据结构]