[具身智能-634]:语音全链路:通道 → PCM 编码 → 传输格式 → 存储格式 → WAV 文件
一、语音通道(声道 Channel)
定义
同一时刻同时采集几路语音信号。
- 单声道 Mono:1 路麦克风,语音 AI、嵌入式、机器人默认只用这个
- 立体声 Stereo:2 路左右声道,听歌用,语音识别不用
- 多通道阵列:4 麦 / 6 麦 / 8 麦阵列(PDM/TDM),用于声源定位、降噪、远场唤醒
工程约定:做人机语音、离线识别、传感器采集 →固定 单声道 1 通道
二、PCM 编码(语音原始编码方式)
是什么
麦克风模拟声波 → ADC 采样 → 量化成数字采样点,这种编码就是PCM。PCM 是所有语音的底层原始编码。
PCM 四大关键参数(绑定死)
- 采样率:8000Hz / 16000Hz(人声标准)
- 位深:16bit(每个采样点占 2 字节)
- 通道:单声道 1 通道
- 字节序:小端序(ARM 树莓派 / RK3568/3588 都是)
PCM 数据长什么样
纯二进制裸流,无表头、无任何描述信息连续排列:采样点1(2B) 采样点2(2B) 采样点3(2B)...
特点
- 无压缩、原始无损
- 体积固定、计算简单
- 必须外部记住参数,否则无法解析
三、语音数据传输格式(线路 / 接口上怎么传)
指开发板和麦克风之间、板内芯片之间用什么协议传 PCM 语音。
1. 模拟传输
电压波形直接传,易干扰,只适合简单板载麦。
2. 数字传输格式(主流)
- I2S:传立体声 / 高保真 PCM,收发分离,适合 Codec、喇叭 + 录音
- PDM:单线时钟 + 数据,一串可挂多麦,专用麦克风阵列
- PCM (串行 PCM):窄带语音、对讲机、低带宽传输
- TDM:时分复用,一条线传 8~16 路多通道麦阵列
- USB 音频:封装好的 PCM 流式传输,即插即用
一句话:传输格式 = 物理接口协议,负责把 PCM 数据从麦克风送到主控芯片
四、语音数据存储格式(存到文件 / Flash 怎么放)
分两类:裸流存储、封装存储
1. 裸流存储(无压缩、无文件头)
- 格式:PCM / RAW
- 后缀:
.pcm.raw.bin - 内容:直接存原始 PCM 二进制
- 用途:嵌入式缓存、AI 模型输入、中间数据流、低开销存储
- 缺点:不自带采样率 / 通道信息,程序里要硬编码约定
2. 封装存储(带文件头,自带参数)
- WAV:无损封装,头信息 + PCM 数据,通用可直接播放
- FLAC:无损压缩
- OPUS/AMR:语音专用有损压缩,体积小适合网络 / 闪存
- MP3/AAC:音乐压缩,不适合 AI 语音原始数据
五、WAV 文件本质拆解
公式
WAV 文件 = WAV 文件头 (44 字节) + PCM 原始裸数据
- 头部:记录采样率、位深、通道、时长等参数
- 后面主体:就是纯 16k/16bit / 单声道 PCM
特点
- 有头信息,不用人工记参数
- 无压缩、无损
- 电脑、播放器、Python 都能直接打开
- 开发调试、语音数据集首选 WAV
操作小技巧
把 WAV 前 44 字节删掉,剩下的就是标准 PCM 裸流;给 PCM 加上标准 44 字节头,就能变成 WAV 直接播放。
六、整条语音全链路串起来
麦克风 →语音通道 (1 通道单麦)→传输格式 (I2S/PDM/USB)→ADC 采样生成PCM 编码→程序可存为:
- 裸存储:
.pcm/.raw - 封装存储:
.wav/.opus/.amr
七、工程选型总结(树莓派 4B/5、RK3568/RK3588)
- 语音通道:固定 单声道 1 通道
- 编码:16k 16bit 单声道 PCM
- 传输:近场 I2S、多麦阵列 PDM、省事用 USB
- 中间处理 / 算法输入:存PCM 裸流
- 调试 / 给人播放 / 归档:存WAV
- 网络传输 / 省空间:转OPUS
