写点什么

详解 OPPO 开放技术能力:Breeno 和 ARunit

2019 年 8 月 16 日

详解OPPO开放技术能力:Breeno和ARunit

在目前手机产业中,OPPO 凭借其对用户需求的准确把握和将需求转化为产品卖点的能力,已迅速成为主流智能手机品牌,在全球市场份额排名中位居第四,占据了移动互联时代的流量入口。


从 2016 年开始,OPPO 把重点放在开放平台建设上。不久前,OPPO 正式开放 Breeno 语音技能平台的接入,同时不断拓展 ARunit 相关能力,助力开发者打造更加优质的产品。


4 月 13 日在北京举行的 OPPO 技术开放日,OPPO 相关技术和产品负责人现场为大家详细解读BreenoARunit框架的技术能力和开发流程,小编为大家整理了以下内容。


如何开发一款语音技能产品?

语音交互技能是这几年才兴起的新鲜事物。它使产品和服务可以覆盖用户的语音交互场景,并快速做出合理的响应。由于支持语音交互的产品和服务,极大地方便了人们的生活,这使语音技能开发成为了新一轮内容及服务的创业蓝海。


语音的技能几乎可以支持现在互联网所有的产品类型,包括信息的查询、益智的游戏、问答等。同时也支持多元化的资源载体,包括 APP、快应用、H5 等。



那么,语音技能究竟是怎么开发的?在哪开发?怎么发布? 什么样的语音技能效果好?我们可以从 OPPO 的语音技能平台 Breeno 上寻找答案。


Breeno 语音技能平台,是一个为开发者提供技能创建、测试、部署的工具平台。通过该平台,开发者可享受完全免费的平台服务,更加简单高效地创建优质语音技能,实现了终端用户使用自然语言即可唤醒和使用语音技能的目的,既在降低开发成本的同时,又能提高开发效率。


Breeno 语音技能平台框架

Breeno 语音技能平台主要分为三部分:平台工具、审核和上线部分。


  • 在平台工具层中,「基础支撑」是最基础的底层能力,有海量数据和算法支持;「技能形态」是对多元化资源内容的接入形态支持,并提供通用性很强的标准卡片模板,具有广泛性和包容性;「核心流程」是整个框架中最核心的部分,也是开发者能做出优秀语音技能的过程支持。

  • 在审核层中,「审核后台」具有审核流程和标准、审核机制、基本功能支持和技能统计四个模块,审核后台的价值是在技能上线前,帮助开发者把控技能体验。

  • 在上线层中,「技能商店」是直接面向用户的,所以需要具备丰富的信息内容。此外,平台方面会帮助开发者做技能的运营和推荐。



在 Breeno 上创建一个语音技能的流程是怎样的?

创建一个语音技能,可以分为六个步骤:语音技术→对话管理→接入方式→在线测试→一键部署→统计监控。Breeno 可以全程提供技术支持。


第一步,语音技术支持。语音技术支持分为四个环节:语音唤醒、语音识别、语音理解和语音合成。在这些环节中,Breeno 为开发者提供的支持有:


  • 在语音唤醒方面,支持包括“打开+技能名称”的唤醒,还有“包括唤醒和意图需求的一句话”的唤醒;

  • 在语音识别方面,采用了科大讯飞语音识别模型,识别准确率 95%以上;

  • 在语义理解方面,提供多种通用系统意图和词典支持,提供在线技能意图的训练模型,提高意图识别准确率;

  • 在语音合成方面,提供中文普通话 TTS 语音播报,还有多种 SMML 播报标签语持续更新中。


第二步,对话管理支持。对话管理部分主要是指语音对话中用到的自然语言处理:


  • 支持单轮和上下文多轮语音交互对话配置;

  • 多轮对话中上下文槽位信息自动继承,从而能高效率管理对话服务。


第三步,接入方式支持。接入方式就是交互展现,用户收到的回复如果只有文本内容,未免太过简陋。Breeno 提供了多种形式的展现模板,并帮助开发者在各种交互形态下进行试验和自适应调整,整体降低了开发者的开发成本。包括:


  • 提供多种卡片的选择,包括:纯文本、图文等基本信息模版,支持点击链接跳转,例如新闻类的技能;还有适合音频内容的多媒体模版;如果针对知识问答,可以选择 FAQ 自动问答配置等;

  • 提供各种交互形态自适应,包括:无屏交互,有屏交互,微屏交互


第四步,在线测试支持。当整套技能开发完毕后,最让人头疼的问题就是测试。Breeno 提供了模拟器在线模拟测试和真机测试,还支持测试正例上传和存储。


第五步,一键部署支持。技能发布时,支持一次发布多个终端同时部署,减少多次发布的过程。同时,还提供在线资源和内容存储管理,以及线上代码编辑和服务一键配置能力。


