写点什么

面向智能设备的语音交互编程语言:VSL 的架构与应用场景

  • 2019-05-24
  • 本文字数:1601 字

    阅读完需:约 5 分钟

面向智能设备的语音交互编程语言:VSL的架构与应用场景

随着智能科技的快速发展,各种各样的智能设备把越来越多的便利与创新功能融入到我们的生活中。大家对于智能设备的交互行为也不再仅仅满足于鼠标和触控操作,“解放双手”的语音交互逐渐成为了大家期望的新交互形式。


如何才能低成本的让语音传达到业务场景中,并实现视图内的交互呢?百度搜索前端团队探索开发出了一套语音交互编程语言——VSL。到底什么是 VSL?它是如何架构设计的?哪些应用场景更适合使用 VSL?我们在 InfoQ 主办的QCon 2019 全球软件开发大会现场采访到了百度前端工程师陈奇。

面向智能设备的编程语言 VSL 到底是什么?

VSL 全称为 Voice Specific Language,是一种为了解决语音交互视图问题而诞生的领域特定语言,通过提供一套接入规范和基础框架,封装语音交互核心功能,使得各场景能快速低成本接入语音交互功能。


目前语音交互主要有两种形式,一种是对话式交互,另一种是视图操作式交互。前文我们介绍到,VSL 是一种领域特定编程语言,这里的“领域”指的就是视图操作式语音交互。


视图操作式语音交互最常见的应用场景就是手机,虽然大多数人使用手机时习惯于触控操作,但是面对一些比较复杂的场景,例如复杂表单的输入和操作,语音可以发挥快速输入、快速选择和多控件组合输入的优势,达到快速操作的目的。除了手机,车载和智能家用设备可能是视图操作式语音交互更契合的场景,这两个场景能够最大幅度发挥语音的优势——解放双手。在车载场景下,由于双手需要放在方向盘上,所以使用语音与智能设备交互是一种更安全的方式;而在家用场景下,语音具有天然优势,在家里用户不仅无需克服语言表达的胆怯心理,同时也不用担心隐私泄露。另外,语音交互还有很多其它使用场景,例如无障碍场景,有些残障人士可能无法使用双手或者外设顺利的进行视图交互,而语音恰好可以解决这样的问题。



VSL 是如何架构设计的呢?陈奇表示,“我们把 VSL 设计成了两个模块,一个是核心模块,一个是扩展模块。核心模块主要是用来实现视图内语音交互的场景,包括 DSL Parser、Actions、Action Manager 等。而扩展模块主要体现了 VSL 的进化过程,包括 App 端能力、DuerOS 端能力等。扩展模块的出现使得 VSL 成为了一个在交互场景中适配性相对较强的产品框架。”

VSL 的具体应用场景

2017 年 5 月,陈奇所在的团队接到了一个用视图控制音频的需求。刚开始他们采用了 JavaScript 的方式去实现,结果发现这种实现方式不仅开发和维护成本高、可复用性差,而且多场景下交互效果不一致,没有形成规范。2018 年 1 月,经过长时间的踩坑,陈奇及团队成员开始考虑一个全新的解决方案。2018 年 4 月,VSL 作为一种解决方案开始应用于手机上的某些场景,例如快递查询、飞机票查询等。


据陈奇介绍,目前 VSL 主要是在百度内部应用,应用场景主要有三大类,第一是百度搜索结果,例如快递查询、机票查询、房贷计算器等;第二是百度产品,例如百度作业模式等;第三是搭载 DuerOS 的智能设备,例如在小度智能音箱中语音视图交互场景,覆盖率达 90%。


接下来,我们以机票查询为例详细讲讲 VSL 是如何应用的?



从上图中我们可以看到,整个机票查询的界面有 5 个控件,分别是单程 Or 往返、出发城市、到达城市、出发日期和立即查询。如果使用最原始的方式给这些控件来编写程序的话,那么代码量得有数百行。而采用 VSL 之后,我们只需要对控件进行数据声明,代码量出现了明显减少,大概只有十几行。


在机票查询场景下,我们主要要做的工作就是对用户话术进行管理。用户在话术表达之后发送到后端服务器,在意图服务返回需求信息之前,需要主动对视图中的控件进行填充,例如该控件是 Input 还是 Click。


