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

【音视频】音频基础

一、音频基础

1.1 声音的物理性质 ——振动

声音是一种由物体振动引发的物理现象,如小提琴的弦声等。物体的振动使其四周空气的压强产生变化,这种忽强忽弱变化以波的形式向四周传播,当被人耳所接收时,我们就听见了声音。

在这里插入图片描述

1.2 声音的物理性质 ——波形

声音是由物体振动产生的,这种振动引起了周围空气压强的振荡,我们称这种振荡的函数表现形式为波形。

在这里插入图片描述

1.3 声音的物理性质 ——频率

声音的频率是周期的倒数,它表示的是声音在1秒钟内的周期数,单位是赫兹(Hz)。前赫兹(kHz)即1000Hz,表示每秒振动1000次。声音按照频率可以作如下划分:

  • 次声: 0~20Hz
  • 人耳能听见的声音:20Hz~20kHz
  • 超时 20kHz - 1GHz
  • 特超声 1GHz~10THz

1.4 声音的物理特性 ——振幅

声音有振幅,振幅的主观感觉是声音的大小。声音的振幅大小取决于空气压力波距平均值(也称平衡态的最大偏移量)。
在这里插入图片描述

2.数字音频

计算机并不直接使用连续平滑的波形来表示声音,它是每隔固定的时间对波形的幅值进行采样,用得到的一系列数字量来表示声音。下图是采样后的数音频的波形

在这里插入图片描述

  • PCM脉冲编码调制:PCM(Pulse Code Modulation)脉冲编码调制。人耳听到的是模拟信号,PCM是把声音从模拟信号转化为数字信号的技术。

为了将模拟信号数字化,主要分为三个步骤:采样、量化、编码。

2.2 数字音频 ——采样频率

根据Nyguist采用定律,要从采样中完全恢复初始信号波形,采样率必须至少是信号中最高频率的两倍。

前面提到人耳能听到的频率范围是[20Hz - 20kHz],因此,采样频率一般是44.1kHz,这样就能保证声音到达20kHz也能被数字化,从而使得数字化处理之后,人耳能听到的声音质量也不会被降低。

  • 采样频率:每秒采样的点的个数,常用的采用频率有:22kHz、44.1kHz、48kHz、96kHz、192kHz等等

2.2 数字音频 ——采样量化

采样实在离散的时间点上进行的,而采样值本身在计算机也是离散的。
采样值的精度取决于它用多少位来表示,这就是量化。例如8为量化可以表示256个不同的值,而CD质量的16为量化可以表示65536个值,范围是[-32768,32767]。

下图是一个3位量化的示意图,可以看出3位量化只能表示8个值,还原后的声音非常差。

在这里插入图片描述

2.3 音频常见名词

  • 采样频率:每秒采样的点的个数,常用的采用频率有:22kHz、44.1kHz、48kHz、96kHz、192kHz等等
  • 采样精度(采样深度):每个样本点的大小,常用的大小为8bit、16bit、24bit
  • 通道数:单声道、双声道、四声道、5.1声道
  • 比特率:每秒传输的bit数,单位是bps(bit per second),是间接衡量声音质量的一个标准。没有压缩的音频数据的比特率 = 采样频率 * 采样精度(深度)*通道数。
  • 码率:压缩后的音频数据的比特率。常见的码率有:96kbps、128-160kbps,192kbps,256-320kbps。码率越大,压缩效率越低,音质越好,压缩后的数据越大。码率 = 音频文件大小 / 时长

