跳转至

Air1103 AI 语音芯片产品手册

作者:拓毅恒 | 最后修改:2026-09-28

1 产品概述

你需要一颗"自带麦克风、喇叭和 AI 语音算法,主控只用一根串口就能说话"的语音芯片吗?

Air1103 是合宙推出的串口 AI 语音芯片,广泛适用于智能家电、智能照明、玩具、穿戴、车载与两轮车等需要"听懂人说话、并能开口回答"的场景。

芯片把麦克风采集、喇叭播放、 3A 语音算法(降噪 ANS + 回声消除 AEC + 语音识别 ASR) 与串口通信集成在一起。主控(4G/CAT1 模组、MCU 等)只需一路 UART(2Mbps) 就能完成三件事:

  • 拿音频 / 拿结果:接收降噪后的麦克风音频,或直接接收离线语音识别的指令文本;
  • 放声音:把待播放的音频送给芯片,由芯片控制喇叭播放。

芯片不占用主控的 I2S/I2C,也无需外接 Codec、PA 及其配套电源控制,硬件设计与软件接入都更简单。

1.1 核心参数

  • 主控:高性能 32 位音频处理器,支持硬件浮点运算(双核 32 位音频处理器);
  • AI 能力:第五代 TDNN 离线语音识别,支持 5 米远场可靠识别,识别时间小于 100ms;环境噪声抑制大于 20dB;回声消除 20dB 以上,支持全双工工作与播放中语音打断唤醒;支持中文、英文,并持续增加亚洲、欧洲、南美洲等小语种;
  • 音频规格:两路 24 位 DAC(SNR ≥ 104dB)、两路 24 位 ADC(SNR ≥ 95dB),采样率支持 8kHz / 11.025kHz / 16kHz / 22.05kHz / 24kHz / 32kHz / 44.1kHz / 48kHz,支持 MP3 / WAV 音频解码;
  • 串口协议:波特率 2000000bps,串口电平 3.3V;上行 / 下行音频为 16kHz / 16 位 / 单声道 PCM;
  • 麦克风与喇叭:支持 1 路模拟麦克风接入;集成功放,额定功率 3W,可直接驱动不大于 3W 的喇叭;
  • USB:1 路全速 USB 2.0 OTG,用于下载和烧写固件;
  • 供电与温度:3.3V~5.5V(典型 5V),工作电流 30~200mA;工作温度 -20℃~+85℃,存储温度 -50℃~+85℃;
  • 最大焊接温度:260℃(IPC/JEDEC J-STD-020)。

1.2 核心功能亮点

1)离线语音识别 + 3A 算法,复杂环境也能听懂

芯片在片内完成全部语音处理,不依赖云端:

  • 离线语音识别(ASR):第五代本地识别引擎,采用最新的神经网络(TDNN)算法,识别精准、误判率低;
  • 语音降噪(ANS):过滤风扇、油烟机、电机、胎噪等稳态噪声,并抑制动态噪声,环境噪声抑制 >20dB;
  • 回声消除(AEC):消除设备自身播放的声音(20dB 以上),喇叭外放的同时也能随时语音打断唤醒,天然适配免提通话、AI 语音对话等全双工场景。

识别结果通过串口 01 80 命令以 UTF-8 文本直接上报,主控无需做任何语音算法处理。

注意:离线语音识别功能需联系合宙任一同事沟通订制,需付费单独训练唤醒词和命令词。

2)一根串口搞定音频:16kHz PCM 上下行

串口帧格式统一为:包头(55 AA)+ 长度 + 命令 + 数据 + 和校验。音频采用 PCM+PCM 协议,上下行均为 16kHz / 16 位 / 单声道 PCM:

方向 命令 音频数据
上行(芯片 → 主控) 20 80 PCM 512 字节 / 16ms / 16kHz / 16 位单声道
下行(主控 → 芯片) 20 81 PCM 320 字节 / 10ms / 16kHz / 16 位单声道

上行每 16ms 一帧、下行每 10ms 一帧,主控只需按帧收发 16 位 PCM,不需要做任何编解码处理;降噪、回声消除、语音识别与音频播放全部由芯片在片内完成。

3)免提通话:内置 AEC,可作 4G 模组的"外置语音芯片"

