[ Linux Audio 篇 ] 音频开发入门基础知识
在短视频兴起的背景下,音视频开发越来越受到重视。接下来将为大家介绍音频开发者入门知识,帮助读者快速了解这个领域。
轻柔的音乐、程序员有节奏感的键盘声、嗡嗡的发动机、刺耳的手提钻……这些声音是如何产生的呢?又是如何传到我们耳中的呢?声音是振动产生的声波,通过介质(气体、固体、液体)传播并能被人或动物听觉器官所感知的波动现象。声音的频率一般会以赫兹表示,记为Hz,指每秒钟周期性震动的次数。而分贝是用来表示声音强度的单位,记为dB。
1. 认识声音
声音的物理本质非常简单,其实就是两个字:振动。我们对振动应该不陌生,振动的钟、振动 的鼓膜、振动的音叉等等。那么到底振动如何引起的声音,又怎样能被我们听到呢?
从技术上来说,声音是物理能量(如拍手)到空气压力扰动的转换。空气压力中的这种改变通过空气以一连串振动(声波)的形式传播。声音振动也可以通过其他介质传播,如墙壁或地板。
上图显示了正弦波的示波图(图形显示),这是最简单最纯粹的波形。如果振动不以可辨别的形式传播,则声音就称为噪声。
波形的重复(示波器中的每个波峰和波谷)被称为循环。每秒钟发生的循环数决定波形的基本音高,通常称为频率,大部分乐器都可以提供振荡器频率控制,以赫兹 (Hz) 为单位,用于确定每秒的循环数,从而决定声音的基本音高。
2. 耳朵是如何听到声音
我们的耳朵是一个很神奇的器官,通过耳朵,我们可以感受到周围空气中的声音,转化成信息处理。能够让我们清楚的知道声音的来源。当声波进入耳朵时,会引起鼓膜和耳内的骨头振动。内耳中细小而脆弱的耳毛将振动转换为电信号发送到大脑,然后大脑将信号解析为声音。总结起来耳朵通过外耳、中耳和内耳的协同作用,将声音的机械能转化为神经信号,从而使我们能够听到声音。另外人耳并不是所有的声波都可以听到,只可以听到 20Hz 到 20KHz 之间的声波。 这个过程可以大家搜索下相关视频介绍解释的会更加清楚一些。大家可以听下这个音频,通过听感结合视频中看到的频率分析,感受下。
20Hz-20kHz
3. 工程角度的音频播放
从工程角度来处理声音时,首先是通过麦克风采集到声音的模拟信号。然后通过音频模数转换器,将模拟信号转换成数字信号。这些数字信号可以被计算机处理和存储,或者通过扬声器输出。扬声器会根据数字信号产生一定频率的震动,然后通过空气传播模拟信号到我们的耳朵。这样我们就能够听到对应的声音。在处理声音时,我们还会应用数字信号处理技术。通过使用数字信号处理算法,我们能够对声音进行滤波、音频增强、降噪等处理,从而进一步优化声音效果。此外,还可以利用多通道录制技术,将不同方向的声音分离出来,实现立体声效果。为了提高声音的传输质量,我们还会使用压缩算法对声音进行压缩,以减少数据量,同时保持一定的音质。这些工程技术能够使我们在日常生活中享受到更清晰、更真实的声音体验。
4. 采样率(Sample Rate)
采样率是每秒从音频信号记录的样本数量的度量。它以赫兹 (Hz) 为单位进行测量,表示每秒记录音频信号样本的频率。 样本是对特定时间点音频信号响度的度量。采样率是音频信号质量的重要因素,因为它直接影响信号的带宽。更高的采样率可以捕获音频信号的更多细节,从而提高信号质量。然而,更高的采样率也需要更多的存储空间和带宽来存储和传输音频信号。在音频行业中,根据音频信号的预期用途使用不同的采样率。一些最常用的采样率是 44.1kHz、48kHz 和 96kHz。
如图所示,如果想完美地重建信号,必须对原始音频进行数千个样本。在A示例中,您可以看到我们的数字结果很差,因为我们的样本不够频繁。在B示例中,我们的数字结果更好并且看起来更平滑。然而,在C示例中,数字结果与原始音频一样平滑。那是因为我们已经采集了足够的样本!换句话说,足够高的采样率可以让我们捕捉到原始声音的每一个细节。
来听一下不同采样率录制的声音,需要注意高频成分的变化,因为采样率越低,高频信息越少。首先是每秒采样次数为16000Hz, 并且可以通过频率分析观察到信号的截止频率为8kHz。
16k
接下来同样的音乐,每秒采样次数为48000Hz, 并且可以通过频率分析观察到信号的截止频率为24kHz。
48k
5. 位深度 (bit depth)
音频位深度决定了可以为每个音频样本记录的可能幅度值的数量。位深度越高,捕获的每个样本的幅度值就越多,以重新创建原始音频信号。由于声波是连续波,因此具有无数可能的振幅值,因此我们需要将其振幅值建立为数字位,以准确地再现它们。查看下面的位深度示例:
位深度 + 采样率 = 音频带宽
在这里我们可以看到位深度如何与采样率一起重建一个波周期。在前两个示例中,我们没有足够的可用位来平滑地再现连续声波。但在第三个示例中,我们有足够的可用位来无误地映射信号的幅度值。
当一个信号被采样时,它需要以比特存储采样的音频信息。这就是位深度发挥作用的地方。位深度决定了可以存储多少信息。具有 24 位深度的采样可以存储更多细微差别,因此比具有 16 位深度的采样更精确。
最常见的音频位深度是 16 位、24 位和 32 位。每个都是一个二进制项,代表许多可能的值。更高音频位深度的系统能够表达更多可能的值。更明确地说,让我们看看每个位深度可以存储的最大值数是多少。可以看到两个位深度之间可能值的数量存在巨大差异。
- 16 bit代表能够存储多达 65536 级信息
- 24 bit代表能够存储多达 16777216 级信息
- 32 bit代表能够存储多达 4294967296 级信息
位深度影响的另一个重要因素是信号的动态范围。16 位数字音频的最大动态范围为 96 分贝,而 24 位深度将为我们提供最大 144 分贝。CD 质量的音频以 16 位深度录制,因为一般来说,我们只想处理足够响亮的声音,但同时又不足以损坏设备或耳膜。对于 44.1kHz 的采样率,16 位的位深度足以再现普通人的可听频率和动态范围,这就是它成为标准 CD 格式的原因。
6. 音频通道 (channles)
理解音频通道的最简单方法是想象轨道或交通车道。其中单声道代表一 (1) 个轨道,立体声代表两 (2) 个轨道。因此,当以单声道录制时,您将音频录制到单个轨道中。当以立体声录制时,您将音频录制到两个轨道中;左和右。显然立体声可以让声音更加有空间感,但相应的数据量要比单声道的数据量多一倍。
还有更多通道数,基本上可以拥有任意数量的通道(扬声器),最常见的配置有:
- 2.0。这是普通立体声音频,具有左右扬声器。所有音乐都以立体声录制,正常的视频媒体播放都是立体声。
- 5.1。这是最标准的环绕声格式,如果你是游戏新手,这将是最简单的。它有普通的左右扬声器、一个中置声道和 2 个环绕扬声器,通常位于您的座位区后面。
- 6.1。它拥有 5.1 环绕声的所有功能,但包括一个额外的后环绕声道,位于您的座位区后面,以获得更身临其境的声音。
- 7.1。这些扬声器系统具有内置系统,基本上将单个后置通道(在 6.1 系统中)的信号分成 2 个音频通道,从而为您提供更高的沉浸感。
- 8.1 或更高。一旦超过 7.1 声道,就进入了非常专业的领域,很可能会自己构建这个系统。添加的扬声器越多,就越会有身临其境的感觉。
7. 总结
首先,我们了解了声音的物理本质是振动,并且通过介质传播。其次,我们探讨了耳朵如何听到声音,以及人耳能够听到的频率范围。然后,从工程角度出发,介绍了音频是如何播放和录音的,包括麦克风采集声音、模数转换、数字信号处理等。接着,我们讨论了采样率和位深度对音频信号质量的影响。最后,我们介绍了音频通道的概念和常见配置。通过这些内容,读者可以初步了解音频开发的基础知识。
相关文章:

