极客时间-《搞定音频技术》-学习笔记

news2025/6/7 13:56:07

极客时间-《搞定音频技术》-学习笔记

语音基础知识

https://www.zhangzhenhu.com/audio/feature.html

序章-0

作者说这个语音技术啊,未来肯定前景大好啊,大家都来学习,然后给出了课程的脑图

img

音频基础

什么是声音

声音的三要素是指响度、音调和音色,它们都是声音的主观属性,用来描述声音的特征。

响度指声音的强弱,音调指声音的高低,音色指声音的质量或特征。

  1. 响度(Loudness):
  • 指声音的强弱,由振幅决定。

  • 振幅越大,响度越大;振幅越小,响度越小。

  • 响度还跟距离发声体远近有关。

  • 单位是分贝(dB)。

  1. 音调(Pitch):
  • 指声音的高低,由频率决定。

  • 频率越高,音调越高;频率越低,音调越低。

  • 单位是赫兹(Hz)。

  • 人耳能听到的频率范围大约是20Hz 到20000Hz。

  1. 音色(Timbre):
  • 指声音的质量、特征,由声源的材料、结构、形状等决定。

  • 不同发声体的音色不同,可以帮助我们区分不同的声源。

  • 音色也与声波的波形有关

01|声音是如何保存成数字信号的?

这章我觉得这个介绍得更好:数字音频基础­­­­­-从PCM说起

声音本质是空气振动,数字音频是这种振动的数学表达。如果声音的三大构成是响度,音高,音色。
那么理解数字音频信号的三大核心指标——就是采样位深、采样率、通道数

模拟到数字:PCM编码链路

声音采集遵循经典的模数转换流程。麦克风将声波转换为电信号(模拟信号),ADC再通过PCM脉冲编码调制完成数字化。这个过程包含三个关键步骤:抽样、量化、编码。

graph LR
    A[声波] --> B[麦克风振膜]
    B --> C[模拟电信号]
    C --> D[ADC转换器(硬件)]
    D --> E[PCM数字信号(软件)]
    E --> F[音频裸数据]

关于模拟信号到数字信号的部分:

模拟信号
ADC硬件芯片
PCM编码算法
采样Sampling
量化Quantization
编码Encoding
时间离散化
幅度离散化
二进制表示
数字音频数据

PCM文件即未封装的音频原始数据,也称"裸数据"。所有压缩格式的源头都是PCM。

  • 什么是ADC 模数转换器

  • 什么是PCM脉冲编码

  • 什么是DAC 数模转换器

采样位深:振幅精度的量化标尺

位深决定每个采样点的存储精度,直接影响动态范围和失真度。16位提供96dB动态范围,足够电话通信;32位达到192dB,满足专业音乐制作需求。

位深与精度关系

  • 8位:256个量化级别,早期设备标准,明显失真
  • 16位:65536个级别,消费级音频主流
  • 24位:1677万个级别,专业录音标准
  • 32位:42亿个级别,后期处理无损
振幅范围 假设-1 to 1
16位量化
32768个正值
32768个负值
精度: 1/32768
采样率:频域完整性的奈奎斯特约束

采样率确定可还原的最高频率。我们在《计算机网络》里学过,根据奈奎斯特定理,采样率必须超过目标频率的2倍才能无失真重建信号。

常见采样率应用

  • 8kHz:电话通信(4kHz带宽)
  • 16kHz:语音识别(8kHz带宽)
  • 44.1kHz:CD音质(22.05kHz带宽)
  • 48kHz:专业音频标准(24kHz带宽)
  • 96kHz:高保真录音(48kHz带宽)
graph LR
    A[模拟信号] --> B[采样率 fs]
    B --> C{fs > 2×fmax?}
    C -->|是| D[完整重建]
    C -->|否| E[频谱混叠]

44.1kHz覆盖人耳20Hz-20kHz全频段,48kHz则为数字音频工作流提供更大余量,避免抗混叠滤波器设计复杂化。

通道数:空间音频的维度扩展

通道数定义同一时刻并行处理的独立音频流数量。每个通道对应一个物理扬声器或采集麦克风,决定音频系统的空间表现力。

典型通道配置

  • 单声道(Mono):实时通信、语音识别
  • 立体声(Stereo):音乐播放、耳机体验
  • 2.1声道:左右主音箱+低音炮
  • 5.1声道:环绕声影院系统
音频通道
采集端
播放端
麦克风阵列
单麦克风
立体声耳机
多声道音响

立体声通过左右耳差异营造空间感,麦克风阵列通过多通道采集实现波束成形和噪声抑制。通道数直接影响存储需求和传输带宽。

PCM存储计算:从理论到实践

PCM文件大小遵循简单乘法法则:存储空间 = 位深 × 采样率 × 通道数 × 时长

