本文讲述使用微软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();

我这里补充下,当安装多个TTS语音包以后,需要进行选择,所以选择不同的语言包,方法如下:

1. SpVoice spVoice=new SpVoice() 
spVoice.voice=spVoice.GetVoices("name=Microsoft Mary","").item(0); 
spVoice.Speak("How do you do"); 
//这样就是女声了

2. SpeechSynthesizer syn = new SpeechSynthesizer(); 
syn.SelectVoice("Microsoft Lili");

(转)C#.NET使用TTS引擎实现文语转换的更多相关文章

  1. 20.5 语音合成(百度2016年2月29日发布的tts引擎)

    分类:C#.Android.VS2015: 创建日期:2016-03-17 一.简介 编写手机App时,有时需要使用文字转语音(Text to Speech)的功能,比如开车时阅读收到的短信.导航语音 ...

  2. 【VC++技术杂谈004】使用微软TTS语音引擎实现文本朗读

    本文主要介绍如何使用微软TTS语音引擎实现文本朗读,以及生成wav格式的声音文件. 1.语音引擎及语音库的安装 TTS(Text-To-Speech)是指文本语音的简称,即通过TTS引擎把文本转化为语 ...

  3. 微软语音引擎 TTS 最基本使用

    TTS(TextToSpeak) 需求:需要借助程序实现 文字合成语音/语音识别. TTS 介绍就不说了,这里介绍非常详细 >>> TTS详细介绍  +  SAPI(微软的TTS语音 ...

  4. android用讯飞实现TTS语音合成 实现中文版

    Android系统从1.6版本开始就支持TTS(Text-To-Speech),即语音合成.但是android系统默认的TTS引擎:Pic TTS不支持中文.所以我们得安装自己的TTS引擎和语音包. ...

  5. android学习笔记53——自动朗读TTS

    自动朗读TTS android提供了自动朗读功能--其指的是支持可以对指定文本内容进行朗读,从而发出声音: 同时android的自动朗读支持还允许把文本对应的音频录制成音频文件,方便后续播放. 这种自 ...

  6. 重新想象 Windows 8.1 Store Apps (87) - TTS: Speak Text, Speak SSML

    [源码下载] 重新想象 Windows 8.1 Store Apps (87) - TTS: Speak Text, Speak SSML 作者:webabcd 介绍重新想象 Windows 8.1 ...

  7. Android 自动朗读(TTS)

    在Android应用中,有时候需要朗读一些文本内容,今天介绍一下Android系统自带的朗读TextToSpeech(TTS).自动朗读支持可以对指定文本内容进行朗读,还可以把文本对应的音频录制成音频 ...

  8. Android实例-调用GOOGLE的TTS实现文字转语音(XE7+小米2)(无图)

    注意:在手机上必须选安装文字转语音引擎“google Text To Speech”地址:http://www.shouji56.com/soft/GoogleWenZiZhuanYuYinYinQi ...

  9. TTS与MediaPlayer混合使用

    package com.xxx.xxx.Util; import android.content.Context; import android.media.MediaPlayer; import a ...

随机推荐

  1. Coupons

    uva10288:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&am ...

  2. Delphi会自动初始化全局变量和类成员变量,但不初始化局部变量

    If you don't explicitly initialize a global variable, the compiler initializes it to 0. Object insta ...

  3. 怎么给qt程序添加版本信息

    windows下的可执行文件的属性中有版本这个信息,她含有版本信息,描述,版权等等.对于qt的程序,要含有这样的信息,该怎么办呢?那就如下操作吧:新建***.rc文件,在rc文件填入下的信息 #if ...

  4. Binary Tree Inorder Traversa

    ​ package cn.edu.xidian.sselab.hashtable; import java.util.ArrayList;import java.util.List;import ja ...

  5. 【HDOJ】2802 F(N)

    找循环节水题.注意余数大于0. /* 2802 */ #include <cstdio> #include <cstring> #include <cstdlib> ...

  6. in, out, ref

    C#中的函数传递方式可以为in.out.ref(引用) in方式的是默认的传递方式,即向函数内部传送值,不作讲解 很多语言都有类似的操作从函数向调用者返回值,这样我们可以通过函数的调用返回多个值,因为 ...

  7. openssl生成自签名证书

    1.生成x509格式的CA自签名证书 openssl req -new -x509 -keyout ca.key -out ca.crt 2.生成服务端的私钥(key文件)及申请证书文件csr文件 o ...

  8. js:jquery multiSelect 多选下拉框实例

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. Activity进入与退出的动画

    1.在res建立目录anim放入动画效果xml文件 1.1   进入文件  push_left_in.xml <?xml version="1.0" encoding=&qu ...

  10. Android BaseAdapter ListView (明星简介列表)

    1.搭建布局 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" andro ...