[ Linux Audio 篇 ] 音频开发入门基础知识
在短视频兴起的背景下,音视频开发越来越受到重视。接下来将为大家介绍音频开发者入门知识,帮助读者快速了解这个领域。 轻柔的音乐、程序员有节奏感的键盘声、嗡嗡的发动机、刺耳的手提钻……这些声音是如何产生的呢?又是如何传到我们耳中的…...
关于高校电子邮件系统开通双因素认证的经验分享-以清华大学为例
清华大学信息化技术中心 马云龙 作者简介: 马云龙,男,清华大学信息化技术中心高级工程师;Coremail管理员社区大咖嘉宾 深耕高校计算机网络/信息化/网络安全岗位20年,对大规模计算机网络及信息系统规划,开发/建设,运维有深刻体会。 目前,越来越多的高校/企业/政府机关…...

「Swift」类淘宝商品瀑布流展示
前言:需要做一个类似于淘宝商品页面的瀑布流展示 结构分析: ps:图片来源 思路分析: 该瀑布流主要还是基于UICollectionView进行展示,只是在cell展示的UICollectionViewFlowLayout需要进行相应调整和自定义ÿ…...

道可云会展元宇宙平台全新升级,打造3D沉浸式展会新模式
随着VR虚拟现实、人工智能、虚拟数字人等元宇宙技术的快速发展,各个行业正试图通过元宇宙技术寻求新的发展突破口,会展行业也不例外。会展作为经贸领域的重要产业形态,越来越多的企业和组织开始寻求通过元宇宙技术为展会赋能,以满…...