芯片可将喇叭回采信号接入反馈引脚,实现通话消回声。搭配合宙 4G 模组时:

  • SIP / VoLTE 通话:由芯片把 16kHz PCM 通过 UART 与主控交换,主控侧无需外置 Codec / PA / I2C;
  • 本地提示音(振铃、挂断音)也可由芯片播放,避免占用通话通路。

4)LuatOS 扩展库:exaudio 一行接入

通过 exaudio 扩展库,合宙模组可把 Air1103 指定为音频模型,替代 ES8311 等外置 Codec,完成 MIC 采集、喇叭播放与本地提示音播放,详见第 8 章。

1.3 应用场景

  • 智能家电、智能照明等的离线语音控制;
  • 车载 / 两轮车语音交互(配合 4G/CAT1 模组接入在线大模型,支持离线+在线混合识别);
  • 通话类应用(VoLTE / SIP 通话的外置免提与回声消除,解决啸叫与回声);
  • AI 语音对话终端、语音助手(离线唤醒识别 + 在线大模型);
  • 通话桥接:Air1103 可作为主控的"外置语音芯片"参与 SIP ↔ VoLTE(CC) 音频桥接,主控侧无需 Codec / PA / I2C;
  • 需要"语音播报 + 语音控制"的工业与消费类设备。

1.4 方案优势

  1. 集成度高:麦克风、喇叭功放、AI 算法全部内置,主控只需一路 UART;
  2. 环境适应强:降噪 + 回声消除 + 远场识别,强噪声环境下依然可用,支持播放中打断唤醒;
  3. 接入简单:帧协议统一、命令清晰,串口音频为 16kHz PCM,主控按帧收发即可;
  4. 免开发算法:离线识别开箱可用,识别结果直接以文本上报;
  5. 合宙生态支持:提供 LuatOS 扩展库 air1103 / exaudio,并有 SIP 通话、SIP ↔ VoLTE 桥接等现成示例工程可直接复用。

Air1103 不只是一颗语音芯片,更是让设备"能听会说"的一站式串口语音方案——主控只管通信与联网,语音交给它。

2 硬件说明

2.1 脚位说明

表1 Air1103 管脚定义(QFN42,与 Air8784 原理图 V2.0 中 Air1103 符号一致)

引脚号 引脚名 类型 功能说明
1 GND 地 电源地
2 SW 输入 开关机按键输入(接按键到地)
3 VBAT 电源 主电源输入(3.3V~5.5V,典型 5V)
4 NC — NC(未使用,不连接)
5 IOVDD 电源 IO 电源(外接去耦电容)
6 DCVDD 电源 数字核心电源(外接去耦电容)
7 NC — NC(未使用,不连接)
8 NC — NC(未使用,不连接)
9 NC — NC(未使用,不连接)
10 NC — NC(未使用,不连接)
11 NC — NC(未使用,不连接)
12 NC — NC(未使用,不连接)
13 XOSCI 输入 24MHz 晶振输入
14 XOSCO 输出 24MHz 晶振输出
15 UART_TX 输出 串口发送(接主控 RX;3.3V~5V 耐压,可直接接 5V MCU IO)
16 NC — NC(未使用,不连接)
17 UART_RX 输入 串口接收(接主控 TX;3.3V~5V 耐压,可直接接 5V MCU IO)
18 NC — NC(未使用,不连接)
19 NC — NC(未使用,不连接)
20 NC — NC(未使用,不连接)
21 NC — NC(未使用,不连接)
22 USBDM I/O USB D-(下载与烧写固件)
23 USBDP I/O USB D+(下载与烧写固件)
24 NC — NC(未使用,不连接)
25 NC — NC(未使用,不连接)
26 NC — NC(未使用,不连接)
27 NC — NC(未使用,不连接)
28 NC — NC(未使用,不连接)
29 MUTE 输出 静音控制输出(接功放 MUTE / CTRL)
30 FEEDBACK_N 输入 功放反馈输入(负)
31 FEEDBACK_P 输入 功放反馈输入(正)
32 MICBIAS 输出 麦克风偏置电压输出
33 AGND 地 模拟地
34 VCM 输出 共模电压输出(外接去耦电容到 AGND)
35 SPK 模拟输出 喇叭驱动输出,可驱动 ≤3W 喇叭
36 MIC+ 模拟输入 麦克风输入正端
37 NC — NC(未使用,不连接)
38 NC — NC(未使用,不连接)
39 NC — NC(未使用,不连接)
40 NC — NC(未使用,不连接)
41 NC — NC(未使用,不连接)
42 NC — NC(未使用,不连接)
0 GND(散热焊盘) 地 散热焊盘,接 GND

