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

音频知识基础

音频知识基础

  • 声音属性
  • 声音度量
  • 人耳特性
  • 通道数
  • 音频数字化
  • 传输接口

声音属性

响度
响度是人耳对声音强弱的主观感受;
主要和声波的振幅相关,同时也和频率有一定关系;

音调
音调是人耳对声音高低的主观感受;
主要与频率相关;

音色
音色主要和频谱相关
纯音:单一频率,自然界多为复合音;
复合音:由频率、振幅、相位正弦波叠加而成(基音、谐音)

声音测试中根据声音属性进行主观评测;

声音度量

  1. 声压:声波振动引起的大气压强变化称为声压,单位Pa;
  2. 声压级:人耳对声压感觉与声压的大小成对数关系,因此用声压比的对数来表示声音的强弱(单位dB);

人耳特性

人耳声音特性:

  1. 听觉范围:20Hz~20000Hz;
  2. 掩蔽效应
    频域掩蔽:强音会掩蔽其频率附近的弱音;
    时域掩蔽:由于人脑处理信息耗时,时间上相邻声音之间的掩蔽现象
  3. 哈斯效应:延迟音小于30ms,感觉声音都来自未延迟的声源,延迟音大于30ms,但小于50ms,可感知延时的声源,但其方向仍在未延迟声源的方向,延迟音大于50ms,可清晰感知回音;
  4. 双耳定位:利用双耳收到声音的强度差、时间差、相位差判断声源的方向

应用:根据人耳特性,进行音频编码压缩,音效处理,剧场影院布置等;

通道数

单声道
立体声:左右2个声道
四声环绕:4个发音点,前左、前右、后左、后右
5.1声道:中置、左前、右前、左后环绕、右后环绕,外加一个低音炮(0.1);
7.1声道:增加左、右环绕

音频数字化

一个自然接的声音是模拟信号,通过MIC收录,将声音(如说话声、乐器声、环境声等)转换为电信号,经ADC对模拟电信号进行PCM编码转换成数字信号,常用的是PCM编码,可以将PCM编码后的数据,存储成wav音频文件,所有音频数据的传输,处理都是编码后的,其中PCM编码过程如下:
1. 采样:
按照一定的采样率(如44.1kHz或48kHz)对模拟信号进行采样,得到一系列时间上离散的样点。

2. 量化:
将每个采样点的幅度值转换为有限数量的离散值。量化位数决定了量化级别的数量,例如16位量化可以表示65,536个不同的幅度级别。

3. 编码:
将量化后的每个离散幅度值转换为二进制代码。这个过程称为编码。编码后的数据是数字信号,可以被数字系统存储、处理和传输。通常会有一定的比特深度(如 8-bit、16-bit、24-bit 等),比特深度决定了数字值的范围和精度。

假设我们有一个模拟信号,采样率为44.1kHz,量化位数为16位:

  • 采样:每秒采样44,100次,得到44,100个样点。
  • 量化:将每个样点的幅度值量化为16位的离散值(0到65,535)。
  • 编码:将每个量化值转换为16位的二进制代码,生成PCM数据流。

传输接口

上述PCM编码过程一般都在codec中完成,输出的是PCM数据,而PCM 数据的实际传输可通过多种协议实现,如 I2S、TDM、AES/EBU 等。 想将PCM数据进行音频算法处理,或者存储成音频文件,都需要传输到CPU,这就需要codec芯片和CPU芯片之间使用硬件传输接口,比如PCM接口:
PCM编码:是一种将模拟信号转换为数字信号的方法,负责将模拟信号转换为数字信号。
PCM接口:是一种用于传输PCM编码数据的硬件或协议接口,负责将PCM编码的数字音频数据从一个设备传输到另一个设备。

传输协议一般都包含物理层的实现,它会定义需要几组gpio,引脚的电气特性等,比如PCM、I2S、TDM在有些硬件平台上,会设计成gpio兼容(都需要时钟信号,帧同步信号,数据信号引脚)


http://www.kler.cn/a/538713.html

相关文章:

  • 35~37.ppt
  • 【Pandas】pandas Series sum
  • 【docker】Failed to allocate manager object, freezing:兼容兼容 cgroup v1 和 v2
  • 物联网的三层架构:感知层、网络层与应用层
  • 【WB 深度学习实验管理】使用 PyTorch Lightning 实现高效的图像分类实验跟踪
  • 《探秘卷积神经网络的核心—卷积核》
  • 神经网络常见激活函数 5-PReLU函数
  • 阿里云专有云网络架构学习
  • 金三银四Java面试题及答案整理(2025年最新版,持续更新)
  • Java进阶面试八股文
  • DeepSeek使用技巧大全(含本地部署教程)
  • Vue 3 部分新特性解析
  • 【Unity】从父对象中获取子对象组件的方式
  • RNN-day1-NLP基础
  • 大模型推理——MLA实现方案
  • 寒假集训思维训练1题解
  • node 程序占用处理方法与后台运行方法
  • Qt 支持的动画格式对比,Lottie/APNG/GIF/WEBP
  • 已经安装了Visual C++ 2015-2022 Redistributable,但运行程序时,提示找不到VCRUNIME140_1D.dll
  • 通过多层混合MTL结构提升股票市场预测的准确性,R²最高为0.98
  • 【Java基础】序列化、反序列化和不可变类
  • HTML 颜色值
  • 蓝桥杯备赛——进制转化相关问题
  • 数据结构(Java)—— 优先级队列(堆)
  • 深度整理总结MySQL——事务隔离级别实现原理
  • 昇腾,mindie,镜像,部署vllm:第1篇,安装新的docker 镜像