Ant Design Pro初始化报错
今天按照官网步骤初始化项目,第一次报错 fatal: unable to access https://github.com/ant-design/ant-design-pro/: SSL certificate problem: unable to get local issuer certificate 致命:无法访问https://github.com/ant-design/ant-design-pro/&…...

第16届中国R会议暨2023X-AGI大会开幕,和鲸科技分享ModelOps在数据科学平台中的实践与应用
11月25日,第 16 届中国 R 会议暨 2023 X-AGI 大会在在中国人民大学逸夫会堂拉开帷幕,本次会议由中国人民大学统计学院、中国人民大学应用统计科学研究中心、统计之都、原灵科技和中国商业统计学会人工智能分会(筹)主办,…...
❀My学习Linux命令小记录(12)❀
目录 ❀My学习Linux命令小记录(12)❀ 46.arp指令 47.tcpdump指令 48.chmod指令 49.chown指令 50.bash调用脚本指令 shell介绍 shell脚本的组成部分 脚本执行方式 检查脚本语法 bash之变量 变量的种类:根据生效的范围不同来区分 …...
MySQL学习day05
DCL(Data Control Language)数据控制语言学习 作用:用来创建数据库用户、控制数据库的访问权限 1)查询用户: use mysql; select * from user; 2)创建用户: create user 用户名主机名 identifi…...
JAVA面试题7
1.Java中的ClassLoader是什么? 它有什么作用? 答案:ClassLoader是一种加载Java类文件的机制,可以从不同的来源加载类文件,如本地文件系统、网络等。ClassLoader可以帮助实现模块化开发和动态加载类等功能。 2.什么是J…...

好用免费的AI换脸5个工具
在当今社会的发展中,人工智能(Artificial Intelligence, AI)扮演着关键的角色,其应用领域不断扩展。作为AI的一个分支,换脸技术近年来备受欢迎。这项技术使得将一个人的面部特征迁移到另一个人的照片或视频成为可能。除…...

【Linux】公网远程访问AMH服务器管理面板
目录 1. Linux 安装AMH 面板2. 本地访问AMH 面板3. Linux安装Cpolar4. 配置AMH面板公网地址5. 远程访问AMH面板6. 固定AMH面板公网地址 AMH 是一款基于 Linux 系统的服务器管理面板,它提供了一系列的功能,包括网站管理、FTP 管理、数据库管理、DNS 管理、…...