注:与串口语音协议直接相关的引脚是 UART_TX(引脚 15)、UART_RX(引脚 17)(通信)、MIC+(引脚 36)、MICBIAS(引脚 32)(麦克风)、SPK(引脚 35)(喇叭)、FEEDBACK_P / FEEDBACK_N(引脚 31 / 30)(功放反馈,回声消除参考)、VBAT(引脚 3)与 GND(引脚 1、13 等)(供电);其余标 NC 的引脚未使用,原理图中不做连接。

2.2 电平说明

Air1103 串口 IO(UART_TX、UART_RX)为 3.3V 电平,且可耐 3.3V~5V 高压,因此:

● 若主控为 3.3V IO:可直接交叉连接(TX 接 RX、RX 接 TX);

● 若主控为 5V IO:可直接连接,无需电平转换;

● 若主控为 1.8V 或其它电平:需增加电平转换电路,且因波特率达 2Mbps,转换电路的 MOS 切换速度必须足够快。

2.3 供电说明

通过 VBAT(引脚 3) 给芯片供电,输入范围为 3.3V~5.5V,典型 5V。芯片集成功放,喇叭由 SPK(引脚 35) 音频输出直接驱动(额定 3W,可驱动不大于 3W 的喇叭)。

2.4 温度

● 工作温度:-20℃ ~ +85℃;

● 存储温度:-50℃ ~ +85℃;

● 最大焊接温度:260℃(IPC/JEDEC J-STD-020)。

2.5 芯片封装

● 封装:QFN42(4mm × 5mm),含散热焊盘(引脚 0,接 GND);

3 电气参数

表2 Air1103 主要电气参数

参数 条件 最小值 典型值 最大值 单位
存储温度范围 - -50 - 85 ℃
工作温度范围 - -20 - 85 ℃
芯片供电电压(VBAT) - 3.3 5.0 5.5 V
工作电流 典型语音应用 30 - 200 mA
串口波特率 UART_TX、UART_RX - 2000000 - bps
串口电平 UART_TX、UART_RX - 3.3 5.0(耐压) V

4 芯片资料

资料简介 相关链接
产品原理图和封装 持续更新中.....

5 串口通信协议

5.1 帧格式

Air1103 与上位机之间的所有串口数据均采用统一的二进制帧格式:

表3 串口帧格式

字段 字节数 说明
包头 2 固定为 55 AA(0x55、0xAA)
长度 2 数据区的字节数 N,大端(高字节在前)
命令 2 命令字(见下表及第 6 章)
数据 N 数据内容(N 字节)
和校验 1 包头 + 长度 + 命令 + 数据 的累加和,取低 8 位

和校验计算: 校验字节 = (0x55 + 0xAA + 长度高字节 + 长度低字节 + 命令高字节 + 命令低字节 + Σ数据字节) & 0xFF(即所有校验字节之前字节的累加和,仅保留低 8 位)。

常用命令字一览:

方向 命令 名称 数据内容
上行(芯片→主控) 20 80 麦克风 PCM 音频 PCM 512 字节(16ms / 16kHz / 16 位单声道)
上行(芯片→主控) 01 80 语音识别结果 识别指令文本,N 字节 UTF-8 编码
下行(主控→芯片) 20 81 播放 PCM 音频 PCM 320 字节(10ms / 16kHz / 16 位单声道)
下行(主控→芯片) 02 01 停止上行发送音频 0 字节
下行(主控→芯片) 02 03 设置播放音量 1 字节(0~31)

5.2 PCM+PCM 音频协议(上行 / 下行)

芯片采用 PCM+PCM 协议:上行、下行均为 16kHz / 16 位 / 单声道原始 PCM,芯片在片内完成降噪、回声消除、识别与播放,主控按帧收发 16 位 PCM 即可,无需做任何编解码。