实例计算

  • 音频参数:立体声,48kHz,16位,100秒
  • 存储空间:16 × 48000 × 2 × 100 = 153,600,000位 = 18.31MB
  • 传输带宽:16 × 48000 × 2 = 1,536,000bps = 1.5Mbps
PCM参数
位深16bit
采样率48kHz
立体声2通道
时长100秒
计算存储
18.31MB

这解释了为什么原始PCM文件如此庞大,也说明了音频压缩的必要性。

音频封装:有损与无损的权衡艺术

音频封装格式通过不同压缩策略在文件大小与音质间寻找平衡。理解压缩原理有助于选择适合的格式。

有损压缩(感知编码)
利用人耳听觉掩蔽效应,去除感知冗余信息。MP3、AAC属此类,压缩比高但存在不可逆失真。

无损压缩(统计编码)
仅去除统计冗余,保持完全可逆。FLAC、ALAC提供CD级音质,但文件仍较大。

原始格式
WAV、AIFF本质是PCM的容器格式,添加文件头信息但不压缩音频数据。

PCM原始数据
封装选择
无损压缩
有损压缩
原始封装
FLAC 50%压缩
MP3 90%压缩
WAV 无压缩

选择策略取决于应用场景:存储受限选MP3,音质优先选FLAC,专业制作用WAV。

# to do
# 等待更新

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2401164.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络攻防技术十三:网络防火墙

