AirTalk
一、简介
作者:江访
-
合宙对讲方案,是基于MQTT的传输方案,通过语音流,数据流来进行通信和控制。
-
对讲采用AMR 对数据进行上下行编码,得益于AMR 的优良特性,传输消耗流量仅为1.6KB/s, 这样一小时仅消耗5.7MB 的流量
-
AirTalk 属于LuatOS 核心库
-
AirTalk 分为三部分,云,管,端。其中:
- 云,即指服务器端,主要处理逻辑为mqtt 消息转发
- 管,即管理平台,对终端进行增,删,改,查,对对讲流程进行控制
- 端,包含设备端(目前仅8000,780EHV支持),网页端
二、技术框架

三、业务框架

四、功能特性
- 模块终端支持环境降噪
支持环境降噪,可有效提升声音上传的清晰度
- 支持WIFI,4G,以太网自动切换
在复杂的网络环境下,多网自动切换,可以有效保证网络的畅通无阻
- 模块终端支持对端回环消除
支持对端回来的声音抵消,可以有效保证对端的声音不会被重新录进去,从而导致音质声音的回环往复
- 支持终端对终端,设备对网页端对讲
网页端既可以部署到手机端,也可以部署到电脑端,可以方便客户在多种环境下部署终端。
- 支持群组内广播通信
支持创建任意群组,以及在群组内的广播
- 1.6KB/s 的低流量消耗
上下行进行编码解码,有效降低数据量,以及弱网环境下的通信稳定性
- 最快可做到0.2s 对讲时延迟
高效的流式传输,高效的编解码,有效的减低讲话延迟
- 支持流量电话(全双工对讲)
可以像手机一样,有电话簿,通过对电话簿上的名称进行呼叫
- 支持16位高清编码通话
相对于手机电话的8位音频,AirTalk最高可以做16位编码,大大提高了声音的清晰度
- 会根据实际网络环境自动优化编码
设备管理后台会实时收集各个设备的网络状态,在拨号的适合匹配最合适的编码,做到网络好坏尽量不影响通信。
- 可以通过平台观看设备在线数,以及位置等相关信息
合宙后台会实时记录设备在线状态,同时展示位置等信息,方便客户实时掌握设备状态
五、使用方法
5.1 设备端设备购买
- 地址:AirTalk 全双工对讲体验套餐
- 如果需要进行端对端测试,需要购买两个开发板
5.2 平台&网页端准备
若设备是通过线下采购,已经在交付的时候归属到相关iot账号名下,可直接查看5.2.3创建对讲群组
5.2.1 在合宙 iot 平台创建账户和项目
- 打开 https://iot.openluat.com/iot/project-list 网址,进行注册和登录
- 打开 IOT 页面
- 创建 项目
这里的 KEY 可用于 5.4.2 的项目绑定 注意:同一个项目下所有的设备,main.lua 文件中 PRODUCT_KEY 要保持一致


5.2.2 绑定设备到账户和项目
参考: 合宙的设备如何归属到自己账号名下
5.2.3 创建对讲群组(可通讯的最小集合)
5.2.3.1 登录对讲平台
- 打开 iot.luatos.com 网址
- 使用 1.1.2 iot 平台创建的账号密码登录
5.2.3.2 分配关联 iot 平台项目中的设备给客户
考虑到 airtalk 可能存在多级客户,所以需要对客户进行分配,如果无需分配,使用"默认 ID" 就可以.

5.2.3.3 创建和生成 WEB 端对讲账户
5.2.3.3.1 创建 WEB 端对讲账户
- 设置 web 端对讲的账户(可用来发起,或者接收对讲语音)
- 确认是否创建完成

5.2.3.3.2 登录 web 端网页,使用刚才注册的 web 端账号密码
5.2.3.3.3 查看 web ID 是否获取
web 端平台 https://airtalk.openluat.com/ 获取的"终端名称",已经显示在对讲平台中了

5.2.3.4 创建群组
- 选择创建群组按钮,创建群组名称
- 将需要的设设备转移到右侧
- web 端的 ID 也可以加入群组


5.2.3.4.1 查看群组成员
注意:只有群组成员,才可以相互通话,以及广播

5.3 硬件环境搭建

5.4 下载测试脚本和 CORE
5.4.1 选择 CORE 和脚本
CORE: LuatOS-SoC_V2018_Air8000_4.soc 注意:使用4号固件 Air8000最新固件及说明
5.4.2 修改项目 KEY:
打开项目的 main.lua 填入对应项目 KEY,并保存到 PRODUCT_KEY 变量中 如果使用的是 Air780EHV 需要将 extalk.lua 内["device_type"] = 1 代码修改为["device_type"] = 2



5.4.3 将固件下载到开发板中:

5.5 终端对讲界面操作
5.5.1 开机滑动到对讲按钮

5.5.2 打开对讲页面

可以通过"通讯录"来看群组的成员 使用"通讯录",选择需要对讲的单个设备 进入此 UI 就自动进入了对讲等待状态,一旦设备呼入,就会进行流量通话 使用"广播",对群组所有的设备进行广播
5.6 网页端操作
5.6.1 打开手机网页
打开:WEB 对讲网页
5.6.2 设置网页

使用"选择对讲终端",选择需要对讲的单个设备 使用"开始广播",对群组所有的设备进行广播
六、关于收费
6.1 服务边界
- 客户可以对一个账户下所有的设备进行自由分配
- 客户可以创建多级子客户
- 合宙页面可以创建群组
- 可以提供网页端的编解码库文件,方便集成到客户自己的管理平台(解决客户的管理页面需要直呼的需求)
- 原则上不支持客户定制需求,不接入人员支持
- 可对客户提供登录,获取设备列表,分配群组的 api 接口(解决客户需要给子客户进行群组分配的问题)
6.2 收费方式
- 通过 iot.openluat.com 来付费
- 默认单台设备 20 元/年 不限流量,阶梯价如下:
- 私有部署 单次部署,服务器,客户端,收费 20 万 后续维护费用 5 万/年
- 不限制单次接入台数
七、常见问题
- 如何确定音频是否工作
可以通过听喇叭端有没有滋滋的电流声确认
- 怎么判断是否开始上传音频
可以通过 UI 看到,"语音采集上传中",说明正在上传语音,如果没有这行字,或者出现"语音停止采集",则表示未上传音频