上行(芯片 → 主控,命令 20 80): 芯片上电初始化完成后自动开始发送降噪后的麦克风音频。

● 每帧数据 512 字节,对应 16ms / 16kHz / 16 位单声道 PCM;

● 约每 16ms 一帧(≈32KB/s);

● 完整帧:55 AA 02 00 20 80 [512 字节 PCM] [和校验]。

下行(主控 → 芯片,命令 20 81): 主控把待播放的音频送给芯片,由芯片实时经喇叭播放。

● 每帧数据 320 字节,对应 10ms / 16kHz / 16 位单声道 PCM;

● 约每 10ms 一帧(≈32KB/s);

● 完整帧:55 AA 01 40 20 81 [320 字节 PCM] [和校验]。

注:上行 512 字节 / 16ms、下行 320 字节 / 10ms 均由 16kHz×16bit×1ch = 256kbps 推导一致;两者采样率、位深、声道完全相同,仅单帧时长不同,便于主控与芯片各自的缓冲节奏。

5.3 语音识别结果上报

当本地识别到指令词时,芯片通过命令 01 80 把识别结果以 UTF-8 文本上报给主控:

● 数据 N 字节为识别指令的 UTF-8 编码(如"打开灯光" = 12 字节);

● 完整帧:55 AA [长度 N 大端] 01 80 [N 字节 UTF-8] [和校验]。

5.4 常用控制命令

● 02 01:停止芯片上行发送音频(初始化完成后芯片默认持续上行,可用此命令暂停);

● 02 03:设置播放音量(数据 1 字节,范围 0~31,对应 DAC 输出档位)。

6 命令说明

以下命令示例均以 16 进制字节流给出;每个示例第一行为发送方向(→ 为主控发往芯片,← 为芯片回复主控),第二行为字节内容,第三行为说明。

6.1 上行音频:20 80

功能说明: 芯片向上位机发送降噪后的麦克风 PCM 音频(PCM+PCM 协议,16ms / 512 字节一帧)。

完整帧结构:

字段 值
包头 55 AA
长度 02 00(512 字节,大端)
命令 20 80
数据 512 字节 PCM(16ms / 16kHz / 16bit / 单声道)
和校验 前述字节累加和取低 8 位

举例:

方向 字节内容 说明
← 55 AA 02 00 20 80 [512 字节 PCM] [CS] 芯片每 16ms 主动上报一帧麦克风音频

注意事项: 初始化完成后芯片自动开始上行;可用 02 01 停止上行;唤醒词被识别后会恢复上行。

6.2 下行音频:20 81

功能说明: 上位机向芯片发送待播放的 PCM 音频,芯片实时经喇叭播放(PCM+PCM 协议,10ms / 320 字节一帧)。

完整帧结构:

字段 值
包头 55 AA
长度 01 40(320 字节,大端,0x0140=320)
命令 20 81
数据 320 字节 PCM(10ms / 16kHz / 16bit / 单声道)
和校验 前述字节累加和取低 8 位

举例:

方向 字节内容 说明
→ 55 AA 01 40 20 81 [320 字节 PCM] [CS] 主控每 10ms 下发一帧播放音频

6.3 识别结果上报:01 80

功能说明: 芯片把离线语音识别到的指令词以 UTF-8 文本上报。

完整帧结构:

字段 值
包头 55 AA
长度 N(识别文本 UTF-8 字节数,大端)
命令 01 80
数据 N 字节 UTF-8 编码的识别指令
和校验 前述字节累加和取低 8 位

举例(上报"打开灯光",UTF-8 共 12 字节):

方向 字节内容 说明
← 55 AA 00 0C 01 80 E6 89 93 E5 BC 80 E7 81 8C E5 85 89 [CS] "打开灯光" 的 UTF-8 编码(E6 89 93 E5 BC 80 = 打开,E7 81 8C E5 85 89 = 灯光)

6.4 停止上行发送:02 01

功能说明: 上位机命令芯片停止上行发送麦克风音频。

完整帧结构:

字段 值
包头 55 AA
长度 00 00(0 字节)
命令 02 01
数据 0 字节
和校验 前述字节累加和取低 8 位

举例:

方向 字节内容 说明
→ 55 AA 00 00 02 01 [CS] 停止芯片上行发送音频

6.5 设置播放音量:02 03

