C# 语音合成
微软MS的文本转语音
1. 引用System.Speech
2. 通过SpeechSynthesizer类朗读文本
new SpeechSynthesizer().SpeakAsync("我们都是好孩子We're good kids.")
3. Speck vs SpeckAsync函数
- PlayAsync--异步播放,可以将需要朗读的文本进行排队。如果不需要,可以按如下取消当前的播放操作。
- Speak--同步播放,会卡UI线程。如果在朗读时,界面没有其它操作,则可以使用此函数
private SpeechSynthesizer speechSyn=new SpeechSynthesizer();
/// <summary>
/// 异步播放
/// </summary>
private void PlayAsync()
{
var currentSpokenPrompt = speechSyn.GetCurrentlySpokenPrompt();
if (currentSpokenPrompt != null)
{
speechSyn.SpeakAsyncCancel(currentSpokenPrompt);
}
speechSyn.SpeakAsync(richTextBox1.Text);
}
/// <summary>
/// 同步播放
/// 注:卡UI
/// </summary>
private void Play()
{
using (SpeechSynthesizer speechSyn = new SpeechSynthesizer())
{
speechSyn.Speak(richTextBox1.Text);
}
}
4. 设置朗读角色
var speechSynthesizer = new SpeechSynthesizer();
var voices= speechSynthesizer.GetInstalledVoices(CultureInfo.CurrentCulture).Select(x => x.VoiceInfo.Name).ToList();
speechSynthesizer.SelectVoice(voices[]);
speechSynthesizer.SpeakAsync("我们都是好孩子We're good kids.");
5. 其它
- Rate -- 语速设置,默认为0
- Volume -- 音量设置
6. 导出音频文件
可以将文本语音合成后,导出成一个wav、mp3等音频文件。
private void ExportAudioFile()
{
using (SpeechSynthesizer speechSyn = new SpeechSynthesizer())
{
speechSyn.Volume = ;
speechSyn.Rate = ; var filePath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + $"\\{richTextBox1.Text}.mp3";
if (File.Exists(filePath))
{
File.Delete(filePath);
} speechSyn.SetOutputToWaveFile(filePath);
speechSyn.Speak(richTextBox1.Text);
speechSyn.SetOutputToDefaultAudioDevice(); MessageBox.Show($"保存录音文件成功,保存路径:{filePath}");
}
}
Demo下载
第三方的语音合成接口
- 百度 http://ai.baidu.com/tech/speech/tts
- Demo效果还可以 BaiduTTSDemo
- 有道 http://ai.youdao.com/product-tts.s?keyfrom=Bsearch-yyhc1
- Demo YouDaoTTSDemo
- 科大讯飞 https://www.xfyun.cn/services/online_tts
- 科大讯飞的语音合成效果很垃圾 XunFeiTTSDemo
如果是英文朗读的话,有道的效果最好。可以下载Demo体验下
C# 语音合成的更多相关文章
- ROS语音交互——科大讯飞语音合成TTS(二)
之前我用过科大讯飞的语音包,为了记录一下我重新使用一下 首先注册科大讯飞账号及应用,以后每个下载的在线使用SDK都是以此账户ID登录讯飞语音服务器. 下载科大讯飞在线合成包. $ unzip Linu ...
- 人工智能交互集成在线语音合成能力的Tips
在线语音合成就是在联网的场景下将文字转换成声音,实现机器向人的声音交互.这个概念应该是比较好理解的,下面就结合官网的Android在线合成的Demo讲解一下合成的流程以及大家经常遇到的一些问题. 到官 ...
- C#中语音合成简单使用
我使用的是vs2013 1.在项目中添加引用,项目->添加引用->COM选择Microsoft Speech Object Library 2.在需要使用语音合成的地方调用代码: SpVo ...
- C#将科大讯飞语音合成文件转换为MULAW音频格式
任务描述:通过科大讯飞语音合成组件在线完成文本转语音的合成,然后再转换为电话系统IVR要求的音频格式: wave mu-law 16位 8kHZ 64kbps. 完成步骤: 首先,我们要先通过科大讯飞 ...
- android用讯飞实现TTS语音合成 实现中文版
Android系统从1.6版本开始就支持TTS(Text-To-Speech),即语音合成.但是android系统默认的TTS引擎:Pic TTS不支持中文.所以我们得安装自己的TTS引擎和语音包. ...
- 谷歌黑科技WaveNet,更先进的语音合成
导读 Google 的 DeepMind 研究实验室昨天公布了其在计算机语音合成领域的最新成果——WaveNet.该语音合成系统能够模仿人类的声音,生成的原始音频质量优于目前的文本转语音系统(text ...
- C# 百度语音合成
语音合成及TTS,我们尝试使用百度的语音合成技术 不过我发现 有一种缺点在于没有离线包让我有些很不舒服,可能是在线版的 原因微软语音识别技术在Windows 2000是默认集成在系统组件中 或许我们不 ...
- 安卓TTS语音合成经验分享(科大讯飞语音+)集成
应用场景:足浴软件,技师钟房安排调派和队列排序查看,语音播报提醒.老程序是使用双屏显卡,windows系统PC上运行一个无人值守桌面程序.如今安卓机顶盒(WIFI)和MINI电视棒通过HDMI接口和支 ...
- csharp: 百度语音合成
public string API_id = "3333"; //你的ID public string API_record = null; public string API_r ...
- UI进阶 科大讯飞(2) 语音合成(文字转换成语音)
科大讯飞开放平台.SDK下载.添加静态库.初始化见UI进阶 科大讯飞(1) 语音听写(语音转换成文字) 实现语音合成 功能实现步骤: 导入头文件 创建文字识别对象 指定文字识别后的回调代理对象 开启文 ...
随机推荐
- css 选择器【转】
最近在研究jQuery的选择器,大家知道jQuery的选择器和css的选择器非常相似,所以整理一下css选择器: css1-css3提供非常丰富的选择器,但是由于某些选择器被各个浏览器支持的情况不一样 ...
- SQL Server 表的管理_关于表的操作增删查改的操作的详解(案例代码)
SQL Server 表的管理_关于表的操作增删查改的操作的详解(案例代码) 概述: 表由行和列组成,每个表都必须有个表名. SQL CREATE TABLE 语法 CREATE TABLE tabl ...
- 命令行备忘录 cli-memo
前言 有时候想用一个简洁点儿的备忘录,发现没有简洁好用的,于是就想着开发一个,秉着简洁 的思想,所以连界面都没有,只能通过命令行来操作(尽可能的将命令简化).设计的时候 借鉴了git分支的思想,每个备 ...
- Pattern recognition and machine learning 疑难处汇总
不断更新ing......... p141 para 1. 当一个x对应的t值不止一个时,Gaussian nosie assumption就不合适了.因为Gaussian 是unimodal的,这意 ...
- FutureTask理解
一.概述 FutureTask包装器是一种非常便利的机制,同时实现了Future和Runnable接口. 类图如下: FutureTask是一种可以取消的异步的计算任务.它的计算是通过Callable ...
- 基于微服务API级权限的技术架构
一般而言,企业内部一套成熟的权限系统,都是基于角色(Role)的 访问控制方法(RBAC – Role Based Access Control),即权限 (Permission)与角色相关联,用户( ...
- JavaScript的数据类型问题总结
一 JS中有哪些数据类型? -- 共 6 种数据类型,其中 5 种基本数据类型Undefined,Null,Boolean,Number和 String,1 种复杂数据类型Object.因为EC ...
- Hbase中HMaster作用
HMaster在功能上主要负责Table表和HRegion的管理工作,具体包括: 1.管理用户对Table表的增.删.改.查操作: 2.管理HRegion服务器的负载均衡,调整HRegion分布: 3 ...
- BZOJ_3289_Mato的文件管理_莫队+树状数组
BZOJ_3289_Mato的文件管理_莫队+树状数组 Description Mato同学从各路神犇以各种方式(你们懂的)收集了许多资料,这些资料一共有n份,每份有一个大小和一个编号 .为了防止他人 ...
- JSON 数据重复 出现$ref
JSONArray 类型 如果我们往里面add数据的时候 如果数据相同,那么就会被替换成 $ref: 也就是被简化了 因为数据一样所直接 指向上一条数据 循环引用:当一个对象包含另一个对象时, ...