跳转至

AirTalk

一、简介

作者:江访

  • 合宙对讲方案,是基于MQTT的传输方案,通过语音流,数据流来进行通信和控制。

  • 对讲采用AMR 对数据进行上下行编码,得益于AMR 的优良特性,传输消耗流量仅为1.6KB/s, 这样一小时仅消耗5.7MB 的流量

  • AirTalk 属于LuatOS 核心库

  • AirTalk 分为三部分,云,管,端。其中:

  1. 云,即指服务器端,主要处理逻辑为mqtt 消息转发
  2. 管,即管理平台,对终端进行增,删,改,查,对对讲流程进行控制
  3. 端,包含设备端(目前仅8000,780EHV支持),网页端

二、技术框架

image

三、业务框架

image

四、功能特性

  • 模块终端支持环境降噪

    支持环境降噪,可有效提升声音上传的清晰度

  • 支持WIFI,4G,以太网自动切换

    在复杂的网络环境下,多网自动切换,可以有效保证网络的畅通无阻

  • 模块终端支持对端回环消除

    支持对端回来的声音抵消,可以有效保证对端的声音不会被重新录进去,从而导致音质声音的回环往复

  • 支持终端对终端,设备对网页端对讲

    网页端既可以部署到手机端,也可以部署到电脑端,可以方便客户在多种环境下部署终端。

  • 支持群组内广播通信

    支持创建任意群组,以及在群组内的广播

  • 1.6KB/s 的低流量消耗

    上下行进行编码解码,有效降低数据量,以及弱网环境下的通信稳定性

  • 最快可做到0.2s 对讲时延迟

    高效的流式传输,高效的编解码,有效的减低讲话延迟

  • 支持流量电话(全双工对讲)

    可以像手机一样,有电话簿,通过对电话簿上的名称进行呼叫

  • 支持16位高清编码通话

    相对于手机电话的8位音频,AirTalk最高可以做16位编码,大大提高了声音的清晰度

  • 会根据实际网络环境自动优化编码

    设备管理后台会实时收集各个设备的网络状态,在拨号的适合匹配最合适的编码,做到网络好坏尽量不影响通信。

  • 可以通过平台观看设备在线数,以及位置等相关信息

    合宙后台会实时记录设备在线状态,同时展示位置等信息,方便客户实时掌握设备状态

五、使用方法

5.1 设备端设备购买

5.2 平台&网页端准备

若设备是通过线下采购,已经在交付的时候归属到相关iot账号名下,可直接查看5.2.3创建对讲群组

5.2.1 在合宙 iot 平台创建账户和项目

  1. 打开 https://iot.openluat.com/iot/project-list 网址,进行注册和登录
  2. 打开 IOT 页面
  3. 创建 项目

这里的 KEY 可用于 5.4.2 的项目绑定 注意:同一个项目下所有的设备,main.lua 文件中 PRODUCT_KEY 要保持一致

image

image

5.2.2 绑定设备到账户和项目

参考: 合宙的设备如何归属到自己账号名下

5.2.3 创建对讲群组(可通讯的最小集合)

5.2.3.1 登录对讲平台
  1. 打开 iot.luatos.com 网址
  2. 使用 1.1.2 iot 平台创建的账号密码登录
5.2.3.2 分配关联 iot 平台项目中的设备给客户

考虑到 airtalk 可能存在多级客户,所以需要对客户进行分配,如果无需分配,使用"默认 ID" 就可以.

image

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

image

5.2.3.3.2 登录 web 端网页,使用刚才注册的 web 端账号密码
5.2.3.3.3 查看 web ID 是否获取

web 端平台 https://airtalk.openluat.com/ 获取的"终端名称",已经显示在对讲平台中了

image

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

image

image

5.2.3.4.1 查看群组成员

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

image

5.3 硬件环境搭建

image

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

image

image

image

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

image

5.5 终端对讲界面操作

5.5.1 开机滑动到对讲按钮

image

5.5.2 打开对讲页面

image

可以通过"通讯录"来看群组的成员 使用"通讯录",选择需要对讲的单个设备 进入此 UI 就自动进入了对讲等待状态,一旦设备呼入,就会进行流量通话 使用"广播",对群组所有的设备进行广播

5.6 网页端操作

5.6.1 打开手机网页

打开:WEB 对讲网页

5.6.2 设置网页

image

使用"选择对讲终端",选择需要对讲的单个设备 使用"开始广播",对群组所有的设备进行广播

六、关于收费

6.1 服务边界

  1. 客户可以对一个账户下所有的设备进行自由分配
  2. 客户可以创建多级子客户
  3. 合宙页面可以创建群组
  4. 可以提供网页端的编解码库文件,方便集成到客户自己的管理平台(解决客户的管理页面需要直呼的需求)
  5. 原则上不支持客户定制需求,不接入人员支持
  6. 可对客户提供登录,获取设备列表,分配群组的 api 接口(解决客户需要给子客户进行群组分配的问题)

6.2 收费方式

  1. 通过 iot.openluat.com 来付费
  2. 默认单台设备 20 元/年 不限流量,阶梯价如下:
  1. 私有部署 单次部署,服务器,客户端,收费 20 万 后续维护费用 5 万/年
  2. 不限制单次接入台数

七、常见问题

  1. 如何确定音频是否工作

可以通过听喇叭端有没有滋滋的电流声确认

  1. 怎么判断是否开始上传音频

可以通过 UI 看到,"语音采集上传中",说明正在上传语音,如果没有这行字,或者出现"语音停止采集",则表示未上传音频