首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 操作系统-> Solaris教程
.Net平台下开发中文语音应用程序-.NET教程,VB.Net语言
作者:网友供稿 点击:395
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 
.net平台下开发中文语音应用程序

--------------------------------------------------------------------------------

摘要:
语音是人类最自然的交互方式,也是现阶段软件用户界面发展的最高目标。微软公司一直积极推动语音技术的发展,并且公布了语音开发平台speech sdk帮助开发人员实现语音应用。
随着.net技术深入人心,越来越多的程序员开始转到.net平台上进行开发。然而,在新发布的.net speech sdk里面并没有对中文语音进行支持,目前支持中文的speech sdk最高版本为windows平台下的sapi 5.1(),本文介绍如何在.net平台下利用sapi5.1开发中文语音应用程序。

--------------------------------------------------------------------------------

目录:
1. sapi.51 sdk浅析以及安装
2. 导入com对象到.net
3. 用c#开发中文tts应用程序示例
4. 结论
5. 参考文献

--------------------------------------------------------------------------------

1. sapi.51 sdk浅析以及安装
sapi sdk是微软公司免费提供的语音应用开发工具包,这个sdk中包含了语音应用设计接口(sapi)、微软的连续语音识别引擎(mcsr)以及微软的语音合成(tts)引擎等等。目前的5.1版本一共可以支持3种语言的识别 (英语,汉语和日语)以及2种语言的合成(英语和汉语)。sapi中还包括对于低层控制和高度适应性的直接语音管理、训练向导、事件、语法编译、资源、语音识别(sr)管理以及tts管理等强大的设计接口。其结构如图(1):


图(1)
语音引擎则通过ddi层(设备驱动接口)和sapi(speechapi)进行交互,应用程序通过api层和sapi通信。通过使用这些api,用户可以快速开发在语音识别或语音合成方面应用程序。
sapi5.1 sdk可以从微软网站下载:http://www.microsoft.com/speech/download/sdk51/ 需要安装程序的有speech sdk 5.1(68m)和5.1 language pack (81.5m)。

--------------------------------------------------------------------------------

2. 导入com对象到.net
sapi5.1的基于windows平台的,通过com接口进行调用。在.net平台下要应用sapi5.1,我们可以利用.net framework自带的强大工具tlbimp.exe来把sapi sdk的com对象导入到.net中。tlbimp.exe产生一个管制的包装类,管理客户端可以使用它。包装类管理实际的com对象的参考数。当包装类当作收集的垃圾时,包装类释放掉它包装的com对象。当然,你也可以在vs.net环境中通过从项目参考对话框选择com对象,实现com对象的导入,这个过程也是通过tlbimp.exe来完成的。
下面演示如何导入sapi的com对象:
d:\program files\common files\microsoft shared\speech>tlbimp sapi.dll /out: dotnetspeech.dll

在安转sdk以后,可以在d:\program files\common files\microsoft shared\speech\目录下面找到sapi.dll,这里面定义了sapi的com对象,用tlbimp.exe工具将该dll转换成.net平台下的assembly---dotnetspeech.dll,转换的过程会提示不少的警告(warning),但这部影响我们的开发,可以忽略。最后,我们可以用ildasm查看dotnetspeech.dll里面的对象。

--------------------------------------------------------------------------------

3. 用c#开发中文tts应用程序示例
下面通过一个实例来介绍如何利用c# 进行开发语音应用程序,开发环境为:
操作系统: windows 2000 中文版+ sp3
.net framework: 1.0.3705(英文版)
visual studio.net 7.0.9466(英文版)
首先,新建一个c#的windows application工程speechapp,在开发环境的右边的解决方案管理器(solution explorer)中,添加dotnetspeech对象库。右键点击"reference"(参考),选择"add reference"(添加参考),在弹出的文件选择对话框中找到刚才生成的dotnetspeech.dll。


图(2)
打开form1.cs代码文件,在代码开头添加名字空间(注意大小写)。
using dotnetspeech;
这样就实现了sapi sdk的导入,下面我们就可以开始编写应用代码了。本示例演示如何把文本通过喇叭朗读出来以及把文本转化成语音信号(wave声音文件),程序界面如图(3):