第六步,统计监控支持。技能上线后,开发者需要实时了解应用表现,所以需要进行数据监控和统计。Breeno 会把真实的数据和用户操作信息同步给开发者,方便及时升级和优化。


OPPO 有一句很有名的广告语:充电 5 分钟,通话 2 小时。 其实,在 Breeno 上创建语音技能也只需要 5 分钟,具体内容大家可以参考Breeno语音技能平台官方文档去体验一下。


如何为你的应用增加 AR 功能?

现在 VR 给人们的印象就是:头带一个密封的头盔。很多人以为 AR 也会是这样。当然微软也有 AR 头盔,但是 AR 最大的市场在于移动设备。原因在于,AR 硬件在成本方面有一定的局限性,目前并未普及;另一方面,AR 技术已经可以和智能手机兼容,用户没必要购买专用的 AR 硬件就可以体验 AR 内容。而且大部分情况下,消费者用 AR 移动设备就足够满足需求了。


那么,AR 究竟是怎么做到“虚实结合”的?

由于 AR 是现实场景和虚拟场景的结合,所以基本都需要摄像头,在摄像头拍摄的画面基础上,结合虚拟画面进行展示和互动,那么需要实现的是:


  • 了解真实相机的实时姿态。

  • 将虚拟相机的位姿视角与真实相机对齐,这样才能感受到虚拟物品的真实存在。

  • 虚拟对象到真实环境的渲染要够真实,所以要很强大的 AR 渲染功能,实现虚拟物体与现实环境场景相融合。

  • 人与虚拟物体实现交互,包括手势、躯体、骨架识别等,更有趣味性和深度。这里的交互可以基于摄像头、头盔、手表等介质完成。


那么从技术角度,这个过程该怎么完成呢?



一套完整的 AR 系统包括四个模块:运动追踪、环境理解、目标追踪和虚实融合。


  • 1、运动追踪系统


该系统可以在移动过程中,实时跟踪手机的自身的位置,并构建自身对周围环境的理解。ARunit 的追踪技术使用摄像头来标识兴趣点(也称特征点),并跟踪这些点随着时间变化在屏幕上的移动。通过结合这些点的移动信息与手机惯性传感器的数据,ARunit 能够在手机移动时确认自身的位置和屏幕朝向。


  • 2、环境理解能力


我们在用手机扫描现实场景时,需要寻找到水平平面或者数字平面,然后选择虚拟物体放置位置,然后生成虚拟物体。在这个过程中,系统会检测环境中的平坦表面(如桌面、墙面),并估测目标区域中的平均光照强度,结合标识的关键点,进而构建起资深对周围环境的理解。据了解,OPPO 的 AR 团队正在不断扩展能力边界,正在结合深度摄像头对现实场景进行 3D 建模,生成现实场景的三维模型。 如此一来,虚拟物体可以被放在任何表面,包括斜面和角落。此外,OPPO AR 将针对三维重建做数字化描述得到现场地图,通过结合这种地图可以做到遮挡和碰撞,使用户有更进一步的交互体验。


  • 3、目标追踪


目标追踪主要是对现实场景中一些感兴趣的物体的追踪,可以增加 AR 的趣味性。比如对图象标志的追踪,通过在 APP 里录入一些商标模型,进行追踪扫描,生成一个虚拟品牌宣传形象或标语。此外还有物体追踪、人脸追踪等,包括可以对人脸做一个 3D 美妆,游戏中的虚拟人物的服装造型等。这样可以帮助开发者将 APP 做的更有趣。


  • 4、虚实融合


如果简单的把三维虚拟物体,放在某现实场景中会显的很假。这里需要用到三维渲染光,通过我们对现实环境光源光强的估计,对现实场景中虚拟物体放置位置材质的理解,渲染出来的虚拟物体才更加逼真。


ARunit 架构和调用流程

开发前,开发者需要选择合适的平台和开源工具。OPPO ARunit 就是一个跨平台支持的增强现实应用框架。它具有较强的兼容性,其中包括 C、java、Unity3D 等版本 sdk,能够提供实时跟踪与建图、尺度估计、多平面检测、光照估计、命中检测等功能。它可以帮助开发者快速搭建自己的 AR 应用,并极大的释放 AR 应用方面的创意和灵活性,同时开发成本也很低。



OPPO 手机都会内置 ARunit 的功能,并逐渐普及同时支持 2D 和 3D 的设备。开发者可以通过 ARunit 调用能力、支撑应用本身的功能和场景。这些能力上文中提到的位姿跟踪、环境理解、光照估计、遮挡、击中测试、手势交互等,并在持续增加更多新的能力。


ARunit 的调用过程比较简单,如下图所示:



ARunit的接口设计也很友好,与 ARcore 类似,之前有过 ARsdk 开发经验的,都可以很轻松的切换到 ARunit 上,无需很多重复性学习。