文章目录 一、网络防火墙概述1、网络型防火墙(网络防火墙)2、Web应用防火墙3、数据库防火墙4、主机防火墙(个人防火墙)5、网络防火墙的功能 二、防火墙工作原理1、无状态包过滤防火墙2、有状态包过滤防火墙(状态检测/动…

Express 集成Sequelize+Sqlite3 默认开启WAL 进程间通信 Conf 打包成可执行 exe 文件

代码:express-exe: 将Express开发的js打包成exe服务丢给客户端使用 实现目标 Express 集成 Sequelize 操作 Sqlite3 数据库; 启动 Sqlite3 时默认开启 WAL 模式,避免读写互锁,支持并发读; 利用 Conf 实现主进程与 Ex…

2024年认证杯SPSSPRO杯数学建模D题(第二阶段)AI绘画带来的挑战解题全过程文档及程序

2024年认证杯SPSSPRO杯数学建模 D题 AI绘画带来的挑战 原题再现: 2023 年开年,ChatGPT 作为一款聊天型AI工具,成为了超越疫情的热门词条;而在AI的另一个分支——绘图领域,一款名为Midjourney(MJ&#xff…

DOCKER使用记录

1、拉取镜像 直接使用docker pull <image>&#xff0c;大概率会出现下面的报错信息&#xff1a; (base) jetsonyahboom:~$ docker pull ubuntu:18.04 Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while …

【深度学习相关安装及配环境】Anaconda搭建虚拟环境并安装CUDA、cuDVV和对应版本的Pytorch,并在jupyter notebook上部署

目录 1. 查看自己电脑的cuda版本2.安装cuda关于环境变量的配置测试一下&#xff0c;安装完成 3.安装cuDVV环境变量的配置测试一下&#xff0c;安装完成 4.创建虚拟环境先安装镜像源下载3.11版本py 5.在虚拟环境下&#xff0c;下载pytorch6.验证是否安装成功7.在jupyter noteboo…

web3-区块链基础:从区块添加机制到哈希加密与默克尔树结构

区块链基础&#xff1a;从区块添加机制到哈希加密与默克尔树结构 什么是区块链 抽象的回答: 区块链提供了一种让多个参与方在没有一个唯一可信方的情况下达成合作 若有可信第三方 > 不需要区块链 [金融系统中常常没有可信的参与方] 像股票市场&#xff0c;或者一个国家的…

TCP小结

1. 核心特性 面向连接&#xff1a;通过三次握手建立连接&#xff0c;四次挥手终止连接&#xff0c;确保通信双方状态同步。 TCP连接建立的3次握手 抓包&#xff1a; client发出连接请求&#xff1b; server回应client请求&#xff0c;并且同步发送syn连接&#xff1b; clien…

Python 打包指南:setup.py 与 pyproject.toml 的全面对比与实战

在 Python 开发中&#xff0c;创建可安装的包是分享代码的重要方式。本文将深入解析两种主流打包方法——setup.py 和 pyproject.toml&#xff0c;并通过一个实际项目示例&#xff0c;展示如何使用现代的 pyproject.toml 方法构建、测试和发布 Python 包。 一、setup.py 与 pyp…

性能优化 - 案例篇:缓存_Guava#LoadingCache设计

文章目录 Pre引言1. 缓存基本概念2. Guava 的 LoadingCache2.1 引入依赖与初始化2.2 手动 put 与自动加载&#xff08;CacheLoader&#xff09;2.2.1 示例代码 2.3 缓存移除与监听&#xff08;invalidate removalListener&#xff09; 3. 缓存回收策略3.1 基于容量的回收&…

python入门(1)

第一章 第一个python程序 1.1 print函数 print方法的作用 : 把想要输出的内容打印在屏幕上 print("Hello World") 1.2 输出中文 在Python 2.x版本中&#xff0c;默认的编码方式是ASCII编码方式&#xff0c;如果程序中用到了中文&#xff0c;直接输出结果很可能会…

【PDF提取表格】如何提取发票内容文字并导出到Excel表格,并将发票用发票号改名,基于pdf电子发票的应用实现

应用场景 该应用主要用于企业财务部门或个人处理大量电子发票&#xff0c;实现以下功能&#xff1a; 自动从 PDF 电子发票中提取关键信息&#xff08;如发票号码、日期、金额、销售方等&#xff09;将提取的信息整理并导出到 Excel 表格&#xff0c;方便进行财务统计和报销使…

Hugging Face 最新开源 SmolVLA 小模型入门教程(一)

系列文章目录 目录 系列文章目录 前言 一、引言 二、认识 SmolVLA&#xff01; 三、如何使用SmolVLA&#xff1f; 3.1 安装 3.2 微调预训练模型 3.3 从头开始训练 四、方法 五、主要架构 5.1 视觉语言模型&#xff08;VLM&#xff09; 5.2 动作专家&#xff1a;流匹…

封闭内网安装配置VSCode Anconda3 并配置 PyQt5开发

封闭内网安装配置VSCode Anconda3 并配置 PyQt5开发 零一 vscode1.1 下载 vscode1.2 下载插件1.3 安装 二 anaconda 32.1 下载2.2 新建虚拟环境1 新建快捷方式,启动base2 新建虚拟环境 3 配置Qt designer3.1 designer.exe和uic.exe3.2 设置插件,3.4 ui文件转为py文件 4使用4.1 …

大话软工笔记—组合要素2之逻辑

1. 逻辑的概念 逻辑&#xff0c;指的是思维的规律和规则&#xff0c;是对思维过程的抽象。 结合逻辑的一般定义以及信息系统的设计方法&#xff0c;对逻辑的概念进行抽提、定义为三个核心内涵&#xff0c;即&#xff1a;规律、顺序、规则。 &#xff08;1&#xff09;规律&a…

7.Demo Js执行同步任务,微任务,宏任务的顺序(3)

一个包含 同步任务、微任务&#xff08;Promise&#xff09;、宏任务&#xff08;setTimeout&#xff09; 的例子&#xff0c;JS 是怎么调度这些任务的。 &#x1f3af; 例子代码&#xff08;建议复制到浏览器控制台运行&#xff09; console.log(‘同步任务 1’); setTimeo…

边缘计算网关赋能沸石转轮运行故障智能诊断的配置实例

一、项目背景 在环保行业&#xff0c;随着国家对大气污染治理要求的不断提高&#xff0c;VOCs废气处理成为了众多企业的重要任务。沸石转轮作为一种高效的VOCs治理设备&#xff0c;被广泛应用于石油化工、汽车制造、印刷包装等主流行业。这些行业生产规模大、废气排放量多&…

UE5 2D角色PaperZD插件动画状态机学习笔记

UE5 2D角色PaperZD插件动画状态机学习笔记 0.安装PaperZD插件 这是插件下载安装地址 https://www.fab.com/zh-cn/listings/6664e3b5-e376-47aa-a0dd-f7bbbd5b93c0 1.右键创建PaperZD 动画序列 2.添加动画序列 3&#xff0c;右键创建PaperZD AnimBP &#xff08;动画蓝图&am…

Ubuntu 16.04 密码找回

同事整理的供参考&#xff1a; 进入GRUB菜单 重启系统&#xff0c;在启动过程中长按Shift键&#xff08;或Esc键&#xff09;进入GRUB引导菜单。 若未显示GRUB菜单&#xff0c;可尝试在启动时连续按多次Shift/Esc键。 在GRUB菜单中选择默认的Ubuntu启动项&#xff08;第一…

【论文阅读】DanceGRPO: Unleashing GRPO on Visual Generation

DanceGRPO: Unleashing GRPO on Visual Generation 原文摘要 研究背景与问题 生成模型的突破&#xff1a;扩散模型和整流流等生成模型在视觉内容生成领域取得了显著进展。核心挑战&#xff1a;如何让模型的输出更好地符合人类偏好仍是一个关键问题。现有方法的局限性&#xff1…

CentOS在vmware局域网内搭建DHCP服务器【踩坑记录】

1. 重新设置环境 配置dhcp服务踩了不少坑&#xff0c;这里重头搭建记录一下&#xff1a; 1.1 centos 网卡还原 如果之前搭了乱七八糟的环境&#xff0c;导致NAT模式也没法上网&#xff0c;这里重新还原 我们需要在NAT模式下联网&#xff0c;下载DHCP服务 先把centos的网卡还…