C#读取文本播放相应语音【转】

第一种方案:

利用微软text to speech引擎(TTS),读取文本

(1)添加Microsoft Speech Object Library的项目引用

(2)引入using SpeechLib名称控件

(3)读取文本

SpeechVoiceSpeakFlags flag = SpeechVoiceSpeakFlags.SVSFlagsAsync;         SpVoice voice = new SpVoice();

//默认使用“控制面板”—>“声音”—>“录制”选项卡的“配置”—>“文本到语音转换”—>语言选择中对应项,例如Microsoft Lily或Microsoft Sam

//此处可采用“预听语音”测试,保证操作系统本身正确配置该语音包,尤其是B/S结构往往会被忽略

//否则会抛出异常:“没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))”

voice.Voice = voice.GetVoices(string.Empty, string.Empty).Item(0);         voice.Speak(textBox1.Text, flag);

(4)语言包的选择(亲测)

WindowsXP 中默认只安装了Microsoft Sam,而且只能朗读英文,不能读中文,直接略过。(不推荐)

找了一个Microsoft_TTS_51_chs.msi安装了以后多了一个Microsoft Simplified Chinese语音包,但只能读中文,不能读英文单词,将单词拆解为字母读出(全中文可以)

Windows Vista/7中默认安装Microsoft Lili,可以中英文混读,但语音效果较好(推荐),但是XP系统无法安装,Microsoft Anna 只能读英文(不推荐)。

ScanSoft-MeiLing-ChineseMandarinVoice可以在XP下安装,但是多音字识别不好,优点是比较小巧,40M左右。

NeoSpeech Lily,声音的效果比 Microsoft Lili要好。推荐使用,但是比较大500M左右。

第二种方案:

System.Speech.Synthesis(语音合成器)

让我们看一下关于如何从托管应用程序使用语音合成的示例。作为最典型的一个 UI 输出示例,我将从只说出“Hello, world”的应用程序开始,如图 5 所示。

<em>using System;

using System.Speech.Synthesis;

namespace TTS_Console_Sample_1

{

    class Program

    {

        static void Main(string[] args)

        {

            SpeechSynthesizer synth = new SpeechSynthesizer();

            synth.SpeakText("Hello, world!");

        }

    }

}</em>

该示例是一个明显的控制台应用程序,是最近使用 Visual C#® 创建的,其中添加了三行代码。所添加的第一行只引入 System.Speech.Synthesis 命名空间。第二行声明并实例化 SpeechSynthesizer 的实例,它准确表示了其名称的含意:语音合成器。所添加的第三行是对 SpeakText 的调用。这是调用合成器所需的全部。

默认情况下,SpeechSynthesizer 类使用 Speech 控件面板中默认推荐的合成器。但是它可以使用任何与 SAPI DDI 兼容的合成器。

时间: 2024-10-05 18:01:06

C#读取文本播放相应语音【转】的相关文章

容易使用的读取文本播放器 Text to Speech Maker 2.5

FilmConvert Stand Alone 1.216 MacOSXAutodesk.Smoke.v2015.SP1.MacOSX 1DVDAutodesk Smoke 2015提供更快的效能和更平易近人的价格专 为以Mac计算机作业的小型工作室设计,Smoke 2015专业影音特效和剪辑工具现在具备了 3D追踪.新的Timeline FX工作流程.针对搭载OS X Mavericks操作系统的新版Mac Pro新增硬件支持和系统运作的最佳化,并与Final Cut Pro X提供更佳的互通

文本转换成语音的免费工具

文本转换成语音的免费工具?日常生活中,我们在使用微信聊天工具的时候,如果不方便输入文字的情况下,我们会使用语音给对方发送消息.如果对方不方便听取语音消息的时候,可以将语音转换成文字,但是仅限于翻译普通话.那么,文字转换成语音,有没有好用靠谱的软件呢?小编给大家分享一个工具,可以将文字转换成语音.使用工具:迅捷PDF转换器1.首先大家可以在百度浏览器搜索关键词PDF转换器,然后将软件下载安装到电脑中.为下面的操作提前准备.2.软件安装后,鼠标双击进入工具操作页面,这个软件的色彩搭配很好,增强了视觉

Java使用OpenCV3.2实现视频读取与播放

Java使用OpenCV3.2实现视频读取与播放 OpenCV从3.x版本开始其JAVA语言的SDK支持视频文件读写,这样就极大的方便了广大Java语言开发者学习与使用OpenCV,通过摄像头或者视频文件读取帧的内容与播放,完成视频内容分析与对象跟踪等各种应用开发任务.可以说OpenCV C++ SDK可以做到绝大多数事情,在OpenCV3.x版本上用Java都可以完成,这样就为很多Java开发者学习OpenCV打开了方便之门. 实现思路 首先用OpenCV相关API读取视频流或者视频文件的每一

python 逐行读取文本

f = open("foo.txt") # 返回一个文件对象line = f.readline() # 调用文件的 readline()方法while line: print line, # 后面跟 ',' 将忽略换行符 # print(line, end = '') # 在 Python 3中使用 line = f.readline() f.close() 也可以写成以下更简洁的形式 for line in open("foo.txt"): print line,

qt读取文本

直接 代码: 1 // lyy : 2016/8/26 16:40:11 说明:读取文本 2 bool FileOpeartion:: GetTheTextContent (const QString strPath, QStringList &strContent) 3 { 4 QFile file (strPath); 5 6 if (file.open (QIODevice::ReadOnly | QIODevice::Text)) 7 { 8 QTextStream in (&fi

自己动手写简单的web应用服务器(3)—服务器从磁盘文件中读取文本,发送给客户端

服务器: 1 package serverAndClient; 2 3 import java.io.BufferedReader; 4 import java.io.File; 5 import java.io.FileInputStream; 6 import java.io.IOException; 7 import java.io.InputStream; 8 import java.io.InputStreamReader; 9 import java.io.OutputStream;

python读取文本、配对、插入数据脚本

#-*- coding:UTF-8 -*- #-*- author:Zahoor Wang -*- import codecs, os, sys, platform, string def env(): return platform.system() def read_file(uri, charset = "utf-8"): f = codecs.open(uri, "r", charset) s = f.read() f.close() return s de

Python读取文本,输出指定中文(字符串)

因业务需求,需要提取文本中带有检查字样的每一行. 样本如下: 1 投入10kVB.C母分段820闭锁备自投压板 2 退出10kVB.C母分段820备投跳803压板 3 退出10kVB.C母分段820备投合820压板 4 检查2.3号主变压器分头位置一致 5 合上820断路器 6 检查820断路器确带负荷 7 检查2号.3号主变压器负荷分配正常 8 拉开802断路器 9 检查802断路器在分闸位置 10 检查3号主变压器不过负荷 我们要用的包:re(python 强大的正则包),codecs(专门

将文本转换成语音

又一次在这里和大家在这里和大家见面了.几天给大家看的是如何实现将文本转换成语音.这可是现在很流行的一种快捷表达方式哦!!看<nikita>没?当时我的那个羡慕呀!!不过还好,有我们的讯飞科技为我们写这个强大的程序接口,这样,我们就有机会实现其效果哦! 这里只是谢了一个简单的类似与HelloWorld的那种简单程序.但是这个一通则百通吧. 首先呢?我们必须要在Eclipse环境里面导入一个jar包,那就是这个地址上的jar包.http://download.csdn.net/detail/wan