AR 应用案例及场景探讨

目前,在应用中开通 AR 功能已成为趋势。对于开发者来说,AR 有哪些应用场景可以去落地?


从支撑 AR 应用的终端设备发展来看,增长速度是极快的,2016 到 2018 年间的手机增长了 37 倍,预计在 2020 年的时候全球将会有 6 亿台手机具备 AR 的功能,而大部分的手机都可能具备探测高精度深度信息的摄象头。


在 2018 年,OPPO ARunit 已经完成了 100 项技术研发,并基于摄像头的能力设计了 AR 尺子和 3D 扫描应用。之后,ARunit 与合作伙伴不断创新,从不同角度带给用户新的体验和内容:


  • 「ARunit + 高德地图 = AR 实景导航」,用户可以开启 AR 导航,通过手机看到周围的真实环境和导航路径,能看到指引员“小欧”在向你招手,这对于方向不容易辨别的路况很实用。

  • 「ARunit + 王者荣耀 = 王者荣耀 AR 相机」,用户可以在任何桌面和地面上同王者荣耀里的英雄合影,也可以调整照片的滤镜、美颜效果和灯光,甚至可以与你喜欢的英雄进行互动。

  • 「ARunit + 神奇 AR = AR 短视频」,用户可以将模型素材和特效放在现实场景做融合,多种内容的组合可以产生新奇玩法,可以看到真实二次元出现在三次元里的样子。


此外,OPPO 一直持续关注 AR 领域的布局,重点关注游戏、购物、拍摄、地图、生活、教育等与用户有紧密联系的场景,并通过 AR 技术的能力为用户开发者传统的商业模式赋能新形态。并针对 AR 开发者设立了 TOP100 的计划,专门为 AR 应用开发者提供多种资源的支持,包括技术支持、联合营销和商店推广等,帮助 AR 开发者在早期迅速获得市场认知和尽可能多的用户量。


随着未来技术的不断提升,开发者们会有更多的想法和创新,也会有更多新的场景和应用诞生,希望 OPPO 能与广大开发者一起,在未来技术的探索和实践上,共同前进。


推荐阅读:


《深入OPPO,Android应用的高效开发实践》


《OPPO 数据中台之基石:基于 Flink SQL 构建实数据仓库》


《OPPO 大数据平台运营研发实践分享》


2019 年 8 月 16 日 19:338672
用户头像
田宁宁 InfoQ策划编辑

发布了 33 篇内容, 共 80292 次阅读, 收获喜欢 18 次。

关注

评论

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

架构师训练营 - 第 2 周命题作业

红了哟

[架构师训练营] 2 依赖倒置

悬浮

啥是CPU缓存?又如何提高缓存命中率呢?

八两

本地缓存高性能之王Caffeine

java金融

Java Guava Cache Caffeine 本地缓存 谷歌本地缓存

孩子教育

王进行

教育 孩子

设计模式作业

qihuajun

Git 基础知识学习

LeoBing

架构师训练营第三周总结

hiqian

week3:组合设计模式和单例

Geek_36d3e5

SpringIOC 是依赖倒置吗?

yupi

架构师训练营第二周作业

陈靓-哲露

架构师第二周学习总结

陈靓-哲露

LeetCode | 4. Palindrome Number 回文数

Puran

Python C# 算法 LeetCode

通证经济=区块链技术+商业模式

CECBC区块链专委会

商业模式 区块链技术 Token 通证经济

2020最新阿里Java高级面试题(首发,50道附答案)

互联网架构师小马

架构师训练营 - 第2周学习总结

红了哟

ARTS|Week 4 Product, Leadership, and SOLID

Puran

设计模式 LeetCode ARTS活动 Leadership

跨平台数据库管理神器DataGrip,用上就爱不释手

飞哥

数据库 JetBrains datagrip

week3-学习心得

Geek_36d3e5

大话设计模式 | 3. SOLID原则

Puran

设计模式

程序员的晚餐 | 6 月 20 日 随便牛肉和翡翠白玉

清远

美食

云计算产品的竞争力

韩超

云计算 k8s 公有云 私有云

架构师训练营第三周学习总结

张明森

在 React 仓库中的那些 package

teabyii

源码 前端 React

效率思维模式与Zombie Scrum

Worktile

敏捷开发

区块链助力新基建

CECBC区块链专委会

区块链技术 联盟链 公链 底层技术

ARTS Week4

时之虫

ARTS 打卡计划

Week3 作业

Shawn

Java操作Excel竟如此简单

生命在于折腾

Java EasyExcel

软件设计原则

yupi

LeetCode | 5. Longest Common Prefix 最长公共前缀

Puran

Python C# 算法 LeetCode

演讲经验交流会|ArchSummit 上海站

演讲经验交流会|ArchSummit 上海站

详解OPPO开放技术能力:Breeno和ARunit-InfoQ