Android App 技能在DuerOS的调试方法

温故知新,我们先回顾一下DuerOS的技能分类。根据不同的视角可以对DuerOS 目前支持的技能类型进行不同的分类,例如,从用户与技能的语音交互方式来看, 可以将技能分为这四种技能类型:

  1. L1技能:只支持语音的打开和关闭
  2. L2技能:在技能内支持有限的语音交互
  3. L3技能:在技能内支持丰富的语音交互
  4. L4技能:支持跨越技能的丰富语音交互 

 

 

L1 与L2技能的区别在于是否有技能内的语音交互,L2与L3技能的区别在于技能内的语音交互是否丰富,L3与L4 技能的区别在于是否有技能的唤醒边界。

从技能的实现形态来看,可以简单地分为两种技能类型,一种是云技能,另一种是端技能。云技能和端技能的主要区别在于是否需要在智能语音设备上安装技能的客户端,需要安装或提供客户端软件的技能就是端技能,否则可以认为是云技能Android App 技能可以认为是典型的端技能。那么,如何将一款Android 的App 移植成为DuerOS的智能语音应用呢?可以参考《一个安卓App,如何成为DuerOS 上的技能应用呢?》一文, 文中介绍了App 技能的调试方法。

 基于调试系统的APP技能调试

 由于APP 技能处于Preview feature 阶段,所以只能在真机上技能技能调试。在初期,App的技能调试是基于调试系统的,即可需要在设备上安装Debug Rom。

真机调试开发环境的安装

创建好APP技能后,点击【测试验证】 → 点击【真机测试】→ 点击【新增设备SN】,添加自己的小度设备SN。

开发者在配置好设备SN之后,可以对真机设备说,“小度小度,打开技能开发助手”,在菜单中选择【升级为开发版ROM】,根据语音提示进行后续操作即可。

注意:如果以上操作都完成还是提示申请升级失败,请确认设备上的账号和DBP平台登录的账号是否一致,要确保使用相同的账号。

真机调试密钥的获取和使用

在开发环境安装成功之后, 需要下载开发环境的密钥本地。

 

在真机调试的时候,密钥的使用方法如下:

1)替换到设备本地的 ~/.android 目录中

2)执行命令重启adb:

adb kill-server

adb start-server

 

安装应用,在Debug模式下调试
在真机的调试环境和调试密钥都安装成功后, 就可以使用ADB 命令安装目标APP了。

在保持开发者账号和小度设备账号一致的前提下,在DBP平台开启技能调试模式的按钮,对设备说,“打开技能调试模式”。进入到技能调试模式后, 开发者就可以使用语音交互来调试APP 技能了。

这个调试流程主要的一个缺点是安装系统的Debug Rom较大,需要的下载时间较长。当然,这取决于开发者当前的网络环境, 有时候要花费几十分钟,影响了开发的效率。而且,在安装完Debug Rom 后, 往往需要重启设备,对开发调试同样造成的不便。

于是,DBP 提供了新的App 技能调试方法。

 基于调试模式赋能的App 技能调试方式

基于调试模式赋能的App 技能调试方式取消了Debug Rom 的下载, 通过将目标设备的赋能ADB调试模式,即可在任何智能屏设备上调试App技能。当我们在手机上调试Android App 的时候, 需要在手机的系统设置中开启开发者模式。基于密钥的App 技能调试模式与之类似, 只不过要需要在DBP 平台进行云端配合才能完成调试模式的开启。

DBP 平台的调试模式配置

在创建好APP技能后,在DuerOS开发者平台,配置要使用adb调试的设备SN。进入到App技能的控制台,点击【测试验证】-->【真机调试】:

然后在右边找到:AdbKey调试模式,点击【新增设备SN】,在弹窗中添入小度设备的SN。在平台配置好设备SN后,才可以在设备上使用【技能开发助手】开启Adb调试模式。

开启Adb调试模式

如果小度设备已经完成了开发者账户的绑定,则对设备说,“小度小度,打开技能开发助手”,即可进入到技能开发助手中了 ——

点击【开启adb调试模式】, 即完成了调试模式的赋能。

 

在点击开启Adb调试模式时,不要一直点击,要等到页面刷新成功。如果重复点击的话,可能会被限制使用adb调试模式,大约要被禁用2个小时。

真机调试密钥的获取

成功开启Adb调试模式后,在平台添加设备SN处可以获取到AdbKey,key的使用说明在下载的压缩包内。

 

只有在开启ADB调试模式之后,才会显示下载adbkey的按钮,每个设备都会有一个独立的ADB Key,下载时需要注意。

安装应用,在Debug 模式下进行调试
在真机的调试环境和调试密钥都安装成功后, 就可以使用ADB 命令安装目标APP了。

在保持开发者账号和小度设备账号一致的前提下,在DBP平台的技能控制台开启技能调试模式的按钮,对设备说,“打开技能调试模式”。在进入到技能调试模式后, 开发者就可以使用语音交互来调试APP 技能了。

