上篇介绍了TTS的一个简单样例http://blog.csdn.net/u010176014/article/details/47326413

本篇咱们进一步聊聊 语音怎样读模板。

比方

公交车上的模板:**到了,开门请当心,下车请走好。

新生入学系统的模板:丹桂飘香共祝美好明天,金秋送爽喜迎八方学子。

**同学你好,欢迎来到**大学。

本文介绍的非常适用于这样的情况,模板比較固定,仅仅有个别处不一样。并且还可依据须要更换配置,轻松换模板。

我做了一个天气预报的Demo。

第一步  加入一个resx文件

属于资源文件由 XML 组成,能够增加不论什么资源。包含二进制。

像字典一样 有Key 和Value。

然后填充内容。

名称就是Key值 ,值写的包括參数。比如“观众朋友晚上好。如今是北京时间晚上[{0}]。以下我们一起来关注城市天气预报。

” 这里面的时间能够依据详细情况赋值。把变的东西拿出来。

第二步 写一个类可以取出资源里的这些文字。

新建一个Resource类 。里面的代码例如以下。

using System.Text;
using System.Reflection;
using System.Resources;
namespace TTSSpeakDemo
{
public sealed class Resource
{
#region Static part
private const string ResourceFileName = ".SpeakTemplt"; static Resource InternalResource = new Resource();
/// <summary>
/// 获取文件资源管理
/// </summary>
public static Resource Manager
{
get { return InternalResource; }
}
#endregion #region Instance part ResourceManager rm = null; /// <summary>
/// Constructor
/// 取得资源文件
/// </summary>
public Resource()
{
rm = new ResourceManager(this.GetType().Namespace + ResourceFileName, Assembly.GetExecutingAssembly());
} /// <summary>
/// 从程序集资源文件里获取指定键的消息
/// </summary>
public string this[string key]
{
get
{
return rm.GetString(key, System.Globalization.CultureInfo.CurrentUICulture);
}
}
#endregion }
}

第三步 画个界面

我做的比較简单。

欢饮大家继续丰富。。

第四步  加入事件

<span style="font-family:KaiTi_GB2312;font-size:18px;">using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Media;
using SpeechLib; namespace TTSSpeakDemo
{
#region 语音读文本Demo-2015-8-9-MDM /// <summary>
/// 语音读文本Demo-2015-8-7-MDM
/// </summary>
public partial class SpeakDemo : Form
{
public SpeakDemo()
{
InitializeComponent();//自己主动生成,不动
}
/// <summary>
/// 发音对象
/// </summary>
public SpVoice voice = new SpVoice();//该类是支持语音合成(TTS)的核心类。通过SpVoice对象调用TTS引擎。从而实现朗读功能。 public SpeechVoiceSpeakFlags spFlags = SpeechVoiceSpeakFlags.SVSFDefault;// /// <summary>
/// 通过keyword获取语音文字资源内容
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
private static string GetTextResourceByKey(string key)
{
return Resource.Manager[key].ToString().Trim();
} private void btnSpeak_Click(object sender, EventArgs e)
{
string beginWord = GetTextResourceByKey("Begin");//依据key值获取到对应的文本
string baoDing=GetTextResourceByKey("BaoDing");//同上 string nowTime = DateTime.Now.ToString("r");//获取时间
string speakWord = string.Format(beginWord, nowTime); //问候语和时间
string weather=txtWeather.Text;
string air=txtAir.Text;
string speakWeather = string.Format(baoDing,weather, air);//将參数放入模板中
voice.Speak(speakWord, spFlags);
voice.Speak(speakWeather, spFlags); } }
#endregion
}
</span>

这样我们就能听到啦~尽管简单 可是非常有用哦~

将Demo传至网盘。供大家直接看看效果。

http://yunpan.cn/cdBHfJzuqZHaC  訪问password 96c9

TTS-零基础入门之语音模板化的更多相关文章

  1. 零基础入门微信小程序开发

    注:本文来源于:<零基础入门微信小程序开发> 课程介绍 本达人课是一个系列入门教程,目标是从 0 开始带领读者上手实战,课程以微信小程序的核心概念作为主线,介绍配置文件.页面样式文件.Ja ...

  2. Linux及Arm-Linux程序开发笔记(零基础入门篇)

    Linux及Arm-Linux程序开发笔记(零基础入门篇)  作者:一点一滴的Beer http://beer.cnblogs.com/ 本文地址:http://www.cnblogs.com/bee ...

  3. 【Linux开发】Linux及Arm-Linux程序开发笔记(零基础入门篇)