//朗读
private void buttonsynthesis_click(object sender, system.eventargs e)
{
try
{
speechvoicespeakflags spflags = speechvoicespeakflags.svsflagsasync;
spvoice voice = new spvoice();
voice.speak(this.textboxtext.text, spflags);
}
catch(exception er)
{
messagebox.show("an error occured!","speechapp", messageboxbuttons.ok, messageboxicon.error);
}
}
//生成声音文件(wav)
private void buttonttstowave_click(object sender, system.eventargs e)
{
try
{
speechvoicespeakflags spflags = speechvoicespeakflags.svsflagsasync;
spvoice voice = new spvoice();
savefiledialog sfd = new savefiledialog();
sfd.filter = "all files (*.*)|*.*|wav files (*.wav)|*.wav";
sfd.title = "save to a wave file";
sfd.filterindex = 2;
sfd.restoredirectory = true;
if (sfd.showdialog()== dialogresult.ok)
{
speechstreamfilemode spfilemode = speechstreamfilemode.ssfmcreateforwrite;
spfilestream spfilestream = new spfilestream();
spfilestream.open(sfd.filename, spfilemode, false);
voice.audiooutputstream = spfilestream;
voice.speak(txtspeaktext.text, spflags);
voice.waituntildone(timeout.infinite);
spfilestream.close();
}
}
catch(exception er)
{
messagebox.show("an error occured!","speechapp", messageboxbuttons.ok, messageboxicon.error);
}
}

接下来,还要去控制面板配置speech sdk引擎当前所处理语言。打开"控制面板",打开"语音"配置项目,可以看到在这里我们可以指定当前可以对何种语言进行识别或者合成,还可以配置相关的硬件设备以及控制语速。(如图4)


在"文字-语音转换"的"语音选择"组合框中选择简体中文(microsoft simplified chinese)。这样就可以合成汉语文字了。
回到vs.net,f5编译运行刚才的应用程序,在文本框里输入汉字,戴上耳机,点击"朗读"按钮,开始体验新一代的智能人机界面吧,呵呵:)

--------------------------------------------------------------------------------

4. 结论
微软为语音人机界面提供了强大的平台,.net环境更使这种开发方便快捷。赶快去下载sapi5.1 sdk,让你的应用程序"绘声绘色",体现nature ui,let’s go!!!

--------------------------------------------------------------------------------

5. 参考文献
[1] speech sdk自带的说明文档(sapi.chm)
[2] msdn (msdn.microsoft.com)

文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·使用JSP对文件下载的控制-JSP教程,Jsp/Servlet
·[ASP.net(C#)]XML操作类(一)-.NET教程,C#语言
·java网络五子棋的源代码-JSP教程,Java技巧及代码
·用C#给程序加启动画面并只允许一个应用程序实例运行-.NET教程,C#语言
·.Net平台下开发中文语音应用程序-.NET教程,VB.Net语言
·用java取得本机的ip和机器名-JSP教程,Java技巧及代码
·动力设备环境及图像集中监控管理系统若干新问题——王观坤、刘崇海
·Java下XML编程接口比较:DOM SAX JDOM JAXP-.NET教程,XML应用
·使用Java技术在Cocoon中实现商业逻辑-JSP教程,Java技巧及代码
·[SQL]启动SQLServer的死锁检查-数据库专栏,SQL Server
最新文章
·日一万ip网站 gg月入万刀_网赚技巧
·浅谈cpm、cpc、cpa、pfp网站赚钱说明_网赚技巧
·王通:网站赚钱靠服务、产品和投资三种方式_网赚技巧
·网站的首页最应该放什么?_站长心得
·简洁而不简单:google成功十条真理_google推广
·google排名 如何用关键字优化网站_google推广
·用google adsense渠道跟踪你的广告(新手读)_google推广
·全面了解google 网页目录_google推广
·做完网站别忘调试----网站调试全攻略2_站长心得
·网上开店快乐赚钱-发现潜在商机_站长心得
相关主题
  • .NET平台下几种SOCKET模型的简要性能供参考-.NET教程,.NET Framework
  • .NET平台下创建动态Web树形结构程序设计-.NET教程,Asp.Net开发
  • .NET平台上的PHP编译器 the PHP Language Compiler for .NET Framework-PHP教程,其它文章
  • .NET平台下带权限控制的TreeView控件节点生成算法-.NET教程,组件控件开发
  • .Net平台下开发英文语音应用程序-.NET教程,.NET Framework
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