c#朗读文字
来源:互联网 发布:阿里云appcode 编辑:程序博客网 时间:2024/06/11 05:27
1. 下载SAPI SDK 和语言包(支持中文和日语):
SAPI 5 SDK: http://download.microsoft.com/download/speechSDK/SDK/5.1/WXP/EN-US/speechsdk51.exe
语言包: http://download.microsoft.com/download/speechSDK/SDK/5.1/WXP/EN-US/speechsdk51LangPack.exe
1、打开VS 新建一个窗体项目
2、添加引用:在COM选项卡里面的Microsoft Speech object library引用
并在代码区添加引用
using SpeechLib;
using System.Threading;//这个引用是用来保存语音文件用的线程类
3、添加一个文本框 两个按钮
4、在一个按钮下输入如下代码
SpeechVoiceSpeakFlags flag = SpeechVoiceSpeakFlags.SVSFlagsAsync;
SpVoice voice = new SpVoice(); //SAPI 5.4,我的是win7系统自带的Microsoft Speech object library是5.4版本
voice.Voice = voice.GetVoices(string.Empty, string.Empty).Item(3);
//Item(0)单词男声Sam
//Item(1)单词男声Mike
//Item(2)单词女声Mary
//Item(3)中文发音,如果是英文,就依单词字母一个一个发音
voice.Speak(textBox1.Text, flag);
代码解释 :其中最重要的是SPVoice类 他是这个DEMO的核心 ;然后就是Item(3)选项 下面注释已经很清楚了 说明是什么意思。后面还有一个SPEAK方法 不用我说也知道是什么意思吧 !
当然关于SpVoice对象还有很多方法 查了一下Microsoft Speech的API 还有pause/ Resume SetVoice/GetVoice SetRate|SetRate SetVolume/GetVolume 这些方法根据他的意思就知道 是关于暂停 继续 设置声音 设置读取速度 声音大小的 更多的对象 方法 请参考他的API
5、在另一个按钮输入如下代码
SpeechVoiceSpeakFlags flag = SpeechVoiceSpeakFlags.SVSFlagsAsync;
SpVoice voice = new SpVoice();
voice.Voice = voice.GetVoices(string.Empty, string.Empty).Item(3);
SpeechStreamFileMode SpFileMode = SpeechStreamFileMode.SSFMCreateForWrite;
SpFileStream SpFileStream = new SpFileStream();
SpFileStream.Open(@"C:/test.wav", SpFileMode, false);
voice.AudioOutputStream = SpFileStream;//设定voice的输出为Stream
voice.Speak(textBox1.Text.Trim(), flag);
voice.WaitUntilDone(Timeout.Infinite);//Using System.Threading;
SpFileStream.Close();
其实这段代码跟前一个代码差不多 只不过是通过流把声音保存为语音文件而已
- c#朗读文字
- C#中英文语音朗读及文字转换成音频文件
- C#开发语音程序入门之文字朗读
- 使用AVSpeechSynthesizer朗读文字
- 使用TextToSpeech朗读文字
- TTS实现文字语音朗读
- C#语音朗读
- C#语音朗读
- C#语音朗读
- C#语音朗读
- C#朗读文章
- C#语音朗读
- c#语音朗读类
- c# 语音朗读
- C#语音朗读
- C#之语音朗读
- C#文本朗读
- VC用TTS实现文字语音朗读
- POJ 2165 Going Home
- 使程序在Linux下后台运行(验证可行)
- 常见Java面试题 [转载待续]
- 占用性能的语句
- Android 下载重复文件命名规则【android源码解析七】
- c#朗读文字
- 功率不大,温度够高
- Jetty 的工作原理以及与 Tomcat 的比较
- 基于live555的流媒体代理转发服务器
- linux的sleep()和usleep()的使用和区别
- native-activity 工程完全注解
- 抽象类和接口的区别
- ALM11(QC11)官方中文安装包下载
- c++(重载、覆盖、隐藏)