查看原文
其他

硬核干货,老曹解密“语音交互”背后的黑科技!

曹洪伟 中生代技术 2021-08-09

点击▲关注 “中生代技术”   给公众号标星置顶

更多精彩技术内容 第一时间直达






第 6 期出席《大咖来了》直播栏目的嘉宾是百度 DuerOS 首席布道师曹洪伟,进行了主题为《面向交互的人工智能》的分享。

https://v.qq.com/txp/iframe/player.html?width=500&height=375&auto=0&vid=e3017944j4m

主要讲解了语音交互中用到的 AI 技术,如 ASR、NLU、NLG、TTS 等,以及基于这些细分技术构建的面向对话式的人工智能操作系统——DuerOS。


通过本次分享大家可以基本上掌握如何在智能语音交互平台上开发应用,进一步体会智能语音如何服务我们的生活。

1

语音使人机交互更加便捷


什么是交互?


交互是指 A 和 B 之间的一系列动作和行为,语出《京氏易传·震》:“震分阴阳,交互用事”。


那什么是人机交互呢?


人机交互是一门研究系统与用户之间的互动关系的学问。系统可以是各种各样的机器,也可以是计算机化的系统和软件。


人机交互重点研究用户与计算机之间的接口,既包括人类与计算机的交互方式,也包括设计技术,使人类以新颖的方式与计算机交互。人机交互与人机界面是两个有着紧密联系而又不尽相同的概念。


在计算机时代,人机交互的发展历程如下图所示:

从键盘+鼠标到使用触摸屏,再到语音交互,人机交互在不断地演进,由面向机器的人机交互,演变为面向用户自身的交互。


语音是非常低成本的沟通手段和工具,为我们带来非常大的便利。


语音交互的优势在于:

  • 其一是速度,每分钟可以说 120 到 150 个字。

  • 其二是释放双手,做饭时通过语音可以完成一些期望做的事。

  • 其三是直觉性,语言是人类的天赋,也是人类交际沟通的自然手段。

  • 其四是同理心,语音中包含了语气、音量、语调和语速,这些特征传达了大量的信息。


语音交互离不开人工智能技术,在语音交互中所涉及的人工智能技术如下图所示:

如今,智能语音交互正在为我们服务,背后有一整套完整的技术和流程,从语音唤醒到自动语音识别,再到自然语言理解,最终通过自然语言生成以及语音合成技术形成反馈,整套流程背后又有很多细分的 AI 技术在支持,如对话管理、深度学习,DNN、CNN、NLP、TTS 等。


面对涉及如此之广的 AI 技术, 我们怎样才能应用到工作和生活之中呢?


这和我们有了计算机之后,如何使用计算机是类似的。计算机上的操作系统及其 API 为程序员们打开了计算机世界的大门。


面向智能交互的 AI 系统, 我们同样需要一个类似的操作系统,才能方便而且高效地构建我们的人工智能交互应用。

2

面向语音交互的 DuerOS 操作系统


百度的 DuerOS 是一个面向语音交互的对话式人工智能操作系统,在包含了语音交互的整套流程的同时,还提供开放能力平台,如 SDK、工具、编程接口和设备等,如下图所示:

DuerOS 操作系统有三个层面,分别是智能设备开放平台(应用层)、对话核心系统(核心层)和技能开放平台(能力层)。


下面我们进一步从基于 DuerOS 的智能语音设备、智能语音设备的工作原理、智能语音交互的交互流程和智能语音应用的开发流程等方面了解 DuerOS 操作系统。


了解一个操作系统主要是看有哪些语音设备,基于这些设备才能进行具体的应用开放,DuerOS 的智能语音设备有很多,部分的小度系列产品如下图:

DuerOS 广泛适用于音箱、电视、冰箱、手机、机器人、车载、可穿戴、玩具等多种场景及设备,这些智能语音设备的工作原理是怎样的呢?

相比传统设备,智能语音设备是面向交互的,通过语音、触屏进行输入,利用 TTS、麦克风、信号处理等手段,把本地能力转移到云端,再利用云端 ASR、TTS、NLU、NLG 等具体的 AI 技术实现智能语音,最后把业务引擎、业务资源和技能服务进行融合,这样就可以通过语音完成一系列服务,如下图所示:

技能开放平台包含很多层次,如底层基础能力、BOT-SDK、配置服务、协议开放、平台开放、周边工具等。下面介绍一下智能语音交互应用的交互流程。

这里,我们以询问天气意图为例,当用户发出语音指令后,智能音箱本地做用户唤醒词识别,然后通过音箱把语音流传到 DuerOS 平台,DuerOS 平台进行语音识别、语义理解、发送结构化数据给技能服务器。


技能服务器处理请求,向 DuerOS 平台返回文本或可视化的结果,DuerOS 平台收到后,TTS 服务器处理返回的文本,将播报流发送给智能音箱,如果是有屏音箱的话,也可将可视化结果在设备上进行展示。


