C#语音朗读文本 — TTS的实现

TTS, Text To Speech的缩写,是使用语音朗读文本的技术。目前,在国内应用较多的是排队叫号系统

Windows 平台的TTS,通常使用的是微软自带的 Speech API。

Windows XP 自带的是 Speech API 5.1,默认是只支持英文的。如果要朗读中文,需要安装LangPack,里面支持简体中文,不过,是个男生的发音。

从Vista开始,默认自带的 Microsoft Speech API 5.3,效果好了很多,可惜不支持XP,郁闷

下面,说一下 C# 利用 TTS 来朗读文本的实现方式:

从 .NET 3.0开始,.NET Framework里,提供了托管的Speech API 调用方法,这样,就非常流畅了。而不必拘泥于繁琐的非托管COM调用了。

.Net 3.0 的实现代码:

using System.Speech.Synthesis;

SpeechSynthesizer synth = new SpeechSynthesizer();

synth.Speak("Hello, world! 你好么?");

synth.Dispose();

  

从.NET 4.0开始,增加了一个 dynamic 动态绑定的功能,使得C#可以像VB.NET那样,使用后期绑定的方式,使用COM对象了,从而使得直接COM调用,也非常的简单了。

.Net 4.0 的实现方式:

Type type = Type.GetTypeFromProgID("SAPI.SpVoice");

dynamic spVoice = Activator.CreateInstance(type);

spVoice.Speak("你好,欢迎使用 CSharp 4.0!");

  

说明: 如果是XP系统,并且没有安装 TTS 5.1 语言包的话,上面的朗读,会忽略所有的中文的。

我这里,也把 TTS5.1的下载地址,一并发布出来:

SDK 5.1 下载, 这里

SDK 5.1 语言包,这里

SDK 5.1 语音文件,这里

时间: 2024-08-02 11:00:36

C#语音朗读文本 — TTS的实现的相关文章

基于Qt5.5.0的sql数据库、SDK_tts文本语音朗读的CET四六级单词背诵系统软件的编写V1.0

作者:小波 QQ:463431476 请关注我的博客园:http://www.cnblogs.com/xiaobo-Linux/  感觉我要火~~这比我是装定了!! 我的第二款软件:CET四六级单词背诵软件.基于QT5.5.0.sql数据库.以及TTS文本识别语音单词朗读的一款软件. 第一款软件的sql数据库软件的编写:http://www.cnblogs.com/xiaobo-Linux/p/4676950.html 现在来讲解我的第二款高大上的代码: 这个是.pro的代码,其中axconta

Delphi - OLE类实现TTS方式语音朗读

Delphi调用OLE类实现TTS方式语音朗读 直接看代码: unit uMain; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Comobj, Dialogs, StdCtrls, RzButton; type TFrmMain = class(TForm) btnStart: TRzBitBtn; mmMsg: TMemo; procedure btnSta

win8,win8.1的日记本应用(包含页面跳转)以及如何打开保存文件和如何调用语音来朗读文本

在经历过HelloWorld洗礼之后,我开始尝试着做一个简单的win8.1日记本应用.然而什么东西都是想着简单,但是开始着手做的时候完全不是想的那回事.先前想好的解决方案完全用不上,先前觉得很快会过的步骤硬生生的会卡住半天,过程那叫一个痛苦啊.但是不管怎样,还是实现了一些很基本很基本的功能,而且也不是很完美,总之,且行且学习吧. 首先是界面的xaml设计,先贴上代码: 以下是登陆界面前台:一个PasswordBox控件和一个按钮 这里面最要注意两点: 1.PasswordBox控件,微软新加了这

C#将文本用语音朗读

在C#中文字语音朗读有三种方法,下面暂介绍其中一个方法. 在项目中引用System.Speech,具体方法为右键点击项目 > 添加引用 > .Net > 找到System.Speech点击确定. 下面为实现代码,将以控制台程序为例: using System.Speech.Synthesis; namespace ConsoleApplication1{ class Program{ static void Main(string[] args){ SpeechSynthesizer v

小梦windows phone 8.1开发:语音朗读

使用SpeechSynthesizer类可以实现文本朗读功能,位于 Windows.Media.SpeechSynthesis命名空间.有了它我们就可以实现有声小说了,是不是很爽.下面给出一个将文本块的内容朗读出来的例子,记得在应用的功能里要勾选 麦克风. 关于SpeechSynthesizer类的详细说明请参考: http://technet.microsoft.com/zh-cn/sysinternals/system.speech.synthesis.speechsynthesizer(v

非常简单的语音朗读功能

不知道大家有没有发现,在System.Speech.Synthesis命名空间下有一个SpeechSynthesizer类,它可以指定的文本内容进行语音朗读,而且,这个类用起来也严重简单,简单到什么程度? 试试看. 首先,新建一个项目,随便你建什么项目,反正能测试即可. 然后,添加对System.Speech程序集的引用. 引入System.Speech.Synthesis命名空间,最后,看好了,几行代码搞定. private void button1_Click(object sender,

android语音朗读功能demo实现

简单的文本语音朗读功能实现 实现这个功能主要用一个类,是TextToSpeech,废话不都少,直接上代码.总的来说效果一般,短语的停顿节奏不是很好. 界面很简单,一个Button ,一个EditView,就不贴代码了 public class ActivityResumptionArticle extends BaseActivity{    private TextToSpeech mSpeech = null;   private Button btn = null;   private E

iOS AV Foundation 二维码扫描 04 使用合成语音朗读二维码内容

前一节,我们为程序识别到的二维码提供了可视化的显示,这一节,我们使用合成语音朗读扫描到的二维码的内容. 修改ViewController.m,定义以下实例变量并进行初始化: AVSpeechSynthesizer *_speechSynthesizer; _speechSynthesizer = [[AVSpeechSynthesizer alloc] init]; 初始化语音合成器十分简单.语音合成器会控制对每个语音数据的回放和顺序.初始化完成后,Metadata output将触发语音合成器

关于 java 实现 语音朗读

最近有个java项目要实现 一个 java语音朗读的功能,百度了半天 没有现成的 .也是一头雾水.没具体思路.....大体上总结了下网上的资料  1.java 实现起来 比c或者vb 能麻烦点,或者是这个功能用其他语言完成 然后整合到java 项目里面去! 2.需要具体的语音库 !!希望有这方面经验的大侠 给点提示!