1. 基础概念:
RCEngine :
是一个封装了语音识别,语音文件操作,电话控制的类,它派生自 RCEngineInterface 抽象基类。所以要在程序中调用 Nuance 的语音识别功能你就必须实例化 RCEngine 。
NotifiableAdapter :
RCEngine 的所有函数都是异步函数,它使用确认 --- 通知形式与用户程序通信,要获取到这些确认和通知消息你必须建立一个消息处理类,而这个类必须派生自 NotifiableAdapter ,并且在实例化 RCEngine 时把本类指针交给 RCEngine 。
Application object :
通常 Nuance 把一个派生自 NotifiableAdapter 的且与一个 RCEngine 对象对应得实例化对象称为一个 Application object 。一个应用程序可以根据自己有多少个 license 来创建多个 Application object 。在 Nuance 的例子和我写的客户端中 RCAPP 就是一个 Application object 。
Dispatcher object :
他是个事件分发对象,他一直都在不断的作把识别事件分发给各个 RCEngine 的循环,当所有的 RCEngine 都摧毁时他便自动结束事件循环。
Triggerable :
触发器,你若要让 Dispatcher 自动在某触发事件放生时调用你的处理函数,那么你的处理函数实现的类必须要派生于 Triggerable 。所以我的代码中 RCAPP 也派生于这个类。
<?XML:NAMESPACE PREFIX = O />
2. 本客户端组成:
RCAPP : 担当 Application object 和 Triggerable 角色。
AudioSampleFetcher : 一个为 RCEngine 提供识别数据的辅助类。
CRCDispatcher : 担当 Dispatcher object 角色。
3. 本程序中各个类之间的关系:
每个 RCAPP 包含一个