功能说明: 设置芯片喇叭播放音量。

完整帧结构:

字段 值
包头 55 AA
长度 00 01(1 字节)
命令 02 03
数据 1 字节,音量值 0~31(DAC 输出档位)
和校验 前述字节累加和取低 8 位

举例(设置音量为 20):

方向 字节内容 说明
→ 55 AA 00 01 02 03 14 [CS] 设置播放音量为 20(0x14)

注意事项: 建议上位机上电后先自行下发一次音量设置。

7 应用说明

7.1 典型接线

芯片引脚 连接对象 说明
UART_TX(引脚 15) 主控 UART_RX 芯片发送 → 主控接收
UART_RX(引脚 17) 主控 UART_TX 芯片接收 ← 主控发送
GND(引脚 1、13 等) 主控 GND 共地
VBAT(引脚 3) 5V(或 3.3~5.5V) 主电源输入
MIC+(引脚 36)、MICBIAS(引脚 32) 模拟麦克风 单端接入麦克风,偏置由 MICBIAS 提供
SPK(引脚 35) 功放 / ≤3W 喇叭 音频输出,经功放驱动喇叭
FEEDBACK_P(引脚 31)、FEEDBACK_N(引脚 30) 喇叭回采(经三级滤波) 回声消除参考输入

7.2 电平转换

● 芯片串口 IO 为 3.3V、可耐 5V:主控为 3.3V 或 5V 时均可直接交叉连接;

● 主控为 1.8V 或其它电平:必须加电平转换电路;

● 因串口波特率达 2Mbps,电平转换电路的 MOS 切换速度必须足够快,否则会出现丢帧。

7.3 AEC 回采(回声消除参考)

为实现播放中语音打断唤醒与全双工通话消回声,需把喇叭播放的信号回采给芯片的功放反馈引脚:

● 从喇叭输出端(SPK,引脚 35,原理图中网络名为 DACLP)经过三级滤波后,接入芯片的 FEEDBACK_P(引脚 31)/ FEEDBACK_N(引脚 30),作为回声消除(AEC)的参考信号;

7.4 音频收发时序

● 上行音频: 芯片上电初始化完成后即自动以约 16ms 周期发送 20 80 音频帧(512 字节/帧);如需暂停,主控发 02 01;唤醒词被识别后芯片恢复上行。

● 下行音频: 主控以约 10ms 周期下发 20 81 音频帧(320 字节/帧),芯片接收后实时经喇叭播放;若主控侧的语音/提示音为其它格式(如 MP3/WAV),需先解码为 16kHz/16bit/单声道 PCM 再按帧下发。

● 识别结果: 离线识别到指令词时,芯片通过 01 80 以 UTF-8 文本上报,主控解析后执行相应动作即可,无需自建语音算法。

8 LuatOS 扩展库用法

使用 LuatOS 开发,不需要自己组帧、算和校验、卡 10ms发送节奏,直接调用 exaudio 扩展库即可完成上行录音、下行播放与本地提示音播放;帧封装(55 AA + 长度 + 命令 + 数据 + 和校验)、帧间隔控制与缓冲管理全部由扩展库在底层自动完成。

扩展库文档:https://docs.openluat.com/osapi/ext/exaudio/

扩展库代码:script/libs/exaudio.lua

8.1 初始化

-- model 指定使用 Air1103;uart_id 可选(默认 1);库内部自动按 2Mbps 初始化串口并加载底层驱动
exaudio.setup({model = "air1103", audio_mode = "new", uart_id = 1})

Air1103 模式下不需要任何本地 Codec / PA / I2C 操作;初始化完成后芯片即自动开始上行(持续发送 20 80 音频帧)。

8.2 上行录音(芯片麦克风 → 主控)

调用 exaudio.record_start() 后,扩展库自动解析芯片上行的 20 80 帧并逐段回调,回调里拿到的就是可直接使用的 16kHz / 16 位 / 单声道 PCM:

