用C#实现语音技术

“电脑朗读”(英文)一个很好的触发点,通过它可以实现电子小说阅读、英文听力测试、英文单词学习...

下面的Speech已对MSTTS作了简单封装。

1.安装好MSTTS(如果你有装金山词霸,系统就已经安装了),可以在winnt\speech中打到vtxtauto.tlb文件;

2.用.Net SDK自带的tlbimp工具把vtxtauto.tlb转换成.dll格式:

tlbimp vtxtauto.tlb /silent /namespace:mstts /out:mstts.dll

这时的mstts.dll已成为.net framework运行库的一个类。

3.编写一个封装vtxtauto的简单类:Speech .

//========================Speech.cs======================
using System;
using mstts; //MSTTS名称空间
namespace Bedlang{ //定义名称空间
public class Speech{
private VTxtAuto VTxtAutoEx;
public Speech(){
VTxtAutoEx = new VTxtAuto();
VTxtAutoEx.Register(" "," "); //注册COM组件
}
public void Speak(String text){
VTxtAutoEx.Speak(text, 0); //发音
}
}
}
//========================Speech.cs======================

4.编译Bedlang.Speech

csc /target:library /out:Bedlang.dll speech.cs /r:mstts.dll

如果用vs.net开发,可直接生成项目就可以了。

5.发音实现

//========================demo.cs======================
分别加入Label,TextBox,Button控件各一个到windows Form中,修改它们的属性,源代码如下:
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace Bedlang
{
///
/// Form1 的摘要说明。
///
public class demo : System.Windows.Forms.Form
{
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.Button button1;
///
/// 必需的设计器变量。
///
private System.ComponentModel.Container components = null;
public demo()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}
///
/// 清理所有正在使用的资源。
///
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
///
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
///
private void InitializeComponent()
{
this.label1 = new System.Windows.Forms.Label();
this.textBox1 = new System.Windows.Forms.TextBox();
this.button1 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// label1
//
this.label1.Location = new System.Drawing.Point(24, 16);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(120, 23);
this.label1.TabIndex = 0;
this.label1.Text = "输入要朗读的文字:";
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(24, 48);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(248, 21);
this.textBox1.TabIndex = 1;
this.textBox1.Text = "";
//
// button1
//
this.button1.Location = new System.Drawing.Point(112, 112);
this.button1.Name = "button1";
this.button1.TabIndex = 2;
this.button1.Text = "朗读";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// demo
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(292, 197);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.button1,
this.textBox1,
this.label1});
this.Name = "demo";
this.Text = "demo";
this.ResumeLayout(false);
}
#endregion
///
/// 应用程序的主入口点。
///
[STAThread]
static void Main()
{
Application.Run(new demo());
}
private void button1_Click(object sender, System.EventArgs e)
{
Speech s=new Speech(); //创建一个Speech对象
if(textBox1.Text.Length==0)
s.Speak("Please input letter."); //发音
else
s.Speak(textBox1.Text);
}
}
}
//========================demo.cs======================

6.编译demo.cs

csc demo.cs /r:bedlang.dll

Vs.net环境下可直接编译成exe文件。

7.运行demo.exe

输入要要朗读的文字,程序就可朗读了啦.

时间: 2024-12-03 23:15:06

用C#实现语音技术的相关文章

浅谈网络语音技术

当我们使用像Skype.QQ这样的工具和朋友流畅地进行语音视频聊天时,我们可曾想过其背后有哪些强大的技术在支撑?本文将对网络语音通话所使用到的技术做一些简单的介绍,算是管中窥豹吧. 一.概念模型       网络语音通话通常是双向的,就模型层面来说,这个双向是对称的.为了简单起见,我们讨论一个方向的通道就可以了.一方说话,另一方则听到声音.看似简单而迅捷,但是其背后的流程却是相当复杂的.我们将其经过的各个主要环节简化成下图所示的概念模型:             这是一个最基础的模型,由五个重要

从AWE看智能家居:语音技术公司或成未来最大赢家

为期三天的AWE 2017中国家电及消费电子博览会已经在上海新国际博览中心落下了帷幕,在本次展会上,除了国内外的传统家电巨头以及一些创新创业公司带着他们的家电产品参展之外,最引人注目的莫过于在E2馆展示区了. E2馆是本次AWE2017特别新增的科技公园及智能家居馆,展馆面积近6000平方米,与其他家电场馆不同的是,'科技公园'里面展出的都是近些时间才流行起来的更加智慧化的产品,更加偏重'人工智能'的概念.其中展出内容包括智慧出行.VR/AR.智慧家居.智能健康等等新概念产品. 而跟之前包括CE

语音技术正在改变计算行业

