本 API 适用于 W70A/W70D 云喇叭设备。设备通过硬件云 APIv2 接入,开发者使用 app_idapp_secret 和设备序列号完成注册、语音播报、循环播报、播放状态查询、语音参数设置、上电播报、定时播报、设备信息查询、OTA 升级和解绑。W70A 和 W70D 使用 W70AIDF 固件能力,业务接口一致,主要差异是外壳和指示灯硬件。W70A/D 使用离线 TTS 芯片合成,基础播报接口兼容云喇叭常用字段,但数字读法、缓存刷新、分段步长等高级合成参数不会改变离线芯片合成效果。

app_id 和 app_secret 请登录 https://wdev.wmj.com.cn 获取。

点击下面的序号展开。

1.注册设备

简要描述

将 W70A/W70D 和 app_id、app_secret 绑定。注册成功后才能调用功能接口。

请求URL

https://wdev.wmj.com.cn/deviceApi/register

请求方式

POST

请求格式

json

参数

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}"
}

参数说明

参数名 必选 类型 取值范围 / 格式 说明
app_id string 平台分配 硬件云 app_id
app_secret string 平台分配 硬件云 app_secret
device_sn string W70A 或 W70D 设备序列号 设备序列号

返回示例

{
  "code": 0,
  "msg": "注册成功"
}
{
  "code": 1005,
  "msg": "设备已注册"
}
2.公共请求结构

简要描述

除注册、解绑外,功能接口统一调用发送指令接口,通过 data.cmd_type 区分具体功能。

请求URL

https://wdev.wmj.com.cn/deviceApi/send

请求方式

POST

请求格式

json

基础参数

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}",
  "type": 1,
  "data": {
    "cmd_type": "play",
    "info": {}
  }
}
参数名 必选 类型 取值范围 / 格式 说明
app_id string 平台分配 硬件云 app_id
app_secret string 平台分配 硬件云 app_secret
device_sn string W70A 或 W70D 设备序列号 设备序列号
type int 固定传 1 请求类型
data.cmd_type string 本文档列出的命令名 命令类型
data.info object JSON 对象 命令参数

通用返回

{
  "code": 0,
  "data": {
    "device_sn": "{{device_sn}}",
    "msg_id": 1,
    "type": 1,
    "cmd": "play",
    "info": {
      "err_code": 0,
      "code": 0,
      "msg": ""
    }
  }
}
参数名 类型 说明
code int 平台接口调用错误码,0 表示平台已受理
data.info.code int 设备业务错误码,0 表示成功
data.info.err_code int 兼容错误码,0 表示成功
data.info.msg string 设备返回消息
3.播放文本语音

简要描述

让设备通过离线 TTS 芯片播放一段文本,适合收款提醒、通知播报、告警播报等场景。

请求URL

https://wdev.wmj.com.cn/deviceApi/send

请求方式

POST

请求格式

json

参数

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}",
  "type": 1,
  "data": {
    "cmd_type": "play",
    "info": {
      "tts": "欢迎使用云喇叭",
      "volume": 5,
      "speaker": "prompt_female_high",
      "speed": 1.0
    }
  }
}

参数说明

参数名 必选 类型 取值范围 / 格式 默认值 说明
data.cmd_type string play,兼容 play_adpcm - 文本播放命令
data.info.tts string 建议 1-2048 字 - 播放文本,兼容字段 text
data.info.volume int 0-9,也兼容 10-100 自动换算 设备默认 本次播放音量;0 或不传表示使用设备默认音量
data.info.speaker string/int prompt_female_high / prompt_kunkun / 0 / 1 设备默认 离线芯片发音人,女声映射为 0,男声映射为 1
data.info.speed number 0-90.1-2.0 倍率 设备默认 离线芯片语速,倍率会换算到 0-9 档

返回示例

{
  "code": 0,
  "data": {
    "device_sn": "{{device_sn}}",
    "cmd": "play",
    "info": {
      "code": 0,
      "err_code": 0,
      "msg": "TTS started",
      "volume_arg": 5
    }
  }
}
4.查询播放状态

简要描述

查询设备当前播放、循环播放和语音链路状态。

请求URL

https://wdev.wmj.com.cn/deviceApi/send

请求方式

POST

请求格式

json

参数

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}",
  "type": 1,
  "data": {
    "cmd_type": "get_play_status",
    "info": {}
  }
}

返回示例

