设计模式:模块化命令架构(工作流程?)

时间:2012-01-01 04:01:02

标签: design-patterns architecture workflow speech-recognition

我有一个响应声音命令的应用程序。示例包括:Read HeadlinesStart Visual Srudio。该应用程序通过TTS提供反馈。

我想将应用扩展为模块化。每个模块应该能够:

  • 扩展已知命令列表
  • 打开UI窗口(父App必须知道,以便它可以以标准方式关闭命令)
  • TTS引擎的队列文本 - 可能带有优先级标志
  • 来回支持对话 - Show a map of Bristol可能会引起Bristol USA or England?的回复,然后听取具体的回复。

有人可以提出合适的设计模式吗?

1 个答案:

答案 0 :(得分:2)

如果您想设计口头命令反馈,架构方法很简单并且已经建立。基于事件的源/侦听器方法可以使用插件来订阅事件并响应它们

对于对话系统,设计更复杂。对话管理要求您具有树状知识空间表示,并让管理员跟踪对话进度。建议尝试从CMU读取奥林巴斯系统,以熟悉所使用的概念和决策:

http://wiki.speech.cs.cmu.edu/olympus/index.php/Olympus

Bohus,Dan& Alexander I. Rudnicky(2009),“The RavenClaw对话框管理框架:架构和系统”,Computer Speech&语言

http://www.sciencedirect.com/science/article/B6WCW-4TVJ3KG-1/2/d6bfd64173650f150219cf4a43a51a66

Bohus,Dan& Alexander I. Rudnicky(2003),“RavenClaw:使用分层任务分解和期望议程的对话管理”,Eurospeech 2003

http://research.microsoft.com/~dbohus/docs/ravenclaw.ps

对于具有自学习和语义信息提取的更复杂的设计,您需要前往以SIRI结尾的CALO项目的出版物

https://pal.sri.com/Plone/framework/Components

这一切都很好地解释了这个系统如何响应,学习和反应。