比如,采样频率44100,采样精度16bit、2通道(声道),采集4分钟的数据为:44100 * 16 * 2 *4*60 = 338688000bit = 40M
字节。比特率:采样频率*采样精度*通道数 = 44100 * 16 * 2 = 1411200bit/s

  • 帧:每次编码的采样单元数,比如MP3通常是1152个采样点作为一个编码单元,AAC通常是1-24采样点作为一个编码单元
  • 帧长:可以指每帧播放持续的时间:每帧持续时间(秒) = 每帧采样点数/采样频率(HZ)。比如,MP3 48k,1152个采样点,每帧则为24毫秒;也可以指压缩后每帧的数据长度,因此需要根据场景来确定所表示的含义。
  • 交错模式:数字信号存储的方式。数据以连续帧的方式存放,即首先记录帧1的左声道样本和右声道样本,再开始帧2的记录…
    在这里插入图片描述
  • 非交错模式:首先记录的是一个周期内所有帧的左声道样本,再记录所有右声道的也样本。
    在这里插入图片描述

2.4 音频编码原理简介

数字音频信号如果不加压缩地直接传输,将会占用极大的带宽。例如,一套双声道数字音频若取采样率为44.1kHz,每样值按照16bit进行量化,那么码率为:244.1kHz16bit = 1.411Mbit/s。如此大的带宽对于传输和处理都带来许多的成本,因此必须采取音频压缩技术对音频进行处理,才能有效地传输音频数据。

数字音频压缩编码在保证信号在听觉方面不产生失真的前提下,对音频数据信号尽可能大的压缩,降低数据量。数字音频压缩编码采取去除声音中的冗余成分的方法进行实现。所谓冗余成分指的是音频中不能被人耳感知到的信号,他们对确定声音的音色、音调等信息没有任何的帮助。

冗余信号包含人耳听觉范围外的音频信号以及被掩蔽掉的音频信号等。例如,人耳所能察觉的声音信号的频率范围为20Hz~20kHz,除此之外的其他频率人耳无法察觉,都可视为冗余信号。

此外,根据人耳听觉的生理和心理学现象,当一个强音信号与一个弱音信号同时存在时,弱音信号会被强音信号所掩蔽而听不见,这样弱音信号就可以被视为冗余信号而不用传送。这就是人耳听觉的掩蔽效应,主要表现在频谱掩蔽效应时域掩蔽效应

2.4.1 频谱掩蔽效应

一个频率的声音能量小于某个阈值之后,人耳就会听不到,当有另外能量较大的声音出现的时候,该声音频率附近的阈值会提高很多,即所谓的掩蔽效应,如下图所示
在这里插入图片描述

因此,当有强音存在的时候,在强音附近低于一定频率的弱音就可以被视为冗余信号不必传输

2.4.2 时域掩蔽效应

当强音信号和弱音信号同时出现时,还存在时域掩蔽效应。即两者发生时间很接近的时候,也会发生掩蔽效应。时域掩蔽过程曲线如下图所示,分为前掩蔽,同时掩蔽和后掩蔽三种:
在这里插入图片描述

  • 前掩蔽:指的是人耳仔听到强信号之前的短暂时间内,已经存在的若信号会被掩蔽而听不到。
  • 同时掩蔽:指的是当强信号与弱信号同时存在的时候,弱信号会被强信号所掩蔽而听不到。
  • 后掩蔽:指的是当强信号消失后,需要经过较长的一段时间才能重新听到弱信号,称为后掩蔽。

这些被掩蔽的弱信号被称为冗余信号

2.5 压缩编码方法

当前数字音频编码领域存在不同的编码方案和实现方式。但基本的编码思路大同小异,如下图所示:
在这里插入图片描述

对每一个音频声道中的音频采样信号:

  1. 将它们映射到频域中,这种时域到频域的映射可通过子带滤波器实现。每个声道中的音频采样块首先要根据心理学模型来计算掩蔽门限值
  2. 由计算出的掩蔽门限决定从公共比特池中分配给该声道的不同频率域中多少比特数,接着进行量化已经编码工作。
  3. 将控制参数及辅助数据加入数据之中,产生编码后的数据流。

3.1 常见的音频编解码器选型

  • OPUS、MP3、AAC、AC3和EAC3杜比公司的方案

相关文章:

【音视频】音频基础