{
  "code": 0,
  "data": {
    "device_sn": "{{device_sn}}",
    "cmd": "get_play_status",
    "info": {
      "code": 0,
      "err_code": 0,
      "msg": "",
      "is_playing": false,
      "is_loop_playing": false,
      "is_live_talk": false,
      "volume": 5,
      "last_error": ""
    }
  }
}
5.循环播报

简要描述

让设备按固定间隔循环播报文本。适用于持续提醒、异常告警等场景。

请求URL

https://wdev.wmj.com.cn/deviceApi/send

请求方式

POST

请求格式

json

开始循环播报

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}",
  "type": 1,
  "data": {
    "cmd_type": "loop_play",
    "info": {
      "tts": "设备异常,请及时处理",
      "interval": 10,
      "volume": 5,
      "speaker": "prompt_female_high",
      "speed": 1.0
    }
  }
}

停止循环播报

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}",
  "type": 1,
  "data": {
    "cmd_type": "loop_stop",
    "info": {}
  }
}

参数说明

参数名 必选 类型 取值范围 / 格式 默认值 说明
data.cmd_type string loop_play / loop_stop - 循环播报命令
data.info.tts loop_play 必填 string 建议 1-2048 字 - 循环播报文本,兼容字段 text
data.info.interval int 秒,建议大于单次语音时长 5 循环间隔
data.info.volume int 0-9,也兼容 10-100 自动换算 设备默认 播报音量
data.info.speaker string/int prompt_female_high / prompt_kunkun / 0 / 1 设备默认 离线芯片发音人
data.info.speed number 0-90.1-2.0 倍率 设备默认 离线芯片语速
6.停止当前播放

简要描述

停止当前正在播放的语音。

请求URL

https://wdev.wmj.com.cn/deviceApi/send

请求方式

POST

请求格式

json

参数

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}",
  "type": 1,
  "data": {
    "cmd_type": "stop_play",
    "info": {}
  }
}
7.设置语音和上电播报

简要描述

设置设备默认音量、发音人、语速、语调和上电播报。设置后会持久保存。

请求URL

https://wdev.wmj.com.cn/deviceApi/send

请求方式

POST

请求格式

json

参数

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}",
  "type": 1,
  "data": {
    "cmd_type": "setting",
    "info": {
      "volume": 5,
      "volume_percent": 50,
      "speaker": 4,
      "speed": 5,
      "tone": 5,
      "pwr_on_enabled": 1,
      "pwr_on_text": "欢迎使用云喇叭",
      "pwr_on_delay": 3,
      "pwr_on_volume": 5,
      "pwr_on_repeat": 1
    }
  }
}

参数说明

参数名 必选 类型 取值范围 / 格式 默认值 说明
data.cmd_type string setting - 设置命令
data.info.volume int 0-9 设备当前值 默认音量档位
data.info.volume_percent int 0-100 设备当前值 默认音量百分比,设备会换算到离线芯片音量档位
data.info.speaker int 0 / 1 设备当前值 默认发音人编号,0 女声,1 男声
data.info.speed int 0-9 设备当前值 离线芯片默认语速
data.info.tone int 0-9 设备当前值 默认语调
data.info.pwr_on_enabled int/bool 0 / 1 设备当前值 是否启用上电播报
data.info.pwr_on_text string 建议 1-540 字节 设备当前值 上电播报文本;超长会返回 413
data.info.pwr_on_delay int 0-3600 0 上电后延迟播报时间
data.info.pwr_on_volume int 1-100-100 设备当前值 上电播报音量
data.info.pwr_on_repeat int 1-10 1 上电播报重复次数
8.查询设备信息

简要描述

查询设备版本、网络状态、语音参数、上电播报、播放状态、定时播报和 OTA 状态。公开文档不展示设备接入密钥、管理密码、默认云接入参数等内部字段。

请求URL

https://wdev.wmj.com.cn/deviceApi/send

请求方式

POST

请求格式

json

参数

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}",
  "type": 1,
  "data": {
    "cmd_type": "getdevinfo",
    "info": {}
  }
}

返回示例

{
  "code": 0,
  "data": {
    "device_sn": "{{device_sn}}",
    "cmd": "getdevinfo",
    "info": {
      "sw_ver": "70.4.33",
      "hw_ver": "1.0.0",
      "project": "W70A_CPP / W70D_CPP",
      "net_type": "wifi",
      "iccid": "{{ssid_or_empty}}",
      "imei": "AA:BB:CC:DD:EE:FF",
      "speaker": 4,
      "volume": 5,
      "volume_percent": 50,
      "speed": 5,
      "tone": 5,
      "pwr_on_enabled": 1,
      "pwr_on_text": "欢迎使用云喇叭",
      "pwr_on_delay": 3,
      "pwr_on_volume": 5,
      "pwr_on_repeat": 1,
      "is_playing": false,
      "is_loop_playing": false,
      "schedule_enabled_count": 1,
      "schedule_total_count": 20,
      "time_synced": true,
      "free_heap": 120000,
      "code": 0,
      "err_code": 0,
      "msg": ""
    }
  }
}