随笔-这都是命吗
我与鹏哥、小付有个小群,前几天,鹏哥在群里发了一个图,是他那个城市准备扶持的高新产业,有元宇宙、量子信息、生物制药、人工智能什么的。 先前的时候鹏哥给我说过,当地准备了六百多亩地,准备发展高新产业…...
优化网站性能,从容谈CDN加速的部署与运维
随着互联网的迅猛发展,网站的性能优化成为网站运维工作中不可或缺的一环。其中,CDN(Content Delivery Network)加速技术因其在全球范围内提供快速、可靠的内容分发而备受关注。本文将从一个网站运维的角度出发,深入探讨…...

JavaScript-事件
事件 事件流 指的是事件完整执行过程中的流动路径 两个阶段: 捕获阶段:从大到小冒泡阶段:从小到大 实际开发中都是使用事件冒泡为主 事件捕获 从DOM的根元素开始取执行对应的事件(从外到里) document.addEventLis…...
linux的磁盘管理
Linux 提供了多种工具和技术来进行磁盘管理。下面是对 Linux 磁盘管理的详细解释: 磁盘和分区: 磁盘(硬盘):Linux 系统中的磁盘通常是通过 SATA、SCSI、NVMe 等接口连接的物理硬盘。可以使用工具如 lsblk、fdisk、pa…...

qt-C++笔记之主线程中使用异步逻辑来处理ROS事件循环和Qt事件循环解决相互阻塞的问题
qt-C笔记之主线程中使用异步逻辑来处理ROS事件循环和Qt事件循环解决相互阻塞的问题 code review! 文章目录 qt-C笔记之主线程中使用异步逻辑来处理ROS事件循环和Qt事件循环解决相互阻塞的问题1.Qt的app.exec()详解2.ros::spin()详解3.ros::AsyncSpinner详解4.主线程中结合使用…...

【Docker】从零开始:18.使用Dockerfile构造自己的KingbaseES数据库镜像
【Docker】从零开始:17.使用Dockerfile构造自己的数据库镜像 新建一个自定义目录并创建Dockerfile文件上传需要的文件到自定义目录下注意docker-circle-init.sh文件内容password 内容 开始打包注意打包完成后执行 尝试用工具连接数据库 kingbase.tar.gz 包过大我就上…...
YOLOv8独家改进《全网无重复 YOLOv8专属打造》感知聚合SERDet检测头:简单高效涨点,即插即用|检测头新颖改进
💡本篇内容:YOLOv8独家改进《全网无重复,YOLOv8专属》感知聚合SERDet检测头:高效涨点,即插即用|检测头新颖改进 💡🚀🚀🚀本博客 YOLO系列 + 全新原创感知聚合SERDet检测头 改进创新点改进源代码改进 适用于 YOLOv8 按步骤操作运行改进后的代码即可,附改进源代…...
Android Studio中Flutter项目找不到Android真机设备解决方法
起因:创建正常Android项目可以运行在真机设备上,创建flutter项目就找寻不到Android真机设备。 1:在flutter sdk安装目录按下Shift和鼠标右键,打开Powershell窗口 2:输入以下,然后回车 flutter config --…...

Vue 静态渲染 v-pre
v-pre 指令:用于阻止 Vue 解析这个标签,直接渲染到页面中。 语法格式: <div v-pre> {{ 数据 }} </div> 基础使用: <template><h3>静态渲染 v-pre</h3><p v-pre>静态渲染:{{ n…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

USB Over IP专用硬件的5个特点
USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...

AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...

push [特殊字符] present
push 🆚 present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中,push 和 present 是两种不同的视图控制器切换方式,它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...

力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...

相关类相关的可视化图像总结
目录 一、散点图 二、气泡图 三、相关图 四、热力图 五、二维密度图 六、多模态二维密度图 七、雷达图 八、桑基图 九、总结 一、散点图 特点 通过点的位置展示两个连续变量之间的关系,可直观判断线性相关、非线性相关或无相关关系,点的分布密…...