# 蓝小飞智能底座开发者模式指引
# 说明
为了使开发者可以在音箱上运行自己开发的应用,以完成更高级的音箱定制功能,iFLYOS 提供了蓝小飞智能底座极客版音箱。
如按照此指引操作,且查看了相关文档后,开发过程中仍遇到接入问题,可以通过iFLYOS工单或论坛咨询,我们会在12小时内响应回复。
iFLYOS工单:http://support.iflyos.cn/hc/request/new/ (opens new window)
iFLYOS论坛:http://support.iflyos.cn/hc/community/topic/ (opens new window)
如需更高效的技术支持,可选择购买为期2个月的 iFLYOS 技术支持包 (opens new window),购买了技术支持包的用户,可享受以下服务:
- 开通工单绿色通道;
- 问题咨询2小时内回复响应;
- VIP技术支持,优先回复解决开发中遇到的接入问题;
- 开通新需求评估通道,2个工作日内回复评估结论;
# 前期准备
# 了解iFLYOS设备接入
在进行二次开发之前,建议你先了解一下iFLYOS设备接入,避免因不了解系统造成设备不可用。
iFLYOS官网地址:https://www.iflyos.cn/ (opens new window)
iFLYOS设备接入参考文档:https://doc.iflyos.cn/device/ (opens new window)
# 在设备接入控制台创建一个设备
步骤参考: https://doc.iflyos.cn/device/console.html (opens new window)
注意
创建产品类型时,建议选择EVS网络协议,以便获得更多能力;
为了保证你的设备在小飞在线 App (opens new window)中可正常添加和配网,请确保:
a)在【设备控制台-设备能力】中开启蓝牙配网。
b)在【设备控制台-设备测试】中配置手机号白名单。
# 温馨提示
在使用开发者模式之前,请确认已知晓以下事项:
【升级固件】为保证能够使用我们最新的功能和更稳定的体验,请将音箱OTA更新至最新固件版本。更新方式为配网后重启音箱,重启后等待25分钟再重启,开机过程提示“正在升级”等待即可。
进入过开发者模式并更改了
clientId
的设备,除了硬件问题将不享受其他保修服务。由于音乐服务与设备的
clientId
和deviceId
挂钩,修改clientId
后的音箱将无法使用该音箱自带的一年免费音乐服务。iFLYOS 的极客版音箱皆固件采用了在线更新能力,每天定时检查并自动更新。当你需要使用开发者模式,我们建议你更改
clientId
,以免在线更新覆盖了你的开发成果。注意:更改clientid可能导致无法进行保修,所以请谨慎使用开发者模式。
# 进入开发者模式
- 将音箱的电源线USB口插至电脑,等待音箱开机启动。建议使用一个独立供电,并且电流在1.5A 以上的USB HUB 接入,避免出现供电不足导致的不稳定现象。
- 最新版固件已默认开启开发者模式,升级至最新固件即可体验;
# 可以做什么
通过开发者模式,你可以使用 adb
(opens new window) 执行 adb shell
命令连接到音箱。连接成功后,你可以做这些事情。
# 更换配置文件
配置文件名为
iFLYOS.json
,可通过以下命令,将取配置文件拉取到本地。adb pull /iflyos/iFLYOS.json <保存本地路径>
iFLYOS.json 示例
{ "playerBin":"/iflyos/bin/RMediaPlayer", "deviceID": "", "clientID": "01234567-89ab-cdef-0123-456789abcdef", //更换主程序使用的 clientId "clientSecret": "01234567-89ab-cdef-0123-456789abcdef", //更换主程序使用的 clientSecret "ivsLog": "DEBUG2", "caeResPath": "/iflyos/caeResFile.jet", "dbPath":"/data", "bleName": "iflyOS-a01", "soundDir": "/iflyos/sound_effect", "preKill": ["btgatt-server", "RMediaPlayer"] }
参数 说明 deviceID 设备的唯一ID,每个设备具备不同的deviceId,此ID用于OS的鉴权,请勿更改或填写任何值。如有出货需求可通过平台 (opens new window)选择您的设备解决方案,并填写您的联系方式,我们商务同事会联系您。 clientID 更新主程序的clientID,从设备接入平台 (opens new window)中获取 clientSecret 更新主程序的clientSecret,从设备接入平台 (opens new window)中获取 完成修改后,可通过以下命令, 将修改后的配置文件推送至设备目录。
adb push <配置文件路径> /iflyos/
然后执行adb shell sync
命令即可生效,注意 iFLYOS.json
文件不要存放在有中文目录路径下,否则有可能会导致 adb push
失效。
- 更换配置文件后,系统会优先应用配置文件中的参数,此时原有的授权信息会失效,需要重新授权绑定音箱。
注意
- 尽管音箱通过配置文件中的相关参数来连接到EVS,但是 OTA 检查更新服务不会去检查你自定义的
clientId
对应的 OTA 后台中的包更新。 - 更换client_id完成,设备重启后,你需要为设备重新配置网络。在小飞在线 App (opens new window)中添加设备,选择相应产品,按照APP流程指引为音箱配置一个可用的 WLAN 网络。即可通过蓝小飞智能底座体验你自己创建的设备的相关功能。
# 将自己的设备加入白名单
当你更改成自己的ClientID后,需要在设备管理后台的“产品发布 - 设备ID”选项添加白名单,设备才能完成鉴权操作。执行以下命令即可查询设备DeviceID,将查询到的ID添加至后台即可。
grep xor /data/evs.log
# 更换自定义唤醒词
在蓝小飞智能底座中,我们支持了自定义唤醒词的更换。
# 生成唤醒词资源
请访问自定义唤醒词平台 (opens new window)选择“平台通用唤醒词”生成你的专属唤醒词,后续只需在设备手动替换即可。
# 备份原唤醒词资源
为防止操作失误,导致后续无法唤醒,建议先将官方唤醒词备份至本地,通过adb
连接音箱后,执行
adb pull /iflyos/caeResFile.jet <保存本地路径>
即可将机器的唤醒资源备份到本地。
# 替换唤醒词资源
通过 adb
连接到音箱后,在下载好的唤醒词资源目录下执行
adb push <资源文件路径> /iflyos/caeResFile.jet
替换完成后,执行adb shell sync
命令再重启音箱即可。
# 恢复设备默认唤醒词
通过 adb
连接到音箱后,在备份好的唤醒词资源目录下执行
adb push <资源文件路径> /iflyos/caeResFile.jet
替换完成后,执行adb shell sync
命令再重启音箱即可。
# 更换唤醒词后注意事项
蓝小飞智能底座可作为IP结合产品,本极客版产品不搭配任何IP人偶,顶部磁片仅作为功能展示。将磁片放置在蓝小飞智能底座上,将会优先使用另一唤醒词“小飞小飞”。如果开发者已手动更换唤醒词,需拿下磁片才能体验更新后的默认唤醒词。
从产品设计上,蓝小飞智能底座可以通过更换磁片(玩偶)输出对应的IP内容、定制唤醒词、对话人格、隐藏技能等。此能力无法通过开发者模式进行更改,有意向进行IP合作的用户/客户可以通过iFLYOS官网 (opens new window)联系商务进行洽谈。
# 更换开机欢迎音效
你可以在 TTS合成页面 (opens new window) 选择对应的发音人,生成专属开机欢迎语,下载的音频只需push至设备的/iflyos/sound_effect/tts_state_is_ready.mp3
目录下即可,完成替换后需执行adb shell sync
命令生效。
# 音效对应说明表
说明 | 英文名称 |
---|---|
调整音量 | sound_effect_ui_volume |
闹钟 | sound_effect_ui_alerts |
开机 | sound_effect_ui_boot |
唤醒 | sound_effect_ui_wakesound |
关机 | sound_effect_ui_shut_down |
无法识别,请重新放置人偶 | tts_state_adam_disconnected |
蓝牙已连接 | tts_state_bluetooth_connected |
蓝牙已断开 | tts_state_bluetooth_disconnected |
等待蓝牙连接 | tts_state_bluetooth_in_preparation |
蓝牙已打开 | tts_state_bluetooth_on |
进入工厂模式 | tts_state_factory_mode_on |
欢迎使用 | tts_state_is_ready |
麦克风已禁用 | tts_state_microphone_off |
麦克风已打开 | tts_state_microphone_on |
已退出网络配置模式 | tts_state_network_mode_off |
进入网络配置模式,请打开APP按照流程指引设置网络 | tts_state_network_mode_on |
恢复出厂设置 | tts_state_reset |
固件升级中1 | tts_state_upgrading |
升级成功 | tts_state_upgraded |
我还在开机,请稍后再唤醒我吧 | tts_system_boot_in_preparation |
我已联网,你可以对我说:来点音乐 | tts_system_network_connected |
收到密码,正在努力联网 | tts_system_network_connecting |
已失去网络连接,请打开APP检查网络配置 | tts_system_network_disconnected |
网络配置失败,请重试 | tts_system_network_fail_1 |
网络好像有点问题,休息下再试试吧 | tts_system_network_fail_2 |
网络好像出了点问题,检测下网络吧 | tts_system_network_fail_3 |
联网失败,请确认WiFi是否可用 | tts_system_network_fail_4 |
联网超时,请重试 | tts_system_network_fail_5 |
开始联网,请耐心等待 | tts_system_network_in_preparation |
网络有点问题,请稍后重试 | tts_system_network_retry |
WiFi密码不对 | tts_system_network_wrong_password |
我正在准备,请稍等一下 | tts_system_service_in_preparation |
登录状态失效,请打开APP重新登录 | tts_system_token_fail |
# RAW音效替换
部分音效为raw格式音频,可通过ffmpeg将要替换的音频文件转换为raw格式,命令参数如下:
ffmpeg -i <input> -ac 1 -f s16le -ar 16000 -acodec pcm_s16le <output>
# 退出开发者模式
重启音箱后即恢复正常模式。
最简易的方式,通过断电重连即可重启音箱。另,在 adb
已连接的情况下,通过调用 adb reboot
可以触发设备的重启。
# 常见问题
# 授权时显示无效应用
解决方法: 请确定以下事项:
- 请在设备接入控制台-设备详情-设备能力处,已打开蓝牙配网;
- 请在设备接入控制台-测试调试处,在白名单中输入用于登录小飞在线的手机号。
# 蓝牙配网时无法配网成功
解决方法:请在设备接入控制台-设备详情-设备能力处,打开蓝牙配网。