一、音频基础 1.1 声音的物理性质 ——振动 声音是一种由物体振动引发的物理现象,如小提琴的弦声等。物体的振动使其四周空气的压强产生变化,这种忽强忽弱变化以波的形式向四周传播,当被人耳所接收时,我们就听见了声音。 1.2 声…...

策略模式的C++实现示例

核心思想 策略模式是一种行为型设计模式,它定义了一系列算法,并将每个算法封装在独立的类中,使得它们可以互相替换。策略模式让算法的变化独立于使用它的客户端,从而使得客户端可以根据需要动态切换算法,而不需要修改…...

本地部署pangolin获取谱系,从而达到预测新冠的流行趋势

步骤 1:安装Docker 注:此步骤忽略,可通过Docker官网对于文档进行安装,地址如下 Docker: Accelerated Container Application Developmenthttps://www.docker.com/ 步骤 2:拉取Pangolin镜像 docker pull staphb/pangolin:latest 步…...

【我的 PWN 学习手札】House of Emma

House of Emma 参考文献 第七届“湖湘杯” House _OF _Emma | 设计思路与解析-安全KER - 安全资讯平台 文章 - house of emma 心得体会 - 先知社区 前一篇博客【我的 PWN 学习手札】House of Kiwi-CSDN博客的利用手法有两个关键点,其一是利用__malloc_assert进入…...

4 Redis4 List命令类型讲解