在使用调试模式赋能的时候,需要注意以下问题:

  1. ADB Key有效期1个月,如果过期,请重新在DuerOS的开发者平台下载。
  2. 如果在平台添加了设备SN,在设备上打开技能开发开发助手时,提示:请先到开发者平台,真机调试页面配置设备序列号后,再来使用该技能。这种情况是因为您在平台登录的账号和设备上登录的账号不一致导致,使用设备上登录和平台相同的账号即可。
  3. ADB调试模式是与账号和设备强绑定的,开启了ADB 调试模式的设备,如果更换了其他账号登录,ADB调试模式会被关闭,而且,登录原来的账号后也需要重新开启。
  4. 在Windows操作系统下,如果不能识别到设备,请检查设备usb驱动是否安装成功。

结束语
目前,ADB调试模式赋能的方式已经正式上线了,原有基于调试系统(debug rom)的方式将不再露出,开发者只需要将小度设备的端版本升级到sp45及以上版本即可。然而,这并不意味着基于调试系统的方式不可用了,因为对于一些深度合作的App,例如涉及到Android Framwork层的系统配合,基于调试系统(debug rom)的方式仍然是需要的, 遇到这样的情形, 需要开发者发邮件到dbp-service@baidu.com, DBP 平台的运营人员,经过确认后,会向开发者定向推送调试系统的。

简单地说,DBP 平台目前已经支持了两种App技能的调试方式:调试系统和调试模式赋能。调试模式赋能在1~2分钟左右即可让开发进入到技能调试状态,较大地提升了开发者的开发效率。

或许, 几十分钟或者十几分钟可能显得微不足道,但是,DBP 一直在努力,在努力为DuerOS的开发者们提供更好更高效的技能开发环境。

【关联阅读】

  • https://dueros.baidu.com/dbp

  • 谢谢...,DuerOS开放平台的2020

  • AI 语音交互开放平台的构建与演进

  • 智能语音应用开发之DPL2.0高级特性

  • 生动化你的表达——DuerOS中SSML应用

  • 从 JavaScript Bot SDK 看DuerOS的技能开发

  • 在校大学生能成为DuerOS 的独立开发者吗?

  • 面向接口/协议?看DuerOS的技能开发

  • 揭秘“语音交互”背后的AI硬核黑科技!

  • 百度AI开发者大会之DuerOS 回顾

  • 声如其闻,DuerOS中的声音播放

  • 放心用吧!浅谈DuerOS的安全性

  • 从JavaSDK看DuerOS技能开发

  • 《智能语音时代》的读书笔记

  • 调试DuerOS的智能语音技能

  • DuerOS的零编程技能实现

  • 智能音箱场景下性能优化

  • 语音交互设计的一点认知

  • DuerOS 走进初夏成都

  • 感知人工智能操作系统

  • 多模态交互之DPL 2.0

  • 企业赋能 AI服务生活

  • 感知自然语言理解

  • 再看语音交互设计

  • 聊聊“全双工”

  • 聊聊“异步”



原文链接:https://blog.csdn.net/wireless_com/article/details/113100712

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/58962.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity 2D寻路导航 NavMeshPlus解决方案

插件的github主页 h8man/NavMeshPlus: Unity NavMesh 2D Pathfinding 这个插件是基于新版3D寻路导航制作的,所以你可能需要看一下这篇文章 新旧Navmash 寻路导航组件对比 附使用案例与实用教程链接-CSDN博客 这行代码agent.updateUpAxis false 一定要为代理单位…

客户端与微服务之间的桥梁---网关

当我们创建好了N多个微服务或者微服务的实例之后,每个服务暴露出不同的端口地址,一般对于客户端请求,只需要请求一个端口,要隔离客户端和微服务的直接关系,保证微服务的安全性和灵活性,避免敏感信息的泄露。…

@Excel若依导出异常/解决BusinessBaseEntity里面的字段不支持导出

今天发现所有实体类继承BusinessBaseEntity里面的这些通用字段不支持导出,debug时发现是这样: 导出效果 这里我把能查到的方法都汇总了,如果你也遇到这个异常,可以去逐步排查 1.先看库里有没有数据 2.看字段名是否对齐 3.所需要…

Flink系列之:学习理解通过状态快照实现容错

Flink系列之:学习理解通过状态快照实现容错 状态后端检查点存储状态快照状态快照如何工作?确保精确一次(exactly once)端到端精确一次 状态后端 由 Flink 管理的 keyed state 是一种分片的键/值存储,每个 keyed state…

大数据之文件服务器方案

大数据文件服务器方案 一,文件服务器常用框架 二,文件服务器常用框架的实现技术 文件服务器常用框架 文件服务器是一种专门用于存储、管理和共享文件的服务器,其常用框架的实现技术涉及多个方面,以下是一些主要的实现技术及其详…

车载总线系列 --- CAN FD简介

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所有人的看法和评价都是暂时的,只有自己的经历是伴随一生的,几乎所有的担忧和畏惧,都是来源于自己的想象,只有你真的去做了,才会发现有多快乐。…

Oracle与SQL Server的语法区别

