音频知识基础

server/2025/2/11 17:00:05/

音频知识基础

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

声音属性

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

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

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

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

声音度量

  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.ppmy.cn/server/166809.html

相关文章

MySQL数据库入门到大蛇尚硅谷宋红康老师笔记 基础篇 part 9

第09章_子查询 子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从MySQL 4.1开始引入。 SQL 中子查询的使用大大增强了 SELECT 查询的能力,因为很多时候查询需要从结果集中获取数据,或者需要从同一个表中先计算得出一个数据结果…

DeepSeek-R1相关论文解读

另:数学推理论文篇:DeepSeekMath 一、DeepSeek-R1-Zero和DeepSeek R1区别 都使用了RL强化学习中的GROP,但是R1还使用了SFT,进行了多阶段训练。 1. 什么是SFT? SFT是给模型一些正确例子:情况1 answer&…

【算法篇】贪心算法

目录 贪心算法 贪心算法实际应用 一,零钱找回问题 二,活动选择问题 三,分数背包问题 将数组和减半的最小操作次数 最大数 贪心算法 贪心算法,是一种在每一步选择中都采取当前状态下的最优策略,期望得到全局最优…

机器学习数学基础:18.向量组及其线性组合

向量组与线性表示:案例与教程详解 一、基础概念 (一)向量组 向量组是若干同位数列向量组成的集合。比如在平面直角坐标系中,向量组 { α ⃗ 1 [ 1 0 ] , α ⃗ 2 [ 0 1 ] } \{\vec{\alpha}_1 \ \begin{bmatrix}1\\0\end{bma…

Lua限流器的3种写法

学而不思则罔,思而不学则殆 引言 上篇文章讲解了Lua脚本,事务和Pipline之间的使用方式和性能差距,本篇文章将聚焦Lua脚本,我将用三种写法来展现如何实现一个Redis限流器 固定窗口限流 固定窗口限流也是最简单的限流算法&#x…

重磅发布!AI 驱动的 Java 开发框架:Spring AI Alibaba

*本文作者系阿里云云原生微服务技术负责人,Spring AI Alibaba 发起人彦林,望陶和隆基对可观测和 RocketMQ 部分内容亦有贡献。 * 摘要 随着生成式 AI 的快速发展,基于 AI 开发框架构建 AI 应用的诉求迅速增长,涌现出了包括 Lang…

x64、aarch64、arm与RISC-V64:详解四种处理器架构

x64、aarch64、arm与RISC-V64:详解四种处理器架构 x64架构aarch64架构ARM架构RISC-V64架构总结与展望在计算机科学领域,处理器架构是构建计算机系统的基石,它决定了计算机如何执行指令、管理内存和处理数据。x64、aarch64、arm与RISC-V64是当前主流的四种处理器架构,它们在…

Java中未检查类型转换的隐患:从List<Map>到List<Student>的映射问题解析

为什么你的Java对象中出现未知属性? 问题出现原因1. 类型擦除与未检查的类型转换2. 根本原因:Map到Student的映射缺失 为什么代码没有抛出异常?解决方案:显式映射Map到Student方案1. 手动转换方案2:使用对象映射框架&a…