庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>程序设计>C#语言>多媒体编程>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

用C#实现语音技术

 作者:本站收集   日期:2005-8-8 10:06:40
字号选择〖 〗/ 双击滚屏 单击停止   
   “电脑朗读”(英文)一个很好的触发点,通过它可以实现电子小说阅读、英文听力测试、英文单词学习...

   下面的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

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

上一篇:利用Visual C#处理数字图像    下一篇:DirectDraw之C#入门攻略  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 本站收集
信息来源: 网络 录入时间: 2005-8-8 10:06:40
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