在谈到 VSL 未来发展时,陈奇表示,“VSL 现在的主战场还是在百度,但是未来我们有计划将 VSL 开放出去,为更多场景提供语音交互支持。”

采访嘉宾介绍:

陈奇,毕业于西安电子科技大学,现任百度前端高级工程师,主要负责百度搜索输出 DuerOS 智能设备以及语音交互编程语言 VSL。


2019-05-24 14:526627
用户头像

发布了 497 篇内容, 共 337.1 次阅读, 收获喜欢 1927 次。

关注

评论

发布
暂无评论
发现更多内容

『内存中的操作系统』虚拟化是什么

soolaugust

操作系统 内存

在Rainbond上使用Locust进行压力测试

北京好雨科技有限公司

架构实战营:模块五作业

Geek_93ffb0

「架构实战营」

创新推出 | Serverless 场景排查问题利器:函数实例命令行操作

阿里巴巴云原生

阿里云 Serverless 云原生 函数计算

软件架构治理 之 架构优化方向

码猿外

架构设计 技术债 软件架构治理

如何快速调度 PTS 的百万并发能力

阿里巴巴云原生

阿里云 云原生 Jmeter 压测 PTS

网关流控利器:结合 AHAS 实现 Ingress/Nginx 流量控制

阿里巴巴云原生

nginx 阿里云 高可用 云原生 ingress

Arm vs x86: 解释指令集、架构和所有关键差异

吴脑的键客

android X86 arm

☕【Java深层系列】「技术盲区」让我们一起探索一下Netty(Java)底层的“零拷贝Zero-Copy”技术(上)

码界西柚

Netty 零拷贝 zero copy 1月日更

使用MSF生成shellcode

喀拉峻

黑客 网络安全 安全 WEB安全

当基础设施故障后,声网 SD-RTN 如何保障 RTE 服务的高可用性

声网

人工智能 云计算

Ubuntu16.04/Scala2.11.8安装教程

CRMEB

金融云原生漫谈(六)|安全平稳高于一切的金融行业,如何构建云原生安全防线

York

容器 云原生 安全 金融科技

2021年小总结暨2022年打脸计划

秦怀杂货店

总结 程序人生、

旺链科技加入工信部区块链重点实验室,深化数据安全产业融合

旺链科技

区块链 工信部 数据安全 Vone新闻

最佳实践 | 如何避免一行错误代码造成的血案?

Atlassian

Atlassian Jira 代码评审

一个cpp协程库的前世今生(二十)外部调度

SkyFire

c++ cocpp

淘宝小部件在 2021 双十一中的规模化应用

阿里巴巴终端技术

小程序 淘宝 双十一

实时云渲染,汽车产业数字化转型新动能

3DCAT实时渲染

云计算 数字化 汽车 云渲染

蚂蚁大规模 Sigma 集群 Etcd 拆分实践

SOFAStack

etcd #k8s SIGMA

架构实战营 4 期第五模块作业

jialuooooo

架构实战营

基于 Prometheus 的边缘计算监控实践

火山引擎边缘云

云原生 监控 边缘计算

开启报名!2021年度龙蜥社区优秀开发者评选,非你莫属!

OpenAnolis小助手

Linux 开源 社群 比赛

VuePress 博客优化之拓展 Markdown 语法

冴羽

JavaScript Vue markdown vuepress 博客搭建

逐鹿万亿赛道:智能重卡规模量产的困境与进化

脑极体

【组件攻击链】一文看懂Spring全家桶各类RCE漏洞

H

网络安全 漏洞

阿里云刘伟光:3.5万字拆解核心系统转型,核心从业者如何寻得“出路”

OceanBase 数据库

阿里 数字化转型 OceanBase 社区版 核心系统

Discord模式等十大场景,环信带你玩转泛娱乐行业

环信

即时通讯 IM 泛娱乐 Discord

混合云应用双活容灾最佳实践

阿里巴巴云原生

阿里云 运维 云原生 混合云 多活容灾

面向智能设备的语音交互编程语言:VSL的架构与应用场景_编程语言_田晓旭_InfoQ精选文章