C# ms speech文字转语音例子

最近突发奇想 想玩玩  文字转语音的东东   谷歌了一下 发现微软有一个TTS 的SDK   查了查相关资料  发现 还真不错  然后就开始玩玩Microsoft Speech SDK的 DEMO了

现在网上最新版好像是Microsoft Speech SDK Version 5.1    先下载下来

下载地址是  http://www.52z.com/soft/22068.html

要先安装第一个SDK 然后安装语言包    只有安装了语言包   语言包是用来支持中文翻读的

然后开始我们的C#文字转语音小程序

1、打开VS  新建一个窗体项目

2、添加引用:在COM选项卡里面的Microsoft Speech  object  library引用

并在代码区添加引用

using SpeechLib;  
using System.Threading;//这个引用是用来保存语音文件用的线程类

3、添加一个文本框 两个按钮

4、在一个按钮下输入如下代码

SpeechVoiceSpeakFlags flag = SpeechVoiceSpeakFlags.SVSFlagsAsync;
            SpVoice voice = new SpVoice();
            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();

其实这段代码跟前一个代码差不多 只不过是通过流把声音保存为语音文件而已

简单吧   现在就可以好好玩玩你的这个DEMO了    你还可以添加很多功能的 可以做成SDK里面的几个例子一样的程序  !

本文DEMO下载地址http://www.ubosm.com/Soft/ShowSoft.asp?SoftID=35

System.Speech 命名空间包含支持语音识别的类型,你可以从Visual Studio很方便的添加相关组件的引用。

System.Speech相关介绍:https://msdn.microsoft.com/zh-cn/library/gg145021(v=vs.110).aspx

System.Speech.Synthesis 命名空间包含用于初始化和配置语音合成引擎,用于创建提示,用于生成语音,用于响应事件,以及修改语音特征的类。下面通过SpeechSynthesizer类来朗读一段文本。

    string textToSpeak="你好,HelloWorld!";
    SpeechSynthesizer synthes=new SpeechSynthesizer();
    synthes.Speak(textToSpeak);//同步
    synthes.SpeakAsync(textToSpeak);//异步

System.Speech.Synthesis相关介绍:https://msdn.microsoft.com/zh-cn/library/system.speech.synthesis(v=vs.110).aspx

对于语音的控制音量大小、音色,将语音转成文本、已将相关事件,都可以从System.Speech.Synthesis命名空间下找到相关的类型进行处理。

TTS入门DEMO:
https://code.msdn.microsoft.com/windowsdesktop/Text-to-Speech-Converter-0ed77dd5
http://www.wpf-tutorial.com/audio-video/speech-synthesis-making-wpf-talk/

如果使用的系统没有微软的语音包,或者不支持中文语音,可以从官网下载更新,Microsoft Speech SDK 5.1下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=10121

(题外话)一些常用的文本转语音平台:
https://developer.baidu.com/vcast
http://tools.bugscaner.com/tts/

原文地址:https://www.cnblogs.com/duwamish/p/9705441.html

时间: 2024-09-28 20:08:16

C# ms speech文字转语音例子的相关文章

DelphiXE7调用GOOGLE的TTS(文字转语音)

注意:在手机上必须选安装文字转语音引擎“google Text To Speech”地址:http://www.shouji56.com/soft/GoogleWenZiZhuanYuYinYinQingGoogleTexttoSpeech_3864/ 1. 新建一个单元Androidapi.JNI.TTS 1 {*******************************************************} 2 { } 3 { CodeGear Delphi Runtime L

简单C#文字转语音

跟着微软走妥妥的,C#文字转语音有很多参数我就不说了,毕竟我也是初学者.跟大家分享最简单的方法,要好的效果得自己琢磨喽: 先添加引用System.Speech程序集: using System; using System.Speech.Synthesis; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { SpeechSynthesizer hello = new SpeechSyn

C# 语音识别(文字to语音、语音to文字)

C# 语音识别(文字to语音.语音to文字) 最近打算研究一下语音识别,但是发现网上很少有C#的完整代码,就把自己的学习心得放上来,和大家分享一下. 下载API: 1)SpeechSDK51.exe                   (67.0 MB) 2)SpeechSDK51LangPack.exe     (81.0 MB) API可以不下载,但是如果你的VS是英文版,但是想使用中文的语音,那你就需要下载API,按顺序安装好. (PS:我的VS是英文的,不能说中文,为了这个我纠结了一上午

Android TTS文字转语音开发

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">之前在做TTS开发的时候能够正常的将文字转为语音,但是今天做了一个小程序,结果却发不了音,仔细测试了一下,发现了一个问题.</span> 首先先讲下TTS如何实现. 1.安装语音库,假如要中文发音,科大讯飞语音3.0就很好. 2.最简单的程序如下: package com.e

ios原生文字转语音

因新项目需求,需要接入类似支付宝收款提示声----"支付宝到账xxxx元",就查看了一些文章,苹果还是想的很周全,废话不多说. 首先 在General  -> Linked Frameworks and Libraries 中导入 AVFoundation框架 其次 头文件包含 #import <AVFoundation/AVSpeechSynthesis.h> AVSpeechSynthesizerDelegate 实现文字转语音需要代理方法 用来控制声音,由于我的

文字转语音,语音合成,文字语音播报---解决过程

做了很久生产项目 经常遇到一个问题:就是想把文字用语音播报出来:当然了声音要清晰,好听,不能太机械.  这个问题怎么解决呢?一般不外乎两种方法,第一种,将文字录成MP3格式用控件播放.另外一种:直接文字语音播报. 我一直都是用第一种方法居多,但是最近遇到个棘手的事情,就是数量巨大和文字变动较大.因此深入研究了下,记录下过程. 第一种方法:就是费时费力但是好处是人工转换了删选了效果比较好.但是两大或者文字变动 是个大隐患. 第二种方法:用微软自带的tts引擎,效果不好.播放不清晰,好处是com组件

Android文字转语音

虽然视觉上的反馈通常是给用户提供信息最快的方式,但这要求用户把注意力设备上.当用户不能查看设备时,则需要一些其他通信的方法.Android提供了强大的文字转语音Text-to-Speech,TTS API.使开发者能够在应用中添加语音通知和其他语音反馈功能,而不要求用户看着屏幕. 下面的代码展示了如何使用TTS API: public class TextToSpeechDemo implements TextToSpeech.OnInitListener { private final Tex

Kinect 2.0&Speech 11 中文语音控制

Kinect 2.0&Speech 11 中文语音控制相关代码 ? 下载 Speech 11 中文语言包 Microsoft Speech Platform - Runtime Languages (Version 11) ? 查找中文语言的RecognizerInfo private static RecognizerInfo TryGetKinectRecognizer() ????????{ ????????????IEnumerable<RecognizerInfo> reco

python 文字转语音包pyttsx安装出错解决方法

pyttsx的python的文字转语音的包,但是pyttsx的官方网站上资源只更新2012年,所以在py3中使用pip install pyttsx或者下载安装包进行安装时,虽然可以安装成功,但是import时候会出问题. 会显示导入出错. 解决方法: