方案介绍
本文主要介绍离在线方案运行逻辑,帮助开发者快速理解方案架构。阅读本文后,你将了解到:
1.了解方案架构,对方案建立基础认知;
2.熟悉方案交互链路中各环节工作机制以及重要概念。
#
1.概述离在线标准方案是基于聆思自研 AI 语音芯片 CSK ,结合 WiFi SOC (以下简称上位机) 以及云端语音操作系统 iFLYOS 打造的云端芯一体化解决方案。产品可基于该方案实现离线+在线语音交互,在线时 iFLYOS 丰富的语音技能与线上资源可满足用户绝大多数的语音交互场景;离线时可与产品自有 MCU 打通,实现本地语音控制;相较于离线语音语音交互,离在线方案支持更灵活的说法,使用场景更广。
#
2.方案链路说明下图详细描述了离在线方案各个环节的运行机制,开发者可通过该流程图,快速了解方案整体运行逻辑。
#
2.1.CSK音频处理设备端音频处理链路如下图所示,麦克风拾取人声后,将原始音频送至 ADC 。ADC 将模拟信号转换为数字信号后的音频传送至 CSK 芯片做前端声学处理,经过处理后将输出8路音频。
本地识别
CSK 选取经过前端声学处理后的两路音频 e_lisa_csk_record_channel_cae1
、e_lisa_csk_record_channel_cae2
用于本地识别。如果用户语料被识别为本地命令词,CSK 可通过 UART 发送指令给上位机,实现业务逻辑。
传音频至上位机
在本地识别的同时,CSK 还会将4路音频传送至上位机,分别是 e_lisa_csk_record_channel_mic1
(mic1的数据)、e_lisa_csk_record_channel_mic2
(mic2的数据)、e_lisa_csk_record_channel_ref1
(参考音频)、e_lisa_csk_record_channel_cloud_asr
(送云端的音频),再由上位机将音频上传至云端完成在线语义理解。音频传输配置可参考
#
2.2.CSK与上位机的通讯音频传输
CSK 可通过 I2S 或 UAC 协议将音频传递至上位机。
指令传输
如果用户的语料命中本地命令词,CSK 可通过 UART 将事先约定好的指令发送至上位机 。具体串口指令可参考《 CSK 标准 UART 串口通信文档》。
OTA
上位机检测到云端有可用 CSK 更新后,可通过串口指令查询 CSK 当前固件版本;若本地版本小于云端版本,则上位机从云端下载更新,并将更新包通过串口协议发送给 CSK,由 CSK 自行完成固件更新。关于 OTA 的详细业务流程,后续将更新文档详细说明。
心跳机制
为确保 CSK 持续处于工作状态,聆思在 CSK 与上位机之间增加心跳机制,若 CSK 一段时间内未向上位机上报心跳,上位机将重新拉起 CSK。 关于心跳功能,可参考《 CSK 标准 UART 串口通信文档》。
#
2.3.上位机离在线方案中的上位机,是指拥有连接互联网能力的 WiFi SOC。在整个方案中上位机会作为主处理器,处理各种业务逻辑。
对接云端
通过 AP 、BLE 等方式成功连接互联网,并通过 Websocket 与 iFLYOS 云保持通讯。
EVS 设备端实现
以 EVS 协议为基础,实现设备端业务逻辑。包括语音识别器、音频播放器、闹钟、扬声器控制等,具体参考 LSCloud 中对应的上位机源码。为了保证更好的用户体验,聆思还实现了比较复杂的设备逻辑(如焦点管理等),具体可参考《 EVS设备体验参考规范 》。
音频播放
与离线语音方案不同,离在线方案
硬件交互
包括灯光、按键等设备外设表现控制。
#
2.4.云—端通讯云端与设备端通过 EVS (Embedded iFLYOS Voice Service)协议连接,协议采用 websocket 进行通讯。在整个交互过程中,设备发送到服务端的指令称为请求( Request ),设备接收到服务端的指令称为响应( Response )。
点击此处,快速了解 EVS 协议。
#
2.5.iFLYOS云iFLYOS 是一款基于人机智能交互技术开放的语音技术服务操作系统,全链路聚合了语音唤醒、语音识别、语义理解、内容(信源)平台、语音合成等单点能力。此外,iFLYOS 拥有200+技能与千万级音视频资源。
点击此处,快速了解 iFLYOS 接入步骤。
#
2.6.第三方云#
2.6.1.自定义语义若 iFLYOS 的技能与信源无法满足开发者,需要通过第三方云端实现个性化需求。或开发者有自己的语义理解服务。可在 iFLYOS 技能工作室创建自定义技能,完成 iFLYOS 与第三方云端的云云对接。
#
2.6.2 .IOT 云若开发者有自己的 IOT 云,希望用户能够语音控制自家 IOT 设备的同时,也可控制接入 iFLYOS 的其他品牌设备。开发者可通过接入 iFLYOS 智能家居控制服务实现需求。
若开发者有自己的 IOT 云,希望当用户说智能家居控制语料时,能够调用自己的 IOT 云而非 iFLYOS 官方 IOT 云。可创建自定义技能,编写智能家居相关的意图语料,以及后处理。待技能开发、调试完成后,再将技能配置在 iFLYOS 的前拦截器上,即可实现需求。
#
2.7.设备 MCU家电产品通常会自带一颗用于设备控制的 MCU,当用户语料命中特定离线命令词或云端语义后,上位机可通过 UART 发送事先约定好的指令给 MCU,从而通过语音实现本地控制 。