微软TTS5.1语音引擎(中文)实现文本阅读.docVIP

  • 106
  • 0
  • 约5.3千字
  • 约 5页
  • 2020-02-26 发布于陕西
  • 举报

微软TTS5.1语音引擎(中文)实现文本阅读.doc

CHISC.NET - 全国医疗信息化联盟 ,为全国医疗信息化人员提供最全面的资料下载平台 转载] 本文讲述使用微软TTS5.1语音引擎(中文)实现文本阅读和音频输出为WAV完美解决方案。 网上很多文章说的是要安装SAPI.51 SDK,而这个东西有好几十M,并且用起来比较复杂。微软官方网站上是这样写的:SAPI5.1 SDK可以从微软网站下载:/speech/download/sdk51/ 需要安装程序的有Speech SDK 5.1(68M)和5.1 Language Pack (81.5M)。本文使用不到2M的东西实现文语转换,可以说是有关TTS的完美版本! 功能: 进行中文文本的阅读,可以将阅读的语音输出为WAV音频。 实现平台: Microsoft Visual Studio 2005 微软TTS5.1语音引擎(中文) 所需要的东西: 用TlbImp从SAPI.51 SDK中导出的DotNetSpeech.dll(160K) 微软TTS5.1语音引擎(中文).msi(1.55M) tlbimp在sdk的bin里面。 如果你自己安装了SAPI.51 SDK,可以使用这个命令自己导出DotNetSpeech.dll Tlbimp sapi.dll /out: DotNetSpeech.dll(出现错误不用管,不影响使用) 安装微软TTS5.1语音引擎(中文).msi,打开控制面板,打开语音配置项目,在文字-语音转换的语音选择组合框中选择Microsoft Simplified Chinese,这样才可以读出中文。如果要读英文,要选择Microsoft Sam。 使用Microsoft Visual Studio 2005新建项目,添加引用,引用DotNetSpeech.dll。 命名空间: using DotNetSpeech; 读出文本框中的中文: SpeechVoiceSpeakFlags spFlags = SpeechVoiceSpeakFlags.SVSFlagsAsync; SpVoice voice = new SpVoice(); voice.Speak(textBox1.Text, spFlags); 将文本框中中文的读音保存为WAV文件: SpeechVoiceSpeakFlags spFlags = SpeechVoiceSpeakFlags.SVSFlagsAsync; SpVoice voice = new SpVoice(); SaveFileDialog dialog = new SaveFileDialog(); dialog.Filter = All files (*.*)|*.*|wav files (*.wav)|*.wav; dialog.Title = 保存WAV文件; dialog.FilterIndex = 2; dialog.RestoreDirectory = true; if (dialog.ShowDialog() == DialogResult.OK) { SpeechStreamFileMode spFileMode = SpeechStreamFileMode.SSFMCreateForWrite; SpFileStream spFileStream = new SpFileStream(); spFileStream.Open(dialog.FileName, spFileMode, false); voice.AudioOutputStream = spFileStream; voice.Speak(textBox1.Text, spFlags); voice.WaitUntilDone(1000); 上面两句一定要写上,否则产生的文件没有声音 WaitUntilDone的后面的smTimeout是一个int型 spFileStream.Close(); 参考: 在C#中使用微软AGENT之TTS: /art/200509/4372.htm /art/200509/4372_1.htm 一个例子 /thread-44790-1-3.html C#中的微软Agent: 要在C#中使用微软Agent,我们必须在程序中添加二个DLL文件:AxAgentObjects.dll和AgentObjects.dll。加载动画角色的代码是相当简单的: AxAgent.Characters.Load(Genie,(object)C:/Windows/Msagent/chars/GENIE.acs); Character = AxAgent.Characters[Genie]; file://将语言设置为美国英语 Character.LanguageID =

文档评论(0)

1亿VIP精品文档

相关文档