参考网址:
  (1)TTS-零基础入门-10分钟教你做一个语音功能
    http://blog.csdn.net/u010176014/article/details/47326413
  (2)、TTS-零基础入门之生成语音文件
    http://blog.csdn.net/u010176014/article/details/47428595
  (3)、TTS-零基础入门之停止列表中单条语音播报
    http://blog.csdn.net/u010176014/article/details/47747017
  (4)、TTS-零基础入门之语音模板化
    http://blog.csdn.net/u010176014/article/details/47364403
  (5)、TTS零基础入门之拒绝界面卡顿--加入线程
    http://blog.csdn.net/u010176014/article/details/47986101

1、播放一段 string

private void button2_Click(object sender, EventArgs e)
{
SpVoice voice01 = new SpVoice();//该类是支持语音合成(TTS)的核心类。通过SpVoice对象调用TTS引擎,从而实现朗读功能。
//SpeechVoiceSpeakFlags spFlags01 = SpeechVoiceSpeakFlags.SVSFDefault;// ZC: 同步方式(在语音播放完毕之前,窗口会假死)
SpeechVoiceSpeakFlags spFlags01 = SpeechVoiceSpeakFlags.SVSFlagsAsync;//异步的播放方式 string strSpeak = "阿发水电费布娃娃IE挖三说";
voice01.Speak(strSpeak, spFlags01);
}

2、将string 转成 语音,然后存放到 磁盘上

private void button3_Click(object sender, EventArgs e)
{
SaveFileDialog saveFileDialog = new SaveFileDialog();//提示用户选择文件的保存位置
saveFileDialog.Filter = "All files (*.*)|*.*|wav files (*.wav)|*.wav|mp3 files (*.mp3)|*.mp3";//保存文件的格式 例如 All files (*.*)|*.*
saveFileDialog.Title = "保存音频文件";//对话框的标题
saveFileDialog.FilterIndex = ;//使用 FilterIndex 属性设置第一个显示给用户的类型筛选选项
saveFileDialog.RestoreDirectory = true;//对话框在关闭前是否还原当前目录 if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
SpeechStreamFileMode SpFileMode = SpeechStreamFileMode.SSFMCreateForWrite;
SpFileStream SpFileStream = new SpFileStream();
SpFileStream.Open(saveFileDialog.FileName, SpFileMode, false); // ZC: 保存文件 与 输出文件流 绑定 string speakWeather = "阿发水电费布娃娃IE挖三说";
SpeechVoiceSpeakFlags SpFlags = SpeechVoiceSpeakFlags.SVSFlagsAsync;//异步的播放方式 SpVoice voice = new SpVoice();
voice.AudioOutputStream = SpFileStream;
voice.Speak(speakWeather, SpFlags);
voice.WaitUntilDone(Timeout.Infinite);
SpFileStream.Close();
MessageBox.Show("导出语音成功!");
}
}

3、

4、

5、

