跳到内容 跳到主导航 跳到页脚

语音链路简介

当用户对机器说“我想听陈粒的歌”都经历了什么?

语音链路整体流程

  • 整理流程大致分为三个部分:听见声音——理解文本——回答及执行
  • 语音链路的关键步骤:
    • ASR(Automatic Speech Recognition,语音识别)
    • NLP(Natural Language Processing,自然语音处理)
    • TTS(Text-to-Speech,语音合成)

1、ASR(语音识别)

  • 语音处理包括收音和ASR(Automatic Speech Recognition,语音识别)
  • 先通过麦克风阵列收音
  • 再通过语音转文字(ASR/语音识别)转化成文本
  • 语音信息通过ASR转化为文本后,通过NLP(Natural Language Processing,自然语言处理),文本信息被处理为结构化的语义表示

2、NLP(语义理解)

NLP是什么?

  • NLP(Natural Language Processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言,基本包括认知、 理解、生成等部分
  • 简单的说,是让机器理解人的文本或语言,如翻译、语义理解、智能问答,知识图谱等都属于NLP的应用范畴
  • 自然语言理解的结果,就是要获得一个语义表示,最终传输给机器
  • 语义表示主要有三种方式,分布语义、框架语义、模型论语义。我们目前采用的是框架语义的一种变形,我们称为文法,把文本拆解为领域(domain)、意图(intent)和词槽(slot),进行结构化的语义表示
    • 例如,“我想听陈粒的歌”这个句子,需要通过撰写文法规则,把这句话处理为领域(domain)、意图(intent)和词槽(slot),传输给机器。

文法是什么?

  • 简单的说,文法就是组词造句的规则。通过文法规则的撰写,把一句话拆解成领域(domain)、意图(intent)和词槽(slot),再把处理后的信息传输给机器
  • 用户说法(query):用户说法是用户与机器人对话的内容,如“我想听陈粒的歌”“我要看极限挑战”
  • 领域(domain):同一类型的数据或资源,以及围绕数据或资源提供的服务称为一个领域,一般命名为功能名称的英文名词,或其他便于理解的英文表示(命名要求:便于理解且具有唯一性)
    • “我想听陈粒的歌”,这个句子属于音乐,所以它的domain(领域)可以命名为music_1,或music
  • 意图(intent):代表用户对领域数据的操作,如查询、查询某一个属性值、预定、拨打等,一般以英文动词命名(命名要求:便于理解)
    • “我想听陈粒的歌”,这个句子属于音乐领域(domain:music_1),执行的动作是搜索音乐,所以它的意图可以命名为search_music,或search。一个领域可以对应多个意图
  • 语义槽/词槽/槽位(slot):描述意图的数据,也是实现意图所需要的参数,即除了领域、意图之外需要给到机器的关键词(命名要求:便于理解)
    • “我想听陈粒的歌”,这个句子除了需要让机器知道它属于音乐领域(domain:music),要执行的动作是搜索音乐(intent:search_music)之外,还需要让机器知道搜索的要求,即搜索谁的歌,在这个例子中就需要给到词槽(slot:singer陈粒)
  • 其他例子:
querydomainintentslot
播放这么孤独着music_1search_musicsong:这么孤独着
我想听恋爱危险music_1search_musicsong:恋爱危险
我想播放晚安妈妈睡前故事fm_1search_fmalbum:晚安妈妈睡前故事

对话管理

  • 对话管理也是NLP领域的一部分,包括对话状态维护、候选动作排序、对话流调用等
  • 对话状态维护:对话状态跟踪,确保对话系统健壮性的核心组件
  • 候选动作排序:单条语音指令可能命中多个结果,根据不同领域意图之间优先级规则的设定,对多个结果进行排序,选出最符合预期的结果。在没有设定优先级的情况下,结果是随机的
  • 对话流调用:配置文法可以通过单条指令让机器执行任务,但复杂的对话通常涉及多个对话主题。例如,披萨外卖代理可能具有“食品订单”、“客户信息”和“确认”等不同的主题,每个主题都需要多轮对话才能让代理获取最终用户的相关信息。通过配置对话流,可以实现多轮对话,更好的控制对话

示例:多次调节音量的对话流

  • 除了配置多轮对话外,对话流还可以实现其他复杂操作,如调用第三方API获得结果并返回、代码内部配置不同的回答、通过拼接URL调起特殊页面等

结果返回

  • 获得领域(domain)、意图(intent)、词槽(slot),配置对话流(按需)后,NLP Launcher负责把信息分发给对应的场景/功能

NLP Launcher是什么?

  • Launcher(桌面)的本质,是调度App的工具。猎户星空的App同时支持语音和图形界面,因此既能通过触屏调度,又能通过语音调度
  • NLP Launcher是语音交互的分发机制。NLP Launcher通过分发语音指令,来调度不同的功能
  • 每个功能(App)在NLP Launcher下创建场景,通过场景绑定,NLP Launcher在收到语音指令后就能把特定的信息分发给对应的场景/功能

场景绑定是什么?

  • 场景绑定,是把文法、对话流绑定在具体的场景/功能(如视频、有声、天气)里,再把功能绑定到负责分发的NLP Launcher下
  • NLP Launcher根据这些绑定关系,把语音指令的处理结果(领域domain、意图intent、词槽slot、对话流)分发给对应的场景/功能(如视频、有声、天气)

3、TTS(语音播报)

机器人根据NLP返回结果,执行任务,并播报TTS给用户语音反馈。

TTS是什么?

  • TTS(Text-To-Speech,语音合成内容播放)系统是将文字转换为语音,把处理好的文本所对应的单字或短语从语音合成库中提取,把语言学描述转化成言语波形,就像音标转换至语音一样
  • 使用TTS技术,实现机器或应用开口说话,智能客服、有声阅读、新闻播报等,都是TTS的应用范畴
  • 例如,点播陈粒的歌失败时,TTS“没有找到要点播的音乐,换一个试试吧”;点播成功时,TTS“好的,为您找到以下歌曲”

这篇文章是否有帮助?

0