microsoft speech sdk概述

microsoft speech sdk概述

ID:18809577

大小:304.00 KB

页数:50页

时间:2018-09-25

microsoft speech sdk概述_第1页
microsoft speech sdk概述_第2页
microsoft speech sdk概述_第3页
microsoft speech sdk概述_第4页
microsoft speech sdk概述_第5页
资源描述:

《microsoft speech sdk概述》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、MicrosoftSpeechSDK提供关于语音(Speech)处理的一套应用程序编程接口SAPI(SpeechApplicationProgrammingInterface)。SAPI提供了实现文字-语音转换(Text-to-Speech)和语音识别(SpeechRecognition)程序的基本函数,大大简化了语音编程的难度,降低了语音编程的工作量。SpeechSDK可以免费从如下网址下载:http://www.microsoft.com/speech。由于SpeechSDK是以COM接口的方式提供服务的,所以首先介绍COM的有关基础知识。11.1.1COM基础SpeechS

2、DK提供了完善的COM接口,所以具备一定的COM编程基础对进行SpeechSDK编程来说是非常必要的。笔者将简要介绍COM编程的基础知识。虽然这些知识对阅读本书来说是足够了,但是如果你没有进行过任何的COM编程实践,笔者还是建议你先阅读一本COM的教科书。1.什么是COM组件对象模型(ComponentObjectModel,COM)对象是符合COM规范的可重用的软件组件。符合COM规范的COM对象相互之间可以很好地工作,并且可以很容易地集成到应用程序中。从应用的观点来看,一个COM对象就是一个黑箱,应用程序可以使用它来创建一项或多项任务。COM对象常常用动态链接库(Dynami

3、cLinkLibraries,DLLs)的形式来实现。与传统的DLL一样,COM对象暴露其方法,应用程序能调用这些方法来实现对象所支持的功能。应用程序与COM对象的关系就像应用程序与C++对象的关系,但其中也存在一些区别。1)COM对象执行严格的封装。你不能简单地创建一个对象就调用其中的公用方法。COM对象的公用方法聚合为一个或多个接口。为了使用一个方法,必须先创建一个对象,并从对象中获得相应的接口。一个接口一般包含一组方法,通过它们能使用对象的特定功能。不能通过接口来调用不属于该接口的方法。2)创建COM对象的方法与创建C++对象的方法不同。有多种方法可以创建COM对象,但所有

4、的方法都需要使用COM的细节技术。SpeechSDK应用程序编程接口(API)包括许多的帮助函数和方法,它们简化了创建大部分Speech对象的工作。3)必须使用COM的细节技术来控制对象的生命期。4)COM对象不需要明确地装载。COM对象一般包含在DLL中。然而,与使用普通DLL中的方法不同,使用COM对象时,不需要明确地装载DLL或链接静态库。每一个COM对象都具有一个惟一的注册标识。用该标识来创建对象时,COM将自动地装载正确的DLL。5)COM是一种二进制规范。COM对象可用许多种编程语言来编写和调用。对于使用者来说,并不需要了解对象的源程序的任何信息。比如,Microso

5、ftVisualBasic编写的应用程序可以很好地调用C++编写的COM对象。下面先介绍COM的几个基本概念,包括对象与接口、GUID、HRESULT类型和指针地址等。(1)对象与接口理解对象与接口的区别是非常重要的。通常用其主要接口的名称来称呼对象。但是,严格地说,这两个术语是不能互换使用的。一个对象能暴露任何数量的接口。例如,所有的对象都必须暴露IUnknown接口,它们一般还暴露至少一个其他的接口,它们也可能暴露更多的接口。为了使用一个特定的方法,首先必须获得正确的接口指针。多个不同的接口可以暴露同一个接口。一个接口就是一组执行特定操作的方法。接口定义只是指定了方法的调用语

6、法和它们的一般功能。任何需要支持一组特定操作的COM对象都可通过暴露一个合适的接口来实现这些特定的操作。有些接口非常专业,仅仅由单一的对象来暴露。有些接口在许多场合下都非常有用,它们可由许多的对象来暴露。最极端的例子是IUnknown接口,所有的COM对象都需要暴露它。如果一个对象暴露一个接口,它必须支持接口定义的每一个方法。但是,不同的对象实现一个特定方法的方式是不同的。不同的对象可能使用不同的算法来实现最后的结果。有时一个对象暴露一组通用的方法,但往往只需要支持其中的一部分方法。可是其他的未被支持的方法也需要能被成功调用,只是它们都只返回E_NOTIMPL。COM标准要求接口

7、一旦发布,其定义就不能再改变。例如,不能在一个已有的接口中增加一个新的方法,而必须创建一个新的接口。如果没有限制接口中必须有什么样的方法,通常的做法是在其下一代接口中包括原有接口的所有方法和其他的新方法。但是一个接口有几代版本的情况并不常见。通常所有的版本实现完全相同的功能,只是在具体实现细节上不同。一个对象经常暴露所有版本的接口。这样做使较老版本的应用程序能继续使用对象的较老版本的接口,而较新版本的应用程序能使用较新版本接口的强大功能。一般来说,同一家族的接口具有相同的名称,在

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。