免费注册!6月19-20日,「亚马逊云科技中国峰会」重磅来袭! 了解详情
写点什么

面向智能设备的语音交互编程语言: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:526592
用户头像

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

关注

评论

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

易周金融分析 | Q2手机银行活跃用户环比增长2.17%

易观分析

金融 手机银行

云原生数据库白皮书,发布!

华为云开发者联盟

数据库 云原生 后端 华为云 白皮书

SpringBoot 整合 Junit

springboot junit5 8月月更

阿里云林小平:如何实现应用的持续发布?

阿里云弹性计算

持续发布 应用 自动化运维

【Gopher 学个函数】边学边练,简单为 Go 上个分

梦想橡皮擦

Python 爬虫 8月月更

灵活多样认证授权,零开发投入保障IoT安全

EMQ映云科技

安全 物联网 认证授权 emqx 8月月更

基于高效采样算法的时序图神经网络系统(一)

Baihai IDP

人工智能 神经网络 深度学习 图数据

「数澈软件」获5300万元种子轮融资,构建新一代软件供应链防火墙

SEAL安全

软件供应链安全

Excelize 发布 2.6.1 版本更新,支持工作簿加密保护

xuri

开源 数据分析 Go 语言 Excelize Excel工具

软件测试中的树莓酱定律

BY林子

软件测试 敏捷测试 质量内建

最新版MySQL8 绝对有用的lag函数实现同比、环比、均差计算

知识浅谈

MySQL 8月月更

Web3 的通行证——DID 带来数字身份革命

One Block Community

基于STM32L431设计的云端绿化管理系统(ESP8266+腾讯物联网云平台)

DS小龙哥

8月月更

【LeetCode】合并区间Java题解

Albert

LeetCode 8月月更

[JS真好玩] 遇到表格,手动翻页太麻烦?我教你写脚本,一页展示所有数据

HullQin

CSS JavaScript html 前端 8月月更

一对一语音直播系统源码——如何解决音视频直播技术难点

开源直播系统源码

软件开发 直播系统源码 语音直播系统源码 语音直播源码 一对一语音直播

使用 OpenTelemetry 零代码修改接收 SkyWalking 追踪数据

Daocloud 道客

云原生 可观测性 Skywalking OpenTelemetry

头脑风暴:最大子序和

HelloWorld杰少

数据结构 算法 LeetCode 8月月更

动态尺寸模型优化实践之Shape Constraint IR Part II

阿里云大数据AI技术

深度学习 编译器 优化

“副业焦虑”席卷Z世代,今天你的副业失败了吗?

博文视点Broadview

企业分账如何帮助用户解决成本优化和预算分配的问题

阿里巴巴中间件

阿里云 Serverless 云原生 SAE

PingCode 权限系统设计与实现

PingCode研发中心

权限系统

一次客户需求引发的K8S网络探究

京东科技开发者

k8s 中台架构 #k8s K8s 多集群管理 数据库·

芯声智能亮相亚洲智能穿戴展,智能头盔声学方案为骑手保驾护航

硬科技星球

Curve Testing Camp Time|万元大奖等你来拿!

张慧

分布式存储 curve

什么是公共云、私有云、混合云、社区云,四者分别有啥区别?

wljslmz

云计算 8月月更

收到面试通知后,如下的准备可以大大提升面试成功率

TimeFriends

8月月更

Latex安装教程(附美赛论文latex模板)

乌龟哥哥

8月月更

golang实战之flag包

程序员欣宸

golang 8月月更

数据治理(六):编译Atlas安装包

Lansonli

数据治理 8月月更

机器学习服务文本翻译能力升级,中文直译模型让译文表达更地道!

HarmonyOS SDK

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