C#.NET使用TTS引擎实现文语转换
2009-02-12 13:45
609 查看
C#.NET使用TTS引擎实现文语转换
2007/11/07 19:45
2007/11/07 19:45
[转载] 本文讲述使用微软TTS5.1语音引擎(中文)实现文本阅读和音频输出为WAV完美解决方案。 网上很多文章说的是要安装SAPI.51 SDK,而这个东西有好几十M,并且用起来比较复杂。微软官方网站上是这样写的:SAPI5.1 SDK可以从微软网站下载:http://www.microsoft.com/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) 以上两个东西由于大小关系没有传上来,需要的可以留下邮箱地址。 如果你自己安装了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#.NET使用TTS引擎实现文语转换
- C#.NET使用TTS引擎实现文语转换
- 使用C#.NET来实现 XML+XSL=>HTML的转换
- C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志
- C#、VB.NET使用HttpWebRequest访问https地址(SSL)的实现方法
- MQTT(一)C#使用 MQTTnet 快速实现 MQTT 通信
- C# .Net实现URL绝对路径和相对路径之间互相转换
- C#、VB.NET使用HttpWebRequest访问https地址(SSL)的实现
- C#.NET开发Winform使用MySQL数据库 无法将“System.Byte[]”的对象强制转换为类型“System.IConvertible”
- [转]C#、VB.NET使用HttpWebRequest访问https地址(SSL)的实现
- 使用 Visual C# .NET 将字符串转换为小写、大写或词首字母大写
- 使用C#实现实体类和XML相互转换
- 使用XStream注解实现Java对象与XML互相转换的代码示例---转自:http://www.blogjava.net/bolo
- 使用Web服务将C#代码转换为VB.NET代码
- [C#]使用 C# 代码实现拓扑排序 dotNet Core WEB程序使用 Nginx反向代理 C#里面获得应用程序的当前路径 关于Nginx设置端口号,在Asp.net 获取不到的,解决办法 .Net程序员 初学Ubuntu ,配置Nignix 夜深了,写了个JQuery的省市区三级级联效果
- (转).NET 4.5中使用Task.Run和Parallel.For()实现的C# Winform多线程任务及跨线程更新UI控件综合实例
- C#、VB.NET使用HttpWebRequest访问https地址(SSL)的实现
- ADO.NET .net core2.0添加json文件并转化成类注入控制器使用 简单了解 iTextSharp实现HTML to PDF ASP.NET MVC 中 Autofac依赖注入DI 控制反转IOC 了解一下 C# AutoMapper 了解一下
- cookie的详细说明 cookie的使用 c# .net cookie购物车的实现
- 使用C#.NET 实现高性能IPX/SPX SOCKET服务器 附源码