语音03_TTS_C#示例代码的更多相关文章

  1. WebRTC 音频采样算法 附完整C++示例代码

    之前有大概介绍了音频采样相关的思路,详情见<简洁明了的插值音频重采样算法例子 (附完整C代码)>. 音频方面的开源项目很多很多. 最知名的莫过于谷歌开源的WebRTC, 其中的音频模块就包 ...

  2. 基于DotNetOpenAuth的OAuth实现示例代码: 获取access token

    1. 场景 根据OAuth 2.0规范,该场景发生于下面的流程图中的(D)(E)节点,根据已经得到的authorization code获取access token. 2. 实现环境 DotNetOp ...

  3. 0038 Java学习笔记-多线程-传统线程间通信、Condition、阻塞队列、《疯狂Java讲义 第三版》进程间通信示例代码存在的一个问题

    调用同步锁的wait().notify().notifyAll()进行线程通信 看这个经典的存取款问题,要求两个线程存款,两个线程取款,账户里有余额的时候只能取款,没余额的时候只能存款,存取款金额相同 ...

  4. ActiveMQ笔记(1):编译、安装、示例代码

    一.编译 虽然ActiveMQ提供了发布版本,但是建议同学们自己下载源代码编译,以后万一有坑,还可以尝试自己改改源码. 1.1 https://github.com/apache/activemq/r ...

  5. C#微信公众平台接入示例代码

    http://mp.weixin.qq.com/wiki/17/2d4265491f12608cd170a95559800f2d.html 这是微信公众平台提供的接入指南.官网只提供了php的示例代码 ...

  6. 编译opengl编程指南第八版示例代码通过

    最近在编译opengl编程指南第八版的示例代码,如下 #include <iostream> #include "vgl.h" #include "LoadS ...

  7. 股票数据调用示例代码php

    <!--?php // +---------------------------------------------------------------------- // | JuhePHP ...

  8. php示例代码之类似于C#中的String.Format方法

    php示例代码之类似于C#中的String.Format方法 原文来自于  http://stackoverflow.com/questions/1241177/c-string-format-equ ...

  9. redis 学习笔记(2)-client端示例代码

    redis提供了几乎所有主流语言的client,java中主要使用二种:Jedis与Redisson 一.Jedis的使用 <dependency> <groupId>redi ...

随机推荐

  1. 如何运行Python程序

    注:以下均基于windows下操作,并且安装的是最新的python3.3版本. 安装完python之后,我们可以做两件事情, 1.将安装目录中的Doc目录下的python331.chm使用手册复制到桌 ...

  2. 不恰当使用线程池处理 MQ 消息引起的故障

    现状 业务部门反应网站访问特别慢,负责运维监控的同事说MQ消息队列积压了,中间件的说应用服务器内存占用很高,GC 一直回收不了内存,GC 线程占了近 100% 的 CPU,其他的基本上都在等待,数据库 ...

  3. TFS二次开发-基线文件管理器(4)-标签的创建

    上一节已经完成了源码文件的读取,如果要将已经选择的文件保存为一个标签(Lable).在VS我们只能对一个目录做标签,非常的不方便.如果用下面的方法,将选择的文件路径保存为一个List在打标签,就非常的 ...

  4. 初学习-python打印乘法表、正方形、三角形

    for x in range(1,4): for o in range(0,x-1): print('*',end='') pass pass print('*') print('\n')print( ...

  5. JavaScript中对事件简单的理解

    事件(event) 1.什么是JavaScript事件? 事件是文档或浏览器中发生的特定交互瞬间. 2.事件流 事件流描述的是从页面中接受事件的顺序,包含IE提出的事件冒泡流与Netscape提出的事 ...

  6. SingleNumber

    Given an array of integers, every element appears twice except for one. Find that single one. Note: ...

  7. [转载]在服务器端判断request来自Ajax请求(异步)还是传统请求(同步),x-requested-with XMLHttpRequest

    在服务器端判断request来自Ajax请求(异步)还是传统请求(同步) 在服务器端判断request来自Ajax请求(异步)还是传统请求(同步):  两种请求在请求的Header不同,Ajax 异步 ...

  8. 【WEB HTTP】缓存

    1. HTTP并不支持兄弟缓存,所以人们通过一些协议对HTTP进行了扩展,比如因特网缓存协议(Internet Cache Protocol, ICP)和超文本缓存协议(HyperText Cachi ...

  9. 剑指offer 面试36题

    面试36题: 题:二叉搜索树与双向链表 题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点,只能调整树中结点指针的指向. 解题思路一:由于输入的一个二叉搜索树, ...

  10. JAVA虚拟机(JVM)以及跨平台原理(JDK、JRE、JVM)

    相信大家已经了解到Java具有跨平台的特性,可以“一次编译,到处运行”,在Windows下编写的程序,无需任何修改就可以在Linux下运行,这是C和C++很难做到的. 那么,跨平台是怎样实现的呢?这就 ...