英国科幻小说家 Arthur C. Clarke 曾经说过,任何足够高级的技术都近乎魔术.迅速崛起的语音计算技术证明了他的观点.使用该技术如同下咒语一样:只需要对着空气说几句话,附近的设备就可以满足愿望. 亚马逊Echo是一台语音圆柱形计算机,我们可以将它放在桌面上,呼叫"Alexa"就可以唤醒,它可以播放音乐,讲笑话,回答旅行问题,控制智能家电:就在圣诞之前,4%的美国家庭已经拥有Echo. 在智能手机市场,语音助手迅速发展.每周苹果Siri处理200亿个命令,在美国来自Androi

iOS自带文本转语音技术(TTS)的实现即语音播报的实践_IOS

文本转语音技术, 也叫TTS, 是Text To Speech的缩写. iOS如果想做有声书等功能的时候, 会用到这门技术. 一,使用iOS自带TTS需要注意的几点: 1.iOS7之后才有该功能 2.需要 AVFoundation 库 3.AVSpeechSynthesizer: 语音合成器, 可以假想成一个可以说话的人, 是最主要的接口 4.AVSpeechSynthesisVoice: 可以假想成人的声音 5.AVSpeechUtterance: 可以假想成要说的一段话 二,代码示例, 播放

微软收购语音技术公司Tellme

      Tellme网络是一家以网络语音技术为基础的公司,在与微软的会谈中,两公司决定在本周内尽快达成协议.      Tellme提供的服务,是使用语音识别和因特网技术,在电话上回复询问者的要求.此次会谈使得微软把基于网络的语音技术归类为自己的产品. Tellme的网络语音技术的试用,促进了微软和一些公司(像FedEx 联邦快递和 AT&T美国电话电报公司)的合作,他们使用Tellme的技术为他们自己的顾客提供基于语音电话的服务.

科大讯飞语音技术应用于阿里盒子

⊙记者 黄璐科大讯飞近日证实,阿里巴巴[微博]电视盒子采用了公司的语音技术.公司表示,语音技术在可穿戴设备中应用广泛,正积极关注穿戴设备的发展.近期与阿里巴巴合作的上市公司受到市场关注.科大讯飞是我国最大的智能语音技术和解决方案提供商之一,其语音技术被应用于阿里巴巴电视盒子,以及进军可穿戴设备,有望提升公司的发展潜力.

巨人网络《征途》采用杜比核擎3D语音技术

挖贝网9月18日消息 巨人网络今天宣布了大型多人在线角色扮演的旗舰游戏(MMORPG)<征途>将采用杜比实验室(纽交所交易代码:DLB)的杜比核擎(Dolby® Axon)3D语音技术.<征途>将整合杜比核擎3D语音技术以帮助玩家识别战友与 敌人的位置,还有变声功能可以让玩家在游戏中随心所欲地变声,在玩游戏的过程中更好地彰显自己的个性. "真正很棒的游戏都有一个特点,就是能够使玩家充分地沉浸在虚幻世界中,"杜比实验室的全球市场高级副总裁Robin Selden说

思必驰为移动互联提供语音技术解决方案

赵永新 王润国今天,运用语音技术的 各类智能语音助手( 智能语音机器人)已成为智能手机.智能电视等终端设备的"标配".但其目前更多地还是被当做娱乐工具,用于"实战"时经常遭遇"卡壳"的窘境."目前市场上的语音助手更多的是单轮次交互,难以有效帮助用户完成任务."位于苏州工业园区的国家高新企业--思必驰(AISPEECH)信息科技有限公司首席执行官高始兴道出了其中的原因:受手机屏幕的 局限性影响,一步步的语音驱动非常"费

亚马逊宣布已收购语音技术公司Ivona 或为推手机准备

亚马逊收购Ivona展示了该零售巨头在智能手机领域的野心?http://www.aliyun.com/zixun/aggregation/6149.html">TechWeb配图 [TechWeb报道]1月25日消息,据国外媒体报道,亚马逊周四宣布,公司已经同语音技术公司Ivona达成收购协议.收购案的具体信息并未对外透露. 亚马逊同Ivona公司的收购协议虽然刚刚达成,但是两家公司的合作早就开始了.亚马逊8.9英寸Kindle Fire HD上的"文本转语音".&qu

百度语音技术开放加速 二期SDK让手机真正听懂用户

中介交易 SEO诊断 淘宝客 云主机 技术大厅 近日,百度公司面向开发者发布语音二期SDK,不仅增加了语义理解功能,让系统能真正的听懂用户的需求,还提供了更加灵活强大的API接口,帮助开发者更好的完成语音服务接入.此前,百度正式开放语音识别技术,提供包括跨平台的SDK.服务控制台等语音识别的底层技术系统供开发者使用. 业内人士分析:"语音交互技术是需要一个长期积累的专业技术领域,对于开发者来说,有着难以逾越的技术门槛,百度语音识别技术的开放解决了开发者的困难."通过与百度语音合作,直接