博客园  :: 首页  :: 联系 :: 订阅 订阅  :: 管理

DotNet语音技术实现

Posted on 2007-02-13 23:47  ╁蓝驿┲→  阅读(447)  评论(0编辑  收藏  举报
DotNet语音技术实现
语音实现

电脑发音”(英文)一个很好的触发点,通过它可以实现电子小说阅读、英文听力测试、英文单词学习...
下面的Speech已对MSTTS作了简单封装。

1.安装好MSTTS,可以在windows\speech中打到vtxtauto.lib文件

MsTTS5.1语音引擎,是微软公司开发,用于生成合成语音的组件,本软件基于此语音引擎开发,需要在此引擎正常工作的情况下,才能正常发音。Windows98未预装此组件,Windows2000/XP家庭版/XP专业版只预装了5.1男声发音,WindowsXP的多媒体版本已经预装了完整的5.1语音引擎,无需另外安装。请根据你的实际情况,下载相应的语音引擎。

检查语音引擎是否正常的方法:
我的电脑 -》控制面板, 里面有一个“语音”的图标,打开后,选择 "文字-语音转换", 选择不同的语音(男声或女声),点击“预听语音”,即可测试语音引擎是否工作正常.

Windows98 / Windows2000 请下载这个:
http://down.xcjc.net/MsTTS51.msi (大小: 6MB)

如果上面的不能安装,请下载这个:
http://down.xcjc.net/MsTTS51.exe (大小: 6MB)
Windows XP (SP1) 请下载这个:
http://down.xcjc.net/MsTTS51XP.msi (大小: 4MB)

Windows XP (SP2) 或 Windows 2003 请下载这个:
微软网站下载 MsTTS5.1 语音引擎完整安装版 (大小: 70MB)

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

5.发音实现
//========================demo.cs======================
using System;
using System.Windows.Forms;
using Bedlang; //引用名称空间

public class demo : Form {

public static void Main() {
Application.Run( new demo() );
}

public demo(){
Speech s = new Speech(); //创建一个Speech对象
s.Speak("Bedlang"); //发音
}

}
//========================demo.cs======================

6.编译demo.cs
csc demo.cs /r:bedlang.dll

7.运行demo.exe
程序发音啦.