我有一个响应声音命令的应用程序。示例包括:Read Headlines
,Start Visual Srudio
。该应用程序通过TTS提供反馈。
我想将应用扩展为模块化。每个模块应该能够:
Show a map of Bristol
可能会引起Bristol USA or England?
的回复,然后听取具体的回复。有人可以提出合适的设计模式吗?
答案 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
这一切都很好地解释了这个系统如何响应,学习和反应。