    Linux及Arm-Linux程序开发笔记(零基础入门篇) 作者:一点一滴的Beer http://beer.cnblogs.com/ 本文地址:http://www.cnblogs.com/beer ...

  4. .NET零基础入门09:SQL必知必会

    一:前言 仿佛到了更进一步的时候了,每一个程序员迟早都会遇到数据存储的问题.我们拿什么来存储程序产生的数据?举例来说,用什么来存储我们的打老鼠游戏每次的成绩呢?选择如下: 1:内存中.缺点,退出游戏, ...

  5. Siki_Unity_1-3_Unity零基础入门_古迹探险

    1-3 Unity零基础入门 古迹探险 任务1/2:资料下载 链接:https://pan.baidu.com/s/1jHVymNk 密码:rbob 任务3:工程的创建和打开 Project:古迹探险 ...

  6. 零基础入门Python实战:四周实现爬虫网站 Django项目视频教程

    点击了解更多Python课程>>> 零基础入门Python实战:四周实现爬虫网站 Django项目视频教程 适用人群: 即将毕业的大学生,工资低工作重的白领,渴望崭露头角的职场新人, ...

  7. 零基础入门 实战mpvue2.0多端小程序框架

    第1章 课程快速预览(必看!!!)在这一章节中,老师讲带领你快速预览课程整体.其中,涉及到为什么要做这么一门实战课程.制作一个小程序的完整流程是怎么样的,以及如何做项目的技术选型. 第2章 30 分钟 ...

  8. 2020年数据库概念与MySQL的安装与配置-从零基础入门MySQL-mysql8版本

    作者 | Jeskson 来源 | 达达前端小酒馆 从零基础入门MySQL数据库基础课 数据的概念,简介,安装与配置,Windows平台下MySQL的安装与配置. 数据库的概念:数据库是一个用来存放数 ...

  9. Linux从入门到放弃、零基础入门Linux(第三篇):在虚拟机vmware中安装linux(二)超详细手把手教你安装centos6分步图解

    一.继续在vmware中安装centos6.9 本次安装是进行最小化安装,即没有图形化界面的安装,如果是新手,建议安装带图形化界面的centos, 具体参考Linux从入门到放弃.零基础入门Linux ...

随机推荐

  1. StdTranslator - Translate PDMS to STD for STAAD.Pro

    StdTranslator - Translate PDMS to STD for STAAD.Pro eryar@163.com STAAD.Pro是由美国世界著名的工程咨询和CAD软件开发公司—R ...

  2. js--09定时器

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...

  3. js -- fileData 实现文件断点续传

    前端实现文件的断点续传 一.一些知识准备 断点续传,既然有断,那就应该有文件分割的过程,一段一段的传. 以前文件无法分割,但随着HTML5新特性的引入,类似普通字符串.数组的分割,我们可以可以使用sl ...

  4. CSS的导入方式:link与import方式的区别

    在前端开发中,加载CSS样式文件有两种方式:link方式与import方式,它们之间的区别主要有以下几点: 1.兼容性不一样 link是一个HTML标签,所以它不存在兼容性问题,而import方式则具 ...

  5. Atcoder ABC 070 B、C、D

    B - Two Switches Time limit : 2sec / Memory limit : 256MB Score : 200 points Problem Statement Alice ...

  6. chfn---改变finger命令显示的信息

    chfn命令   chfn命令用来改变finger命令显示的信息.这些信息都存放在/etc目录里的passwd文件里.若不指定任何选项,则chfn命令会进入问答式界面. 语法 chfn(选项)(参数) ...

  7. web前端响应式布局,自适应全部分辨率

    写phpd的我. 近期公司要弄个app关键是没有web开发,而我有比較闲,那就扛枪上阵吧. 响应式布局,web端的?php我一直都是用tp框架,对于web首先想到的是bootstrap框架.仅仅是简单 ...

  8. jquery表格简单插件

    1.一直对jquery插件感觉非常神奇.今天动手写了一个超级简单的案例. 2.效果 3.体会 a.jquery插件编写能力. 须要具备一定js能力的编写.还有写css样式的运用:希望以后这方面会有提高 ...

  9. 利用zip格式实现手机客户端二维码扫描分享识别

    场景: 用户A想要将某应用推荐给用户B,用户B扫描用户A的手机app中的二维码进行下载和安装, 并且需要识别用户B是扫描了用户A的二维码,进而给用户A一定的奖励. (例如:健一网app) zip格式: ...

  10. screen-调节屏幕亮度

    今天做项目的时候,需要实现一个功能,就是进入一个应用,在这个应用中,屏幕的亮度变为最亮.关键代码如下 bt1.setOnClickListener(new OnClickListener() { @O ...