那么,我们如何在 DuerOS 开发一个智能语音交互的应用呢?


智能语音交互应用的开发流程一般分为六个步骤,分别是注册、创建技能、建立交互模型、编写代码部署、调试与验证和技能上线商用,如下,为具体步骤图解。


第一步,访问注册。




访问 https://dueros.baidu.com/dbp, 注册成为 DuerOS 的开发者。


第二步,创建技能。




和我们在 Android 或 iOS 上创建应用是类似的。

进入技能控制台,选择“从头开始”创建自定义技能。技能名称是 2~50 个字符,调用名称是 2~15 个字符。


调用名称是技能服务的入口,打开+调用名称。不建议使用生僻词汇、中英文混合及数字与汉字混合。技能创建后会生成一个技能 ID,是技能服务在 DuerOS 系统中的唯一标识。


第三步,建立交互模型。




这可能是智能语音应用与 App,小程序,Web 之类应用的最大的不同点。

用户询问的核心在这里称为意图,建立交互模型就是创建多种用户意图的过程。


意图的标识就相当于具体事件的编号。交互模型的建立实际上是一种面向接口的设计方式,明确的交互的意图就是在一定程度上确定了技能服务的功能。


第四步,编写代码并部署。




DuerOS 提供了高效安全的百度云服务免费使用,开放平台的在线编辑器提供了对 Python 和 Node 的语言支持,编码主要是对交互模型中的意图进行匹配和处理。


在线编辑器中的代码将自动部署在百度云的 CFC,CFC 是百度云 FaaS 无服务架构的具体应用。


当然,技能代码的编写还可以通过 Java,PHP 等其他语言进行编写,也可以部署在自己的服务器或者其他云服务上。


第五步,对技能服务进行测试与验证。




DuerOS 开放平台提供了两种测试方式:模拟器和真机调试。在真机调试时,要保证技能开发账号和设备登录账号一致,对设备说“开启技能调试模式”即开启了“技能调试模式”功能,需要注意的是同一时间仅支持一个技能测试。


第六部,技能应用的上线商用。




类比来看,发布上线与 App 在安卓市场或者苹果商店上的上线发布过程是类似的。


至此,我们可以基于 DuerOS 的开放平台开发符合用户需求的各种智能语音交互应用。


同时, DuerOS 还提供了零编程的智能语音交互应用实现方式。应用的种类丰富多彩,可以为我们的生活带来更多的便利和乐趣!

3

基于智能语音交互服务的一天


从早上通过音箱叫你起床,通过搭载 DuerOS 的车机导航出发上班,用小度助手去安排当日工作,工作中小度助手可以提醒休息,孩子可以用搭载 DuerOS 的设备打电话、看电视和听故事。

随着交互形式的变化,交互技术发展到了今天的智能语音时代,在智能语音服务中可以直接应用到各种人工智能技术,可以不用深入关注具体的 NLU、NLG 等具体 AI 技术,只要使用基于 DuerOS 这样对话式的 AI 开放平台,就可以完成面向语音交互的各种服务。


作者:曹洪伟 公众号:wireless_com

出处:51CTO技术栈 公众号:blog51cto




推荐阅读



人工智能还是人工智障?我tm快崩溃了 2020-08-10
技术总监反思录:我是怎么失去团队掌控力的? 2020-08-09
重温马云英文演讲:最伟大的成功 2020-08-06
阿里P9专家右军:大话软件质量稳定性 2020-08-03




活动推荐


对话机器人,人工智能还是人工智障?

时间:8月12日20:00-21:30

话题介绍:对话机器人(chatbot)作为人工智能皇冠上的明珠,一直备受关注。由于人类对话本身的高度复杂性,目前的对话机器人技术还很难达到人类水平,进行自由的对话。本话题将通过对话机器人在营销和服务场景的落地实践案例,分享如何使用产品和技术手段,分解对话、优化算法、补充知识来提高对话体验,不断去逼近一个有人类水准的对话机器人实现。


分享嘉宾:洪强宁

爱因互动创始人&CTO

  • 清华大学精密仪器系工学学士、硕士。14 年互联网从业经验,商用对话机器人创业

  • 前豆瓣首席架构师,前宜信大数据创新中心首席架构师

  • 资深 Python 开发者,中国 Python 用户组(CPUG)的创立者之一

  • 豆瓣网首名全职员工,负责系统架构,经历了豆瓣从日 PV 十万到数亿的过程,积累了深厚的大规模网站架构经验。曾主导豆瓣内部 PaaS 系统 DAE 和宜信金融容器云 Lain 的建设,有丰富的容器云和微服务架构经验

目前主要关注方向在聊天机器人(chatbot)、云计算、容器技术、微服务、安全


   END     

#接力技术,链接价值#

点分享点点赞点在看

点击阅读原文亦可报名

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存