今天搞了下微软的TTS,逛了好多网页、博客,拼拼凑凑搞了点东西吧。

首先添加类库调用,系统自带的system.speech

 using System.Speech.Synthesis;

然后就能调用方法了

 SpeechSynthesizer speech = new SpeechSynthesizer();
speech.Rate = int.Parse(dudRate.Text);//语速
speech.Speak("Hello TTS");
speech.Dispose();

里面有个speech.SelectVoiceByHints()方法。按它的解释可以自己挑选声音,我还以为看到曙光了,一边写一边赞叹微软的强大。等写好运行时才发现没有用,一点变化也没有。当然也不知道它默认的声音是哪来的。然后又看了一边里面的方法,发现有个只读的成员speech.voice,它有好多属性(age、gender、name...)。果断调个name看看,我电脑声音是谁的。结果是 Micrsoft HUihui Desktop。额,有点扯多了。这个名字可以在控制面板里的讲述人和语音识别里找到。我系统是win8的,还有个Micrsoft Zira Desktop,这个只能读英语。huihui都能读,但读英语效果没Zira好,真是难以取舍哇。

这是设置语音的方法。不设置的话就用系统默认的了。

 speech.SelectVoice("Micrsoft HUihui Desktop");

都只有女声,听听就腻了,偶尔也要换换口味嘛。想看看系统还有其他语音么

貌似又感觉到微软强大的曙光了。。果断满怀希望点进去看了,但是但是万万没想到跳出个英文网站,而且根本没有其它语音,网页看上去也有点年纪的样子。然后在微软社区搜了下,说是不能添加讲述人语音的。好吧~~

还是加其它语言库吧,都说NeoSpeech好,捡过来用用。它有好几中类型的

一开始直接装了个Paul,调用

 speech.SelectVoice("VW Paul");
speech。speak("Hello");

运行听听看,果然还是男声很好听。不是我有问题,是系统自带的语音没这个好,之后用女声的感觉更好哦。但是我就写了个hello,为啥他能说这么多,话唠哇。。听了好几次才发现原来是广告,原来我下的是未注册的。我这么正直怎么能用这个呢,于是又到网上荡了,查到汉语大字典网站上有正版的哦。

附上下载链接

还有个保存音频的功能,代码:

 SpeechSynthesizer speech = new SpeechSynthesizer();
SaveFileDialog file = new SaveFileDialog();
file.Title = "保存音频文件";
file.InitialDirectory = ".\\";//对话框的初始目录
file.Filter = "音频文件|*.wav";// 要在对话框中显示的文件筛选器
file.RestoreDirectory = true;//控制对话框在关闭之前是否恢复当前目录
file.FilterIndex = ;//在对话框中选择的文件筛选器的索引,如果选第一项就设为1
file.AddExtension = true;
if (file.ShowDialog() == DialogResult.OK)
{
speech.SetOutputToWaveFile(file.FileName);//这三个方法顺序不能换哦
speech.Speak(richTextBox1.Text);
speech.SetOutputToNull();
}

写得有点乱的感觉

微软TTS,Neospeech TTS 简单使用的更多相关文章

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

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

  2. TypeC一个微软开发的超简单.NET依赖注入/IoC容器

    控制反转(IoC,Inversion of Control)是由Martin Fowler总结出来的一种设计模式,用来减少代码间的耦合.一般而言,控制反转分为依赖注入(Dependency Injec ...

  3. 微软IOC容器Unity简单代码示例3-基于约定的自动注册机制

    @(编程) [TOC] Unity在3.0之后,支持基于约定的自动注册机制Registration By Convention,本文简单介绍如何配置. 1. 通过Nuget下载Unity 版本号如下: ...

  4. 微软 消息队列 MessageQueue 简单使用

    1.在服务电脑上打开 消息队列 ①进入控制面板>程序>启用或关闭windows功能 ②将需要的勾选(我自己全选了哈哈哈) ③我的电脑 右键 打开管理 见到消息队列 在专用队列上新建专用队列 ...

  5. 微软IOC容器Unity简单代码示例2-配置文件方式

    @(编程) 1. 通过Nuget下载Unity 这个就不介绍了 2. 接口代码 namespace UnityDemo { interface ILogIn { void Login(); } } n ...

  6. 微软IOC容器Unity简单代码示例1

    @(编程) 1. 通过Nuget下载Unity 这个就不介绍了 2. 接口代码 namespace UnityDemo { interface ILogIn { void Login(); } } 3 ...

  7. Jasper语音助理

    1. 介绍 Jasper是一款基于树莓派的开源语音控制助理, 使用Python语言开发. Jasper工作原理主要是设备被动监听麦克风, 当收到唤醒关键字时进入主动监听模式, 此时收到语音指令后进行语 ...

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

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

  9. Android 自动朗读(TTS)

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

随机推荐

  1. BZOJ 3926 && ZJOI 2015 诸神眷顾的幻想乡 (广义后缀自动机)

    3926: [Zjoi2015]诸神眷顾的幻想乡 Time Limit: 10 Sec Memory Limit: 512 MB Description 幽香是全幻想乡里最受人欢迎的萌妹子,这天,是幽 ...

  2. win8 Pro 64位在 UEFI模式下Ghost系统 备份 恢复

    一:在win8 安装U 盘中  1. 新建 “Ghost” 文件夹 2. 将下载的Ghost64.exe 文件拷贝到文件夹  二: 启动的时候 按下F12 选择 HDDUSB 1.Windows 安装 ...

  3. C/C++ 中##(两个井号)和#(一个井号)用法

    ##(两个井号)和#(一个井号)都是什么意思 连接符 ##(两个井号) 不知道什么符 #(一个井号) ## 连接符号由两个井号组成,其功能是在带参数的宏定义中将两个子串(token)联接起来,从而形成 ...

  4. Ajax调用asp.net后台代码

    后台代码: [WebMethod] public static string CreateDate(string name,string age) { return "姓名:"+n ...

  5. jQuery中的插件的编写和使用

    1,常用的jQuery插件:表单验证插件formValidator a.目前支持5大验证方式:1.inputValidator(针对input,textarea,select控件的字符长度,值范围,选 ...

  6. windows server 2008 设置多用户同时远程登录

    >Windows server 2008默认只支持一个administrator用户登陆,一个登录后另一个就被踢掉了,有没有办法像Windows Server 2003那样允许多用户用同时同一个 ...

  7. Core Data的使用(二)备

    一.基础概念深入 1.NSManagedObjectContext 被管理数据上下文就像便笺簿 当从数据持久层获取数据时,相当于把这些临时的数据拷贝写在便笺簿上,然后就可以随心所欲的修改这些值. 通过 ...

  8. Powershell 执行外部命令

    Powershell 执行外部命令 724 11月, 2011  在 Powershell  tagged Powershell教程 / 程序 by Mooser Lee本文索引[隐藏]1通过nets ...

  9. fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'

    这个问题很奇怪.原来是/machine:X86 /machine:X64这两个链接器选项一起使用了.所以就冲突了.接手别人的项目就是晕啊.不知道为什么在VS中linker commandline的ad ...

  10. linux awk 使用

    awk是linux下的一个命令,他对其他命令的输出,对文件的处理都十分强大,其实他更像一门编程语言,他可以自定义变量,有条件语句,有循环,有数组,有正则,有函数等.他读取输出,或者文件的方式是一行,一 ...