exaudio.record_start({
    format = exaudio.PCM_16000,   -- Air1103 固定 16kHz / 16bit / 单声道
    time   = 0,                   -- 0 = 不限时录音,需自行调用 record_stop() 停止
    path   = function(data, len)
        -- data 为 zbuff,本次有效数据 len 字节(16kHz / 16bit / 单声道 PCM)
        -- 可直接 data:query(0, len) 取出后送 voip.pcmIn()、编码上传或写文件
    end,
    cbfnc  = function(event)      -- 可选:录音结束事件(如录音时间到)
        -- event == exaudio.RECORD_DONE
    end,
})

exaudio.record_stop()             -- 停止录音(同时停止芯片上行发送)

8.3 下行播放(主控 → 芯片喇叭)

Air1103 只支持流式 PCM 播放(type = 2),把 PCM 喂进扩展库即可,库会自动按 320 字节 / 帧、10ms 一帧下发:

exaudio.play_start({type = 2, cbfnc = function(event)
    -- event == exaudio.PLAY_DONE 表示缓冲已播完
end})

exaudio.play_stream_write(pcm)         -- 可多次调用,每次长度任意,内部自动切帧
exaudio.play_stream_write(pcm, true)   -- 最后一次带 true,表示数据喂完,播完触发 cbfnc

exaudio.is_end()                       -- 查询是否已播放完毕
exaudio.play_stop()                    -- 需要立即停止时调用

注意:下行数据必须是 16kHz / 16bit / 单声道 PCM;若音频源为 MP3 / WAV,需先解码为 PCM 再喂入。队列空时扩展库会自动补发静音帧保活,避免数据流中断产生爆音,主控不必自己控制 10ms 节奏。

8.4 本地提示音(来电振铃 / 挂断)

-- 来电:循环振铃(按键接听场景,未接通前一直响)
exaudio.play_ringback_loop()

-- 按键接听前:停止振铃(复位芯片并恢复上行 MIC,供通话使用)
exaudio.stop_ringback()

-- 对端挂断:先停振铃(不复位)、紧接着播挂断提示音,提示音播完统一复位芯片
exaudio.stop_ringback(true)
exaudio.play_hangup()

注意: 1. 提示音与通话音频共用 Air1103 下行,需在非通话期间播放; 2. exaudio.play_ringback([callback]) 为单遍播放(播完回调,适合自动接听场景); 3. exaudio.stop_ringback(true) 只是把复位"延后",必须紧接着调用 exaudio.play_hangup() 这类会收尾复位的提示音;若只传 true 而不播提示音,芯片不会复位、上行 MIC 不会恢复,挂断后主动呼出将没有声音。

8.5 底层驱动接口(air1103)

air1103.lua 是 exaudio 的内部驱动模块(库文件头已注明"业务代码请勿直接 require")。以下接口用于理解串口协议、注册识别结果回调或单独调试串口,正常业务直接用 exaudio 即可。

接口 说明
air1103.init(id, baud) 初始化串口(默认 UART1 / 2Mbps,exaudio.setup 已自动调用)
air1103.on_audio_data(cb) 注册上行 MIC 数据回调(512 字节 / 帧,16kHz / 16bit / 单声道)
air1103.on_identify(cb) 注册离线识别结果回调(UTF-8 文本)
air1103.play_stream_start(vol) 启动下行流式播放(音量 0~31)
air1103.play_stream_write(pcm) 喂入下行 PCM(内部按 320 字节 / 帧切分)
air1103.play_stream_stop() 结束流式播放(播完缓冲剩余数据后停止)
air1103.set_volume(vol) 设置播放音量(0~31)
air1103.stop_audio() 停止上行发送(命令 02 01)
air1103.reset() 程序复位(命令 02 05,复位后自动恢复 MIC 上行)
air1103.play_busy(on_done) / air1103.play_busy_loop() 播放 / 循环播放接通提示音
air1103.stop_tones(skip_reset) 停止循环提示音
air1103.play_hangup(on_done) 播放挂断提示音

获取离线识别结果示例:

local air1103 = require "air1103"   -- 与 exaudio 内部为同一个模块实例,无需重复初始化

air1103.on_identify(function(text)
    log.info("air1103", "识别结果", text)   -- 如"打开灯光"
end)

8.6 参考示例工程

说明:SIP / VoLTE 通话场景下,上行 PCM 需送 voip.pcmIn()、下行 PCM 从 voip.pcmOut() 取出后经 exaudio.play_stream_write() 下发,通话桥接逻辑可直接参考上述示例工程。

搜索