Redis 列表(List)命令详解 1. Redis 列表(List)简介 Redis 列表(List)是一个简单的字符串列表,按照插入顺序排序。它可以用作 栈(Stack) 和 队列(Queue&…...

CentOS 7 安装 Redis6.2.6

获取资源、下载安装 Redis6.2.6 安装Redis6.2.6 上传到服务器或直接下载(wget http://download.redis.io/releases/redis-6.2.6.tar.gz)、再解压安装 tar -zxvf redis-6.2.6.tar.gz 进入redis解压目录 cd redis-6.2.6先编译 make再执行安装 make PREFI…...

数据库原理4

1.数据库中的数据通常可分为用户数据和系统数据两部分。用户数据是用户使用的数据;系统数据称为数据字典。 2.SQL语言的功能:数据查询;数据操纵;数据定义;数据操作;数据控制 3.对未提交更新的依赖&#x…...

doris: MySQL

Doris JDBC Catalog 支持通过标准 JDBC 接口连接 MySQL 数据库。本文档介绍如何配置 MySQL 数据库连接。 使用须知​ 要连接到 MySQL 数据库,您需要 MySQL 5.7, 8.0 或更高版本 MySQL 数据库的 JDBC 驱动程序,您可以从 Maven 仓库下载最新或指定版本的…...

Django模型数据删除:详解两种方式

Django模型数据删除:详解两种方式 在Django框架中,数据模型(Model)不仅定义了应用的数据结构,还提供了与数据库交互的接口,包括数据的删除操作。本文将详细介绍两种在Django中删除数据的方式:通…...

C++并发以及多线程的秘密

1.基础概念 并发(Concurrency) 并发是指在同一时间段内,多个任务看起来像是同时执行的。并发并不一定意味着真正的同时执行,它可以是通过时间片轮转等方式在多个任务之间快速切换,让用户感觉多个任务在同时进行。并发…...

自学微信小程序的第十二天

DAY12 1、腾讯地图SDK是一套为开发者提供多种地理位置服务的工具,可以使开发者在自己的应用中加入地图相关功能,轻松访问腾讯地图服务和数据,更好地实现微信小程序的地图功能。 表49:search()方法的常用选项 选项 类型 说明 keyword string POI搜索关键词,默认周边搜索 l…...

⭐算法OJ⭐跳跃游戏【贪心算法】(C++实现)Jump Game 系列 I,II

既股票买卖系列之后的第二组贪心算法题目:跳跃游戏系列。这一篇介绍的两个问题,其输入均为一个数组,每个元素表示在该位置可以跳跃的最大长度。 55. Jump Game You are given an integer array nums. You are initially positioned at the …...

带你从入门到精通——自然语言处理(五. Transformer中的自注意力机制和输入部分)

建议先阅读我之前的博客,掌握一定的自然语言处理前置知识后再阅读本文,链接如下: 带你从入门到精通——自然语言处理(一. 文本的基本预处理方法和张量表示)-CSDN博客 带你从入门到精通——自然语言处理(二…...

ubuntu挂载固态硬盘

Ubuntu 中挂载位于 /dev/sdc1 的固态硬盘,可以按照以下步骤操作: 步骤 1:确认分区信息 首先,确保设备 /dev/sdc1 存在且已正确分区: sudo fdisk -l /dev/sdc # 查看分区表 lsblk # 确认分区路…...

WPF+WebView 基础

1、基于.NET8&#xff0c;通过NuGet添加Microsoft.Web.WebView2。 2、MainWindow.xaml代码如下。 <Window x:Class"Demo.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/win…...

国内光子AI智能引擎:OptoChat AI在南京江北新区亮相

3月3日&#xff0c;从南京市投资促进局传来振奋人心的消息&#xff0c;南京江北新区的一家高科技企业——南京南智先进光电集成技术研究院有限公司&#xff08;简称“南智光电”&#xff09;&#xff0c;携手南京知满科技等合作伙伴&#xff0c;成功研发出国内首个光子AI智能引…...

vscode离线配置远程服务器

目录 一、前提 二、方法 2.1 查看vscode的commit_id 2.2 下载linux服务器安装包 2.3 安装包上传到远程服务器&#xff0c;并进行文件解压缩 三、常见错误 Failed to set up socket for dynamic port forward to remote port&#xff08;vscode报错解决方法&#xff09;-C…...

【安装】SQL Server 2005 安装及安装包

安装包 SQLEXPR.EXE&#xff1a;SQL Server 服务SQLServer2005_SSMSEE.msi&#xff1a;数据库管理工具&#xff0c;可以创建数据库&#xff0c;执行脚本等。SQLServer2005_SSMSEE_x64.msi&#xff1a;同上。这个是 64 位操作系统。 下载地址 https://www.microsoft.com/zh-c…...

使用Maven搭建Spring Boot框架

文章目录 前言1.环境准备2.创建SpringBoot项目3.配置Maven3.1 pom.xml文件3.2 添加其他依赖 4. 编写代码4.1 启动类4.2 控制器4.3 配置文件 5.运行项目6.打包与部署6.1 打包6.2 运行JAR文件 7.总结 前言 Spring Boot 是一个用于快速构建 Spring 应用程序的框架&#xff0c;它简…...

将docker容器打包为.tar包

1. 创建打包脚本 #!/bin/bash # 设置 -e 使得脚本在遇到错误时停止执行 set -e# 必要的参数 exported_container_name"needed_export_container_name_or_id" # 需要被导出的容器的名称或id image_save_name"my_custom_image_name:v25.03.03" # 镜像需…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势&#xff1a;专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发&#xff0c;是一款收费低廉但功能全面的Windows NAS工具&#xff0c;主打“无学习成本部署” 。与其他NAS软件相比&#xff0c;其优势在于&#xff1a; 无需硬件改造&#xff1a;将任意W…...

python打卡day49

知识点回顾&#xff1a; 通道注意力模块复习空间注意力模块CBAM的定义 作业&#xff1a;尝试对今天的模型检查参数数目&#xff0c;并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

uniapp中使用aixos 报错

问题&#xff1a; 在uniapp中使用aixos&#xff0c;运行后报如下错误&#xff1a; AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

【分享】推荐一些办公小工具

1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由&#xff1a;大部分的转换软件需要收费&#xff0c;要么功能不齐全&#xff0c;而开会员又用不了几次浪费钱&#xff0c;借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...