SDS(Spoken Dialogue System) 对话系统

SDS默认指的是面向任务的对话系统(多轮对话),区别于问答系统(单论对话)。

一个口语对话系统是能够用声音与人进行交谈的计算机系统。它有两个在文本对话系统中不存在的基本组件:语音识别器(a speech recognizer module)和文本到语音( a text-to-speech module)模块(文本对话系统通常使用OS提供的其他输入系统)。它可以进一步区别于命令和控制语音系统,它们可以响应请求但不试图保持随时间的连续性。

组件

  • 自动 语音识别器(ASR:automatic Speech recognizer)将语音解码为文本。可以针对为给定应用程序设计的语言配置特定于域的识别器。“云”识别器适用于不依赖于非常特定的词汇表的域。
  • 自然语言理解(Natural language understanding)将识别转化为可以驱动系统行为的概念结构。一些方法将结合识别和理解处理,但被认为不太灵活,因为解释必须被编码到语法中。
  • 对话管理器控制轮流的行为。一个简单的对话系统可能会询问用户问题,然后根据用户的回答进行操作。这种有向对话系统使用树状结构进行控制;基于框架(或表单)的系统允许一些用户主动性,并适应不同风格的交互。更复杂的对话管理器包含了处理误解和澄清的机制。
  • 域推理器,或者更简单地说是后端,利用知识库来检索信息并帮助制定系统响应。在简单系统中,这可以是使用通过对话收集的信息查询的数据库。域推理器与对话管理器一起维护交互的上下文,并允许系统反映一些人的会话能力(例如使用anaphora)。
  • 响应生成类似于基于文本的自然语言生成,但考虑到语音通信的需要。这可能包括使用更简单的语法结构,管理任何一个输出话语中的信息量,并引入韵律标记以帮助人类参与者更容易地吸收信息。完整的系统设计还将引入词汇夹带的元素,以鼓励人类用户偏好某些说话方式,这反过来可以提高识别性能。
  • 文本到语音合成(TTS)实现了作为语音的预期话语。根据应用,TTS可以基于由语音专业人员产生的预先记录的材料的串联。在更复杂的应用程序中,TTS将使用更灵活的技术来容纳大型词汇表,并允许开发人员控制系统的角色(“个性”)。

各种系统

口语对话系统的复杂程度各不相同。定向对话系统非常简单,并且要求开发人员创建管理任务但可能不符合用户需求的图形(通常是树)。通常基于表单的信息访问系统允许用户具有一定的灵活性(例如,按照指定检索约束的顺序,或者使用可选约束)但是它们的能力受到限制。问题解决对话系统可以允许人类用户参与许多不同的活动,这些活动可以包括信息访问,计划构建和后者的可能执行。

一些系统示例包括:

  • 信息访问:天气,火车时刻表,股票报价,目录服务。
  • 交易:信用卡和银行查询; 购票。
  • 维护:技术支持,包括文档访问和诊断测试。
  • 辅导:用于教育,如物理或数学,以及语言学习。
  • 娱乐和聊天

发展

对话系统中的Pionieers是像AT&T(七十年代的语音识别系统)和CSELT实验室这样的公司,它们在美国DARPA项目结束后领导了八十年代期间的一些欧洲研究项目(例如SUNDIAL)。

参考文献

口语对话系统领域非常庞大,包括研究(在SIGdial和Interspeech等科学会议上发表)和大型工业部门(有自己的会议,如SpeechTek和AVIOS)。

可能有用的相关技术介绍地址推荐

  • Michael F. McTear, Spoken Dialogue Technology
  • open access Gabriel Skantze, Error Handling in Spoken Dialogue Systems, 2007: chapter 2, Spoken dialogue systems.
  • Pirani, Giancarlo, ed. Advanced algorithms and architectures for speech understanding. Vol. 1. Springer Science & Business Media, 2013. ISBN 978-3-540-53402-0

 

关于对话系统实现:

代码和学习:

https://github.com/shawnwun/NNDIAL
https://github.com/MiuLab/DDQ

* The encoder modules contain:
- LSTM encoder      : an LSTM network that encodes the user utterance.
- RNN+CNN tracker   : a set of slot trackers that keep track of each slot/value pair across turns.
- DB operator       : a discrete database accessing component.

* The decoder modules contain:
- Policy network    : a decision-making module that produces the conditional vector for decoding.
- LSTM decoder      : an LSTM network that generates the system response.

构架:

SDS(Spoken Dialogue System) 对话系统_第1张图片

数据的基本格式:
SDS(Spoken Dialogue System) 对话系统_第2张图片
SDS(Spoken Dialogue System) 对话系统_第3张图片
DB:
SDS(Spoken Dialogue System) 对话系统_第4张图片
输入的是:

输出的是:

训练过程:

https://github.com/shawnwun/NNDIAL/blob/master/nn/nnsds.py
有RL的具体训练步骤,可以看到reward是如何定义的。

 

 

 

参考:

https://blog.csdn.net/yagreenhand/article/details/88669645

https://en.wikipedia.org/wiki/Spoken_dialog_systems

 

 

你可能感兴趣的:(SDS(Spoken Dialogue System) 对话系统)