返回字段说明

字段 类型 说明
sw_ver string 软件版本
hw_ver string 硬件版本
project string 项目标识
net_type string 网络类型
iccid string WiFi SSID 或内部网络标识
imei string 设备网络 MAC 标识
speaker int 当前默认发音人编号
volume int 当前默认音量兼容档位
volume_percent int 当前默认音量百分比
speed int 当前默认语速
tone int 当前默认语调
pwr_on_enabled int 是否启用上电播报
pwr_on_text string 上电播报文本
pwr_on_delay int 上电播报延迟
pwr_on_volume int 上电播报音量
pwr_on_repeat int 上电播报重复次数
is_playing bool 当前是否正在播放
is_loop_playing bool 当前是否循环播放
schedule_enabled_count int 已启用定时播报数量
schedule_total_count int 定时播报槽位总数
time_synced bool 设备时间是否已同步
free_heap int 设备剩余内存,单位字节
9.设置定时播报

简要描述

设置单个定时播报任务。设备最多支持 20 组任务,时间以设备本地时区为准。

请求URL

https://wdev.wmj.com.cn/deviceApi/send

请求方式

POST

请求格式

json

参数

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}",
  "type": 1,
  "data": {
    "cmd_type": "set_tts_schedule",
    "info": {
      "index": 0,
      "enabled": true,
      "hour": 9,
      "minute": 30,
      "weekdays": 62,
      "tts_text": "请及时处理待办事项",
      "speaker": "prompt_female_high",
      "speed": 1.0,
      "repeat_count": 3
    }
  }
}

参数说明

参数名 必选 类型 取值范围 / 格式 默认值 说明
data.cmd_type string set_tts_schedule - 设置单个任务
data.info.index int 0-19 - 定时任务序号
data.info.enabled bool true / false false 是否启用
data.info.hour int 0-23 0 播报小时
data.info.minute int 0-59 0 播报分钟
data.info.weekdays int 1-127 127 星期掩码,bit0 周日,bit1 周一,依次到 bit6 周六;127 表示每天
data.info.tts_text string 建议 1-2048 字 播报文本,兼容字段 text
data.info.speaker string/int prompt_female_high / prompt_kunkun / 0 / 1 prompt_female_high 离线芯片发音人
data.info.speed number 0-90.1-2.0 倍率 1.0 离线芯片语速
data.info.repeat_count int 1-10 3 触发后重复播报次数

weekdays 示例

取值 含义
127 每天
62 周一到周五
65 周六和周日
10.批量设置定时播报

简要描述

一次性设置多组定时播报任务。schedules 数组最多 20 项,数组下标对应任务序号。

请求URL

https://wdev.wmj.com.cn/deviceApi/send

请求方式

POST

请求格式

json

参数

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}",
  "type": 1,
  "data": {
    "cmd_type": "set_tts_schedules",
    "info": {
      "schedules": [
        {
          "index": 0,
          "enabled": true,
          "hour": 9,
          "minute": 0,
          "weekdays": 127,
          "tts_text": "早上好",
          "speaker": "prompt_female_high",
          "speed": 1.0,
          "repeat_count": 1
        }
      ]
    }
  }
}

参数说明

参数名 必选 类型 取值范围 / 格式 说明
data.cmd_type string set_tts_schedules 批量设置任务
data.info.schedules array 最多 20 项 定时任务数组
11.查询定时播报

简要描述

查询设备当前保存的定时播报任务、设备当前时间和时间同步状态。

请求URL

https://wdev.wmj.com.cn/deviceApi/send

请求方式

POST

请求格式

json

参数

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}",
  "type": 1,
  "data": {
    "cmd_type": "get_tts_schedules",
    "info": {}
  }
}

返回字段说明

字段 类型 说明
schedules array 定时任务列表
current_time string 设备当前时间,格式 YYYY-MM-DD HH:mm:ss
weekday int 当前星期,0 周日,1 周一,依次到 6 周六
time_synced bool 是否已同步网络时间
12.清除定时播报

简要描述

清除单个或全部定时播报任务。

