HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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

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

关注

评论

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

架构师训练营 听课总结 -- 第一周

fujin

极客大学架构师训练营

「架构师训练营」第 1 周作业 - 食堂就餐卡系统设计

旭东(Frank)

架构 极客大学架构师训练营 作业

String五连杀!

Bruce Duan

Java string equals

UML 练习 食堂就餐卡

Mr.hou

极客大学架构师训练营

Char和编码

Hello

Java

游戏夜读 | vim一份极简手册

game1night

食堂就餐卡系统设计

极客李

食堂就餐卡系统设计

Z冰红茶

小师妹学JavaIO之:文件读取那些事

程序那些事

Java io nio Java 25 周年 小师妹

小师妹学JavaIO之:文件编码和字符集Unicode

程序那些事

io nio Java 25 周年 小师妹

小师妹学JavaIO之:目录还是文件

程序那些事

Java io nio Java 25 周年 小师妹

架构师训练营-作业1-食堂就餐卡系统设计

狂奔嘀兔纸

极客大学架构师训练营

搞定 HTTP 协议(二):HTTP 协议总览

零和幺

HTTP

Chaos is a ladder——近期工作体会

石君

职场 职场成长 工作体会

迷宫的生成: DFS与BFS算法的实现

lmymirror

DFS 迷宫 Cocos Creator BFS

架构师训练营 第一周 作业 食堂就餐卡系统设计

一雄

极客大学架构师训练营 作业 第一周

01学习总结

赵龙

小师妹学JavaIO之:文件File和路径Path

程序那些事

Java io nio Java 25 周年 小师妹

Week 01 学习总结

卧石漾溪

极客大学架构师训练营

小师妹学JavaIO之:文件写入那些事

程序那些事

Java io nio Java 25 周年 小师妹

架构师0期作业-20200606

caibird1984

极客大学架构师训练营

食堂就餐卡系统架构设计文档

竹森先生

极客大学 架构设计 极客大学架构师训练营

快速复制文件rsync、tar

唯爱

架构师训练营 作业 -- 第一周

fujin

极客大学架构师训练营

Week1 总结

TiK

极客大学架构师训练营

食堂就餐卡系统概要设计

小小杨

极客大学架构师训练营

架构师训练营第一周总结

小小杨

极客大学架构师训练营

Kafka系列10:面试题是否有必要深入了解其背后的原理?我觉得应该刨根究底(下)

z小赵

大数据 kafka 面试 实时计算

ARTS-第一周

爱睡的猫

源码分析 | 手写mybait-spring核心功能(干货好文一次学会工厂bean、类代理、bean注册的使用)

小傅哥

spring 源码 源码分析 小傅哥 mybatis

架构师训练营第一周总结

一剑

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