写点什么

详解 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:338473
用户头像
田宁宁 InfoQ策划编辑

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

关注

评论

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

产品经理训练营作业 01

KingSwim

【CSS】文字毛玻璃效果(简单版)

学习委员

html/css CSS小技巧 28天写作 纯CSS

产品训练营第二章作业

Geek_79e938

机器学习·笔记之:这节课在干啥?

Nydia

【JS】执行静态代码

学习委员

JavaScript 前端 js 28天写作

2021,你值得看的华为/字节/腾讯/京东/网易/滴滴面经分享

比伯

Java 编程 架构 面试 计算机

持续写作第 18 天: 业务系统思考 (5)

dowell87

28天写作 业务系统 业务

项目管理文化建设

Ian哥

28天写作

微信视频号的长视频和短视频 | 视频号28天(18)

赵新龙

28天写作

CSS(三)——简单的网页制作

程序员的时光

CSS 日更挑战 28天写作

react-router学习笔记

hao-kuai

React-Router

产品经理-作业2

简小一

Elasticsearch partial update

escray

elastic 日更挑战 28天写作 死磕Elasticsearch 60天通过Elastic认证考试

没有女友的建议,不会有这家巨头公司

李忠良

28天写作

产品经理训练营-第二周学习总结

月亮 😝

GNUCash 3: 科目布局

lidaobing

GNUCash 28天写作

酒话?醉话?真话?写在2021年的开始

ITCamel

2020年总结 2021年展望

28天瞎写的第二百二十八天:用 UltraEdit 找优越感的故事

树上

28天写作 UltraEdit

第二章作业

大小姐

请给我一个被辞退的正当理由

熊斌

职场 28天写作

基于Serverless实现静态博客访问统计功能

zFish

Serverless AWS Hugo Pulumi

Serverless应用开发小记

zFish

DevOps AWS IaC #Serverless Terraform

【shell命令】关于mac的open命令

程序员架构进阶

工具 Shell 命令行 28天写作

芯片(28天写作 Day18/28)

mtfelix

自动驾驶 28天写作 车规级芯片

CSS(四)——CSS高级特性

程序员的时光

CSS 程序员 日更挑战 28天写作

静下心来

青城

程序人生 28天写作 青城

第二周作业-利益相关方

Au revoir

产品经理训练营-第二周作业

发条檀木

产品经理训练营

【CSS】角标(伪元素)

学习委员

css3 html/css 28天写作 纯CSS

产品经理训练营作业-利益相关方

郭郭

批判性思维自修课(二)

石君

28天写作 批判性思维

芯片行业现状:机遇与泡沫

芯片行业现状:机遇与泡沫

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