请求URL

https://wdev.wmj.com.cn/deviceApi/send

请求方式

POST

请求格式

json

清除单个任务

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}",
  "type": 1,
  "data": {
    "cmd_type": "clear_tts_schedule",
    "info": {
      "index": 0
    }
  }
}

清除全部任务

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}",
  "type": 1,
  "data": {
    "cmd_type": "clear_all_tts_schedules",
    "info": {}
  }
}
13.音频资源升级

简要描述

检查并更新设备本地音频资源。一般仅在设备提示音资源需要升级时使用。

请求URL

https://wdev.wmj.com.cn/deviceApi/send

请求方式

POST

请求格式

json

参数

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}",
  "type": 1,
  "data": {
    "cmd_type": "audio_ota",
    "info": {
      "force": false
    }
  }
}

参数说明

参数名 必选 类型 取值范围 / 格式 说明
data.cmd_type string audio_ota 音频资源升级命令
data.info.force bool true / false 是否强制检查更新
14.重启和恢复

重启设备

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}",
  "type": 1,
  "data": {
    "cmd_type": "restart",
    "info": {}
  }
}

恢复设备配置

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}",
  "type": 1,
  "data": {
    "cmd_type": "reset",
    "info": {}
  }
}

参数说明

参数名 必选 类型 取值范围 / 格式 说明
data.cmd_type string restart / reset 重启设备或恢复设备配置
15.OTA 升级

简要描述

让设备下载指定 OTA 固件并升级。OTA 文件 URL 需要设备网络可直接访问。

请求URL

https://wdev.wmj.com.cn/deviceApi/send

请求方式

POST

请求格式

json

参数

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}",
  "type": 1,
  "data": {
    "cmd_type": "set_ota",
    "info": {
      "hw_ver": "1.0.0",
      "sw_ver": "70.4.33",
      "url": "https://example.com/ota/W70A_CPP_V70.4.34.bin"
    }
  }
}

参数说明

参数名 必选 类型 取值范围 / 格式 说明
data.cmd_type string set_ota OTA 命令
data.info.hw_ver string 设备硬件版本 必须和设备硬件版本一致
data.info.sw_ver string 大于当前版本 目标软件版本
data.info.url string HTTP/HTTPS URL OTA 固件地址,请使用平台发布的正式升级包
16.回调与上报

简要描述

设备在上线、指令执行完成、播放状态变化或门磁/按键状态变化时,通过硬件云返回或上报数据。业务系统应按 device_sncmdmsg_id 做幂等处理。

播放完成上报示例

{
  "device_sn": "{{device_sn}}",
  "type": 2,
  "cmd_type": "tts_complete",
  "info": {
    "status": "success",
    "timestamp": 123456
  }
}

状态上报示例

{
  "device_sn": "{{device_sn}}",
  "type": 2,
  "cmd_type": "exitopened",
  "info": {
    "status": 0
  }
}
17.查询在线状态

请求URL

https://wdev.wmj.com.cn/deviceApi/getOnLine

请求方式

POST

请求格式

json

参数

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}"
}

返回示例

{
  "code": 0,
  "data": {
    "on_line": 1
  },
  "msg": "查询成功"
}
18.常见问题

播放没有声音

先调用 getdevinfoget_play_status 确认音量不是 0,再调用 setting 设置 volumevolume_percent。W70A/D 使用离线芯片合成,音量最终会换算到芯片支持的 0-9 档。

数字读法不符合预期

W70A/D 为离线芯片合成,number_moderefresh_cachenum_step 等高级合成参数仅做接口兼容,不保证改变离线芯片读法。需要严格控制数字读法时,建议业务侧把播报文本处理成期望读法后下发。

定时播报没有触发

先调用 get_tts_schedules 查看 time_synced 是否为 true,并确认 weekdayshourminute 与设备当前时间匹配。

19.解绑设备

简要描述

解除设备与 app_id、app_secret 的绑定。解绑后该应用不能继续控制设备。

请求URL

https://wdev.wmj.com.cn/deviceApi/logout

请求方式

POST

请求格式

json

参数

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}"
}

返回示例

{
  "code": 0,
  "msg": "解绑成功"
}
更新日志
日期 内容
2026-06-25 按 W70AIDF 离线 TTS 芯片能力重整 W70A/W70D APIv2 文档,移除默认云接入配置和管理密码类字段,仅保留公开业务接口
作者:极客师傅  创建时间:2026-06-25 01:29
最后编辑:极客师傅  更新时间:2026-06-25 01:53