热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

揭秘“语音交互”背后的AI硬核黑科技!

授权转载于51CTO技术栈(ID:blog51cto)第6期出席《大咖来了》直播栏目的嘉宾是百度DuerOS布道师曹洪伟,进

授权转51CTO技术栈(ID:blog51cto)

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

主要讲解了语音交互中用到的 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 开放平台,就可以完成面向语音交互的多种服务。


推荐阅读
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • 本文介绍了腾讯最近开源的BERT推理模型TurboTransformers,该模型在推理速度上比PyTorch快1~4倍。TurboTransformers采用了分层设计的思想,通过简化问题和加速开发,实现了快速推理能力。同时,文章还探讨了PyTorch在中间层延迟和深度神经网络中存在的问题,并提出了合并计算的解决方案。 ... [详细]
  • 本文介绍了在Python张量流中使用make_merged_spec()方法合并设备规格对象的方法和语法,以及参数和返回值的说明,并提供了一个示例代码。 ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • 本文介绍了Android平台各个版本的API级别、版本号以及平台亮点,从Android 1.0到Android 10.0,共涵盖了多个版本的特点和发展历程。详细内容请参考https://developer.android.google.cn/guide/topics/manifest/uses-sdk-element.html。 ... [详细]
  • 在工作了一年多后,我对现在的工作感到厌倦,没有激情,于是决定转行做程序猿。我在学校开了一个某宝店,通过自己摸索和努力,每个月挣够了零花钱和伙食费。我决定往互联网方向靠,不喜欢面对面和人沟通,而虚拟世界中的开发工作让我感到兴奋。我开始学习Java,感到困惑和怀疑自己的智商,但一篇鸡汤文激发了我学习Python的兴趣,我感到智商找回来了。我相信没有梦想的人和咸鱼没有什么区别。 ... [详细]
  • Python15行代码实现免费发送手机短信,推送消息「建议收藏」
    Python15行代码实现免费发 ... [详细]
author-avatar
那些触动你的回忆
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有