参考文件:麦克风阵列 UAC 驱动板 MA-USB8(使用指南) - Sipeed Wiki
参考文件:MaixCAM MaixPy 快速开始 - MaixPy
🎵 MaixPy 音频模块 API (maix.audio)
这个API为你提供了在MaixPy环境下处理音频文件的基础工具,目前主要包括音频格式常量和文件读写类。
音频格式常量 (Format)
maix.audio 模块通过一个 Format 枚举定义了一套音频采样格式,用来统一处理不同的数据类型和字节序。文档里还提供了一个 fmt_bits 变量,可以方便地查询每种格式对应的位深。
| 格式常量 | 说明 |
|---|---|
FMT_NONE | 无效/未定义格式 |
FMT_S8 | 有符号 8 位 |
FMT_U8 | 无符号 8 位 |
FMT_S16_LE | 有符号 16 位,小端序 |
FMT_S16_BE | 有符号 16 位,大端序 |
FMT_U16_LE | 无符号 16 位,小端序 |
FMT_U16_BE | 无符号 16 位,大端序 |
FMT_S32_LE | 有符号 32 位,小端序 |
FMT_S32_BE | 有符号 32 位,大端序 |
FMT_U32_LE | 无符号 32 位,小端序 |
FMT_U32_BE | 无符号 32 位,大端序 |
音频文件类 (File)
maix.audio.File 类提供了读写音频文件的核心功能。
- 构造函数
__init__:创建一个新的文件对象。你可以提前指定音频参数,这在处理不含头的PCM文件时是必须的。from maix import audio # 创建一个用于处理16000Hz采样率、单声道、16位采样深度的PCM文件的对象 my_audio_file = audio.File(sample_rate=16000, channels=1, bits_per_sample=16) - 加载文件
load:从文件路径加载音频文件。它能够智能识别WAV文件头,而对于PCM文件,如果构造函数中没有指定参数,则需要在load()方法中提供。python # 加载WAV文件 (会自动读取头信息) err = my_audio_file.load("/sd/record.wav") # 加载PCM文件 (需指定参数) err = my_audio_file.load("/sd/record.pcm", sample_rate=16000, channels=1, bits_per_sample=16)
🎙️ 麦克风阵列UAC驱动板 MA-USB8
这是一块专为麦克风阵列设计的驱动板,核心是BL616芯片,主要功能是将麦克风阵列采集到的音频和声场数据上传到电脑或其他设备。
核心功能
- 8通道音频采集 (UAC 2.0):通过USB将8通道、48kHz采样率、16位有符号小端格式的PCM音频数据,直接传输给电脑,可被识别为标准麦克风设备。
- 声场热力图输出 (CDC ACM / UART):将声源定位、波束成形的计算结果(16x16网格的声场热力图),通过两种接口实时输出:
- USB虚拟串口 (CDC ACM):在电脑端接收热力图数据。
- UART:以2,000,000 bps的高波特率,为MCU等嵌入式设备提供数据。
- 声场可视化:输出的声场热力图数据可用于在上位机或MCU上进行声场成像和声源定位分析。
主要应用场景
- 语音采集与降噪:利用麦克风阵列进行高保真语音采集和噪声抑制。
- 波束成形与声源定位:通过算法分析,增强特定方向的声音并确定声源方向。
- 声场可视化:将声场分布以热力图等形式进行直观展示。
快速上手指南
以下指南可以帮助你快速上手:
- 硬件准备:
- 使用5V USB线将MA-USB8连接到电脑(标准模式)或MCU开发板(UART模式)。
- MA-USB8会自动上电,指示灯会亮起或闪烁。
- 模式选择:
- 首选模式 (USB):同时使用UAC 2.0(8通道音频)和CDC ACM(串口热力图数据)。这是最推荐的方式,可以在电脑上同时获得音频与声场信息。
- 备用模式 (UART / USB2TTL):仅通过UART(2,000,000波特率)获取声场热力图数据,适合嵌入式MCU场景。
- 设备验证 (Linux):
- 检查识别:插入设备后,运行
dmesg | tail应能看到创建了/dev/ttyACM0设备。 - 检查音频:运行
arecord -l,在列表中应能看到一个8通道的UAC音频设备。
- 检查识别:插入设备后,运行
- 设备验证 (Windows):
- 打开“设备管理器”,应在“音频、视频和游戏控制器”下看到“MicArray (UAC2.0)”,在“端口 (COM和LPT)”下看到“USB串行设备 (CDC ACM)”。
补充说明:BL616是一颗来自博流智能(Bouffalo Lab)的RISC-V架构芯片,为MA-USB8提供了核心算力。MA-USB8需要配合独立的麦克风阵列模块(如Sipeed的6+1麦克风阵列)才能完整工作。
🧩 关联与扩展
这两个页面紧密相关:maix.audio API 是在 MaixPy 软件层面进行音频处理(如播放、录音)的工具,而 MA-USB8 则是一个硬件驱动板,专门用于采集多通道音频和声场数据,并可通过 maix.audio 等工具在电脑上进行分析处理。
更丰富的音频功能
MaixPy 还提供了更多进阶的音频处理和识别功能:
- 语音识别与合成:支持中文、英文等多种语言的离线语音识别(Maix-Speech库),以及将文字合成为语音的TTS功能。
- 关键词识别:可针对特定唤醒词或指令进行实时识别。
- 音频播放与录制:提供了
audio.Player和audio.Recorder等更高级的类,方便进行音频文件的播放和录制。 - 硬件基础:许多MaixPy开发板(如MaixCAM)都具备音频硬件基础,例如需要外接扬声器才能播放声音。


常见问题
输出的8个通道的音频和阵列上麦克风的对应关系是什么?前6个对应着板上一圈麦克风的序号。第8个是中心的麦克风。第7个通道是 波束成形 处理后的音频。