当前位置: 首页 > news >正文

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 或其他文本格式。

原因:

  1. cJSON 主要处理文本型数据(字符串、数字、布尔值等),直接存储二进制会导致:

    • 数据膨胀:二进制转文本(如 Base64)会增加约 33% 体积。

    • 解析效率低:需额外编解码步骤。

  2. JSON 标准不支持二进制,需编码为文本格式(如 Base64)。

相关文章:

  • 机器学习——Seaborn练习题
  • 怎样给MP3音频重命名?是时候管理下电脑中的音频文件名了
  • 月之暗面开源-音频理解、生成和对话生成模型:Kimi-Audio-7B-Instruct
  • 【Java面试笔记:进阶】23.请介绍类加载过程,什么是双亲委派模型?
  • 第二章、在Windows上部署Dify:从修仙小说到赛博飞升的硬核指南
  • AI在医疗领域的10大应用:从疾病预测到手术机器人
  • madvise MADV_FREE对文件页统计的影响及原理
  • Java求职面试:从Spring Boot到微服务架构的全面解析
  • NGINX upstream、stream、四/七层负载均衡以及案例示例
  • qt编译报错error: ‘VideoSrcCtrl‘ does not name a type
  • vue中将html2canvas转成的图片传递给后台java
  • idea软件配置移动到D盘
  • 20250427在ubuntu16.04.7系统上编译NanoPi NEO开发板的FriendlyCore系统解决问题mkimage not found
  • Jetpack Compose多布局实现:状态驱动与自适应UI设计全解析
  • 数字巴别塔:全栈多模态开发框架如何用自然语言重构软件生产关系?
  • 基于单片机的智能药盒系统
  • 树莓派超全系列教程文档--(43)树莓派内核简介及更新
  • django admin AttributeError: ‘UserResorce‘ object has no attribute ‘ID‘
  • 《数据结构初阶》【顺序表 + 单链表 + 双向链表】
  • 利用人工智能和快速工程增强 API 测试
  • 传智教育连续3个交易日跌停:去年净利润由盈转亏
  • 滨江集团去年营收约691亿元,尚未结算的预收房款1253亿元
  • 女儿被偷拍后,一个父亲的战斗
  • 我驻美使馆:中美并没有就关税问题磋商谈判,更谈不上达成协议
  • 亚振家居控制权将变更:济南域潇集团实控人成新控股股东
  • 韩国京畿道骊州市市长率团访问菏泽:想和菏泽一起办牡丹节