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.rhkb.cn/news/464659.html

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

相关文章

Ghidra无头模式(自动化批处理执行重复性任务)

Ghidra无头模式(自动化批处理执行重复性任务) 与Ghidra GUI探索单个项目中的单个文件不同,Ghidra headless analyzer(Ghidra无头分析器)更加适合批处理和用脚本控制Ghidra。 (一)启动analyzeHea…

ES海量数据插入如何优化性能?

2024年10月NJSD技术盛典暨第十届NJSD软件开发者大会、第八届IAS互联网架构大会在南京召开。百度文心快码总经理臧志分享了《AI原生研发新范式的实践与思考》,探讨了大模型赋能下的研发变革及如何在公司和行业中落地,AI原生研发新范式的内涵和推动经验。 …

el-date-picker日期选择器动态设置日期

需求&#xff1a;选择开始时间&#xff0c;或者在开始时间已存在的情况下&#xff1b;结束时间下拉日期选择框展示从开始日期展示&#xff1b;而不是当前日期&#xff0c;并且结束时间下拉框日期要禁用开始时间之前的日期。 <el-form-item label"开始时间" prop&q…

web实操2——idea创建普通web项目

创建项目 就是普通的java项目&#xff0c;项目右键add framework support&#xff08;添加框架支持&#xff09;,然后点击Web Application&#xff08;web应用程序&#xff09;&#xff0c;然后点击OK。即可。 文件下就会多一个web文件夹&#xff0c;里面是WEB-INF文件夹&…

ES跟Kafka集成

配合流程 1. Kafka作为分布式流处理平台&#xff0c;能够实时收集和处理不同数据源的数据流&#xff1b; 2. 通过Kafka Connect或者Logstash等中间件&#xff0c;可以将Kafka中的数据流实时推送到Elasticsearch中&#xff1b; 3. Elasticsearch接收到数据后&#xff0c;会根据…

RT-Thread操作系统(2)

RT-Thread操作系统&#xff08;2&#xff09; 目录 RT-Thread操作系统&#xff08;2&#xff09; 设备驱动 IO设备模型框架 PIN设备&#xff08;控制LED灯&#xff09; 软件包开发 DHT11的使用 自动初始化机制 串口 LCD LVGL 连接阿里云和服务器 设备驱动 IO设备模…

多线程--简单模拟实现线程池并使用--Java

一、序言 阅读这篇博客之前建议先读多线程--线程池概念以及使用--Java-CSDN博客&#xff0c;里面有对线程池的详细介绍&#xff0c;这边就不过多赘述。 二、模拟实现固定线程数目的线程池 通过对线程池的理解&#xff0c;我们了解到线程池将我们需要执行的任务Runnable放在阻…

bert-base-chinese模型使用教程

向量编码和向量相似度展示 import torch from transformers import BertTokenizer, BertModel import numpy as npmodel_name "C:/Users/Administrator.DESKTOP-TPJL4TC/.cache/modelscope/hub/tiansz/bert-base-chinese"sentences [春眠不觉晓, 大梦谁先觉, 浓睡…

mutable用法

mutable 关键字用于允许类的某个成员变量在 const 成员函数中被修改。通常&#xff0c;const 成员函数不能改变对象的任何成员变量&#xff0c;但将成员变量声明为 mutable 可以例外 class Hero { public:Hero():m_Hp(0), m_getHpCounter(0){}int getHp() const {m_getHpCounte…

map和set和pair

目录 一.序列式容器和关联式容器 一.set set类的介绍&#xff1a; Construct &#xff1a;set的初始化 insert&#xff1a;插入 ​编辑find&#xff1a;查找 erase&#xff1a;删除 set查找范围的函数&#xff1a;​编辑 二.map 2.1map介绍 2.2pair类型介绍 在map的i…

BEV数据集标注成本高?BEVPose:减少对标注数据依赖!

引言 本文提出了一个名为BEVPose的框架&#xff0c;通过利用自监督和传感器位姿信息&#xff0c;实现相机和激光雷达数据的多模态BEV表示对齐&#xff0c;显著减少了对标注数据的依赖。BEVPose在BEV地图分割任务中表现出色&#xff0c;能够超越全监督的方法&#xff0c;同时提升…

AI - 使用LangChain构建简单LLM应用程序

AI - 使用LangChain构建简单LLM应用程序 什么是LLM LLM&#xff08;Large Language Model&#xff0c;大型语言模型&#xff09;是一种由大量文本数据训练而成的深度学习模型&#xff0c;能够理解和生成自然语言。例如&#xff0c;GPT-3就是一种流行的LLM&#xff0c;可以用于…

linux shell脚本学习(1):shell脚本基本概念与操作

1.什么是shell脚本 linux系统中&#xff0c;shell脚本或称之为bash shell程序&#xff0c;通常是由vim编辑&#xff0c;由linux命令、bash shell指令、逻辑控制语句、注释信息组成的可执行文件 *linux中常以.sh后缀作为shell脚本的后缀。linux系统中文件乃至脚本的后缀并没有…

Linux云计算 |【第五阶段】CLOUD-DAY6

主要内容&#xff1a; 了解Kubernetes的架构、搭建Kubernetes集群 一、Kubernetes 概述 Kubernetes 这个名字来自希腊语&#xff0c;意思是“舵手”或“领航员”&#xff1b;K8S 是 Kubernetes 的缩写&#xff0c;其中“8”代表字母“ubernete”中的8个字母。Kubernetes 是由…

无人机之中继通信技术篇

一、定义与原理 无人机中继通信技术是指通过无人机搭载中继设备&#xff0c;将信号从一个地点传输到另一个地点&#xff0c;从而延长通信距离并保持较好的通信质量。其原理类似于传统的中继通信&#xff0c;即在两个终端站之间设置若干中继站&#xff0c;中继站将前站送来的信号…

【深度学习基础】深入理解 卷积与卷积核

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;深度学习_十二月的猫的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 1. 卷积 1.1 …

数字身份发展趋势前瞻:身份韧性与安全

身份韧性与安全是身份与访问管理IAM发展的重要趋势&#xff0c;身份既是防御者的盾牌&#xff0c;也是攻击者的目标。面对日益复杂的网络威胁和不断增长的身份盗窃风险&#xff0c;身份韧性与安全不仅仅涉及产品的防御能力&#xff0c;还包括应对突发事件、快速恢复的弹性和灵活…

QChart中柱形图的简单使用并实现【Qt】

预备工作 如果qt没下载去下载一个&#xff0c;下载太慢了可以试试它[点击跳转]  (https://blog.csdn.net/qq_19319481/article/details/131655379)。   如果已经下载了qt发现自己的组件中没有QCharts&#xff0c;可以去试试它点击跳转。 都搞定了以后在pro文件里面添加QT …

智能语音机器人智能在哪里?AI人工智能电话机器人部署

随着科技的不断进步&#xff0c;人工智能已经成为了我们生活中不可或缺的一部分。AI人工智能机器人电话正是其中的一种形式&#xff0c;可以帮助企业或组织更好地实现电话营销的目标&#xff0c;那么智能语音机器人智能在哪里?我们来看看&#xff1a; 智能语音机器人&#xf…

UI自动化测试 —— CSS元素定位实践!

前言 自动化测试元素定位是指在自动化测试过程中&#xff0c;通过特定的方法或策略来准确识别和定位页面上的元素&#xff0c;以便对这些元素进行进一步的操作或断言。这些元素可以是文本框、按钮、链接、图片等HTML页面上的任何可见或不可见的组件。 在自动化测试中&#xf…