1)日期和日期转换函数。 SQL: SELECT A.*, CASE WHEN NVL(PAA009,) OR PAA009 >Convert(Varchar(10), SYSDATE,120) THEN Y ELSE N END AS ActiveUser FROM POWPAA A WHERE PAA001admin or PAA002admin Oracle: SELECT A.*, CASE WHEN NVL(PAA009,) or PAA009&…

在培训班学网络安全有用吗

在当今数字化时代,网络安全问题日益凸显,成为了企业和个人关注的焦点。随着对网络安全人才需求的不断增长,各种网络安全培训班也如雨后春笋般涌现。然而,在培训班学网络安全真的有用吗? 一、网络安全的重要性与挑战 1. 信息时代的…

leaflet 地图基础应用篇

文章目录 leaflet 基础应用一、基础介绍二、功能总结1. 地图加载2. 打点3. 图层控制4. 绘制5. 聚合6. 特效实例应用1. 加载多个不同来源的地图图层并切换2. 加载自定义瓦片地图(本地瓦片或私有瓦片服务器)3. 加载有不同缩放级别限制的地图图层 图层加载控…

【前端】在Next.js中cors 库的使用及限制跨域请求的速度

cors 库是一个用于方便地启用跨域资源共享(CORS)的 Node.js 中间件。在 Next.js 中,你可以利用这个库来处理来自不同源的请求。下面是详细的步骤说明,展示如何在 Next.js 中使用 cors 库。 安装 cors 首先,你需要安装…

躺平成长-下一个更新的数据(躺平成长数据显示核心)

旭日图(Sunburst Chart)是一种用于展示具有层次结构数据的可视化图表。 它起源于饼图和环形图,并随着数据可视化需求的发展而演变。 旭日图通过将层次结构数据以由内向外的同心圆环形式展示,使数据的层次关系更加清晰直观。 以下…

【C++、数据结构】哈希表——散列表(一)(概念/总结)

「前言」 🌈个人主页: 代码探秘者 🌈C语言专栏:C语言 🌈C专栏: C / STL使用以及模拟实现 🌈数据结构专栏: 数据结构 / 十大排序算法 🌈Linux专栏: Linux系统编…

OpenCV图像预处理1

目录 图像翻转 图像仿射变换 仿射变换函数 图像旋转 图像平移 图像缩放 图像倾斜 图像色彩空间转换 RGB 转 Gray RGB 转 HSV 图像二值化处理 图像掩模 图像位与操作 图像检测轮廓 绘制轮廓 图像翻转 cv2.flip(src, flipCode[, dst]) -> dst 用于翻转图像。翻…

金融量化交易模型的探索与发展

在当代金融市场中,量化交易模型的应用不断提升,逐渐成为大数据与人工智能等前沿技术的集大成者。量化交易借助数学模型和算法分析市场信息,自动执行交易决策,具备精确、效率高等特点,且能够在复杂多变的市场中有效应对…

求逻辑地址的页号和物理地址

逻辑地址空间按字编址 -->逻辑地址长度为:log2(逻辑地址空间) 页的大小 --> 页内偏移量占log(页的大小) 逻辑页号页内偏移量逻辑地址长度 因此假如一个逻辑地址空间为64kb,页的大小为1kb,逻辑地址为17CAH,求逻辑地址页号…

ETLCloud怎么样?深度解析其在数据管理中的表现

在BI或数据大屏等数据分析工具中,经常需要从多个业务系统中提取原始数据,然后对数据进行清洗、处理,以获取高质量、有效且干净的数据以供后续的BI进行数据统计和分析使用,从高质量的实现企业数据的价值变现。 然而,在…

Windows SEH异常处理讨论

Windows C程序异常的类型 在Windows C异常的场景中,我们需要理解以下两种类型的异常: C语言抛出的异常。 这是利用C throw抛出的exception,利用C try-catch即可捕获。即便是来自于另一个DLL的C exception,仍然能利用C try-catch…

Windows 基础(一):深入理解Windows,掌握命令行与Shell

内容预览 ≧∀≦ゞ Windows 基础(一)声明导语一、Windows 和 Linux 的区别二、Windows 的ShellShell 和 终端 的区别1. 命令提示符(CMD)2. Windows PowerShell3. Windows Terminal4. Windows Subsystem for Linux (WSL) 三、Windo…

【数据库系统概论】第3章 关系数据库标准语言SQL(一)数据查询(超详细)

目录 一、单表查询 1. 简单的数据查询 (1)选择表中若干列 (2)选择表中若干行(元祖) 2. 聚合函数与分组查询 聚集函数 GROUP BY分组查询 二、联接查询 1、连接概述 2. 内联接(INNER JO…

unity后端kbengine用DOTween让 移动同步丝滑

unity在网络同步kbengine框架,同步移动时, 看自己很丝滑,但看他人是在跳越移动,一闪一闪,像掉帧, 看什么插值,高频同步,都不实用 用DOTween的 transform.DOMove(目标位置, 时间); //顺滑移动动画 这段代码不是放在Avatar.cs,放在AvatarView.cs里 if (Avatar.isPlayer() false…