pcm数据不支持存储在json里面,需要先转base64
PCM 音频流数据解析及在 cJSON 中的处理方法
1. PCM 音频流数据格式
PCM(Pulse Code Modulation)是未经压缩的原始音频数据,其结构如下:
-
采样率(Sample Rate):如 16kHz、44.1kHz 等,表示每秒采集的样本数。
-
位深度(Bit Depth):如 16-bit(
int16_t
)、32-bit(float
),决定每个样本的精度。 -
通道数(Channels):单声道(Mono)或立体声(Stereo)。
-
数据排列方式:
-
单声道:
[sample1, sample2, sample3, ...]
-
立体声:
[L1, R1, L2, R2, L3, R3, ...]
(左右声道交替存储)
-
示例(16kHz, 16-bit, 单声道,3个采样点):
plaintext
复制
下载
原始二进制(hex):0x00FF 0x1234 0xABCD 对应数值(int16_t):255, 4660, -21555
2. 能否直接放入 cJSON?
-
PCM 原始数据不能直接放入 cJSON,需编码为 Base64 或其他文本格式。
原因:
-
cJSON 主要处理文本型数据(字符串、数字、布尔值等),直接存储二进制会导致:
-
数据膨胀:二进制转文本(如 Base64)会增加约 33% 体积。
-
解析效率低:需额外编解码步骤。
-
-
JSON 标准不支持二进制,需编码为文本格式(如 Base64)。