Opus从入门到精通(七)Opus编码基础之认识声音

Opus从入门到精通(七)Opus编码基础之认识声音

前面我们分析完Opus的编解码api使用,封装原理等,接下来我们准备分析Opus编码原理.Opus编码是一个复杂的工作,我们需要做一些基本铺垫,包括认识声音,压缩编码基础.
认识音频有助于我们了解音频特征,不仅对语音有助于我们理解编码技术,同时在语音识别,TTS等场景提供帮助

音频信号及其心里特征

人类能够感知客观世界的两个重要途径就是听觉和视觉,而听觉所感受到的信息就是声音.声音是一种波,其本质是机械振动或气流扰动引起周围弹性媒介发生波动饿现象.声波可以在空气中传播,也可以在液体和固体中传播.

声压级

为了定量描述声音的强弱,人们采用了多种描述方式,其中声压和声压级就是其中的两种形式.声压用P来表示,它是指在声场中某处由声波引起的压强的变化值,单位是“帕斯卡”(Pa)。当然声压越大,声音也就越大。但是人耳对声音强弱的感觉与声压的大小并非成线性关系,而是大体上与声压有效值的对数成正比。为了适应人类听觉的这一特性,将声压的有效值取对数来表示声音的强弱,这种表示方式称为声压级,用SPL表示,单位是“分贝”(dB).它们的表达式如下:
S P L = 20 l g P r m s P r e f SPL=20lg\frac{Prms}{Pref} SPL=20lgPrefPrms

在上式中,Prms是计量点的声压有效值,Pref是人为定义的零声压级的参考声压值,国际协议规定 Pref=2乘以10的负5次Pa(帕),这个值是一般具有正常听力的年轻人对
1 kHz的单一频率信号(称为简谐音)刚刚能察觉到它的存在时的声压值。 在电声工程中通常用声级计来测量声压级的大小。 应该注意的是,无论是声压还是声压级都属于客观物理量,它们都是对客观事物的真实描述。

人对于声音频率的感觉表现为音调的高低,在音乐中简称音高。 音高与声音频率的关系也大体上呈对数关系。实际上音乐里的音阶就是按频率的对数取等分来确定的。 在音乐中每增高或降低一个八度音,其声音的频率就升高或降低一倍,十二平分律等程音阶正是在一个倍频程的频率范围内按频率的对数分成十二个等份划分音阶的,其中相邻的两个音阶称为一个半音,相隔的一个音称为一个全音。

人类的听觉特征决定了人对同样强度,但不同频率的声音主观感觉的强弱是不同的,即人类听觉的频率响应不是平直的。 对于高于20 kHz和低于20Hz的声音,无论其强度多高,一般人都不会听到。因此可以认为20 Hz~20 kHz是人类的听觉频带,而20Hz~20kHz的信号称为“音频信号”,高于20kHz的声音称为超音,低于20Hz的声音称为次音

此外在音频范围内,人对相同声压级而不同频率声音的敏感程度也不同,人耳对3kHz~5kHz的声音信号比高频和低频声音信号更敏感,也就是说,幅度(声压级)很低的中频信号都能被人耳听到,而低音或高音信号能被人耳听到的幅度要高得多。因此,为了更全面地表示人类的听觉频响特性,人们又定义了响度级这个主观物理量,单位用“方”(Phon)表示,响度级数是以1 kHz信号的声压级数定义的。对应同一响度级上的不同频率信号所对应的声压级也不同,但对人耳来说其声响的程度是相等的,因此将这些具有等响度的不同频率的点连接起来构成的一条条曲线被称为等响度曲线,如图所示。这些曲线是对大量具有正常听力的年青人进行大量测量并取其平均值得到的.

在这里插入图片描述

在这里插入图片描述

  1. 曲线0代表可听阈。低于此线之下不可闻。
  2. 响度级低时,各频率声压级相差很大。可差50dB以上。
  3. 当响度级别较高时,等响曲线近似水平(高保真放声在高声时,高低音都丰厚)。
  4. 在高频段曲线间隔相同,说明声压级变化时,响度级变化几乎相同。在低频段等响曲线间隔小,等响曲线对声压变化很灵敏。如80Hz,声压从60dB~80 dB,响度从30~70方。
    响度级只反映不同频率的声音的等响感觉,不能表示一个声音比另一个声音响多少倍的主观感觉。响度级为0方的等响度曲线一下的声音一般为听不见的,因此该曲线可称为闻阈或绝对听阈,它是重要的心理学声学模型之一,也是音频信号压缩的重要依据.当声音响度超过120方时,人耳会感到痛痒,因此120方的等响度曲线可称为痛阈.

响度:是描述声音大小的主观感觉量,响度的单位是"宋"(sone)。

定义:1000Hz纯音,声压级为40 dB时的响度为1宋;2宋的声音是40方声音响度的2倍;4宋为40方声音响度的4倍。多次人平均,响度级每增10方,响度增加一倍。也就是说,声压级增加10dB, 响度增加一倍。如:10把小提琴同时演奏,比一把声强增加10倍,相应声压级增加10 dB,响度级也增加了10方,而主观响度只增加1倍。
人耳对响度的感觉随声压级变化。声压级低时,分辨率差;声压级高,分辨率提高。声压级在50dB以上,人耳的声压、响度变化最小,大约1dB。 小于40 dB时,声压级要1~3dB以上才觉察出来。一个乐队演奏时,假如低、高音都以100 dB的声压级录音,此时等响线曲差不多平直,低高音听起来有差不多的响度。如果重放时声压级较低,假如50dB,这时50Hz的低音刚能听到,而1000Hz的声音却有50dB,高音也同时听上去很弱,结果原有的音色都改变了。这时要想让50Hz的声音听起来与1000Hz的声音有大致相同的响度,必须将其提升20 dB左右。因此声音以低于原始声(录音时)的声压级重放,必须通过均衡器(Equalizer)来提升低音和高音以保持原有音色平衡。

掩蔽效应

实验证明,声场中的一个强音能掩蔽与之同时发生的附近频率的弱音,这种现象称为掩蔽效应.也就是说,一种声音的出现可能是另一种声音难于听清.例如,在声场中有一个1kHz的简谐音,如果此时有一个1.1kHz而幅值比前者低18dB(分贝)的简谐音,则人们只能听到1kHz的声音.

掩蔽效应是另一个重要的心理声学模型,它与绝对听阈相呼应,在音频数据压缩中起到了重要作用.下图描述了频率为1kHz,声压级为60dB的声音信号对其他频率信号的掩蔽效应曲线.图中的虚线为音频信号的绝对听阈曲线.从图中可以可出1kHz附近信号的绝对听阈被这1kHz的强音改变成了尖锋状,也就是说,此时1kHz附近频率的信号的幅值必须高于尖峰状曲线所对应的分贝值时才能被人耳察觉.

在这里插入图片描述

在这里插入图片描述

动态范围是衡量声音强度变化的重要参数,它是指某个声音的最强音与最弱音的强度差,并用分贝(dB)表示.在音乐中,动态范围小则给人以平淡,枯燥的感觉,而动态范围大则给人以生动,细腻,表现力强的感受.

为了记录,分析,处理声音信息,人们采用拾音器设备(麦克风)进行声-电转换,以实现将声音信号转换为电信号的目的.与此相反为了将音频电信号还原和重放,人们又采用了扩音设备(如放大器,扬声器等)进行电-声转换,以实现将电信号转换为声音信号的目的.

声音的周期性

声音可以分为周期信号与非周期信号两大类.根据傅里叶(Fourier)变换原理,周期信号可以用傅氏级数的形式表示,即该种信号可以分解成按傅氏级数规律排列的一系列单一频率信号(称为简谐波)的组合.它所对应的频谱为线状频谱,这种声音信号又称为有调音,如下图所示:

在这里插入图片描述

非周期信号可以用傅氏积分表示,该种信号包含一定频带的所有频率分量.因此它所对应的频谱为连续频率,如下图所示.因此可见,同一音频信号即可以在时间域中描述,也可以在频率与中表述,不同的域有不同的的特点,这有助于对信号的研究与处理.

在这里插入图片描述

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

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

相关文章

2021年9月电子学会青少年软件编程 中小学生Python编程等级考试三级真题解析(判断题)

2021年9月Python编程等级考试三级真题解析 判断题(共10题,每题2分,共20分) 26、readline()执行结果为字符串,readlines()执行结果为列表 答案:对 考点分析:考查文件读操作,readli…

【leetcode--同构字符串】

要求:判断两个字符串的形式是不是一致,即是不是AABC或者ABBBCC这种。 trick:使用set()结合zip()。 set()用法:用于创建一个不包含重复元素的集合 zip&#…

环保绩效评级:ABCD四个等级,你的企业处于哪个水平?

在当下社会,环保问题越来越受到人们的关注和重视。企业作为经济活动的重要参与者,其环保绩效评级直接关系到环境保护的成效。朗观视觉将详细解析环保绩效评级的ABCD四等级,帮助读者了解不同等级的特点和评判标准,进而引导企业提高…

大模型扫盲系列——初识大模型

本文将从大模型的原理、训练过程、prompt和相关应用介绍等方面进行分析,帮助读者初步了解大模型。 近年来,随着计算机技术和大数据的快速发展,深度学习在各个领域取得了显著的成果。为了提高模型的性能,研究者们不断尝试增加模型…

MySQL损坏,使用data恢复数据

MySQL损坏,重装MySQL使用data文件恢复数据库 1.清空相关注册表(清空安装残留)2.下载合适MySQL版本(与损坏数据库版本相同)3.数据恢复4.Windows server MySQL备份bat5.设置Windows定时执行 # 初始化安装 mysqld -install# 查看数据初始化密码 mysqld --initialize --…

工业 UI 风格,展现独特魅力

工业 UI 风格,展现独特魅力

Mysql之不使用部署在k8s集群的Mysql而是选择单独部署的Mysql的原因

测试准备: 线程组:并发数100,持续时间2min 两个请求:使用k8s集群中的mysql的wordpress对应端口30011 使用单独部署的mysql的wordpress的对应端口为30022 访问同一个博客 测试结果: 汇总报告: 响应时间图&…

HTML静态网页成品作业(HTML+CSS+JS)——游戏天天酷跑网页(4个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,使用Javacsript代码实现图片切换轮播,共有4个页面。 二、…

Linux---系统的初步学习【 项目二 管理Linux文件和目录】

项目二 管理Linux文件和目录 2.1项目知识准备 ​ 文件是存储在计算机上的数据集合。在Windows系统中,我们理解的文件可以是文本文档、图片、程序、音乐、视频等。在Linux中,一切皆文件,也就是除了Windows中所理解的文件,目录、字…

xgo 原理探索

Go 单测 mock 方案 Mock 方法原理依赖优点缺点接口 Mock为依赖项定义接口,并提供接口的 Mock 实现。需要定义接口和 Mock 实现。灵活,遵循 Go 的类型系统;易于替换实现。需要更多的样板代码来定义接口和 Mock 实现。Monkey Patching&#xf…

NOSQL -- ES

第三个我们比较常用的NOSQL类型的数据库 --- ES 介绍: ES的全称(Elasticsearch) ES是一个分布式全文搜索的引擎 也就是我们平常在购物, 搜索东西的时候常用的, 就是一个ES的类型, 分布式全文搜索引擎 查询原理: 1>分词: 在查询之前, 其会将一些数据拆分开, 按照词进行拆分…

day54 动态规划 part10 300.最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组

300.最长递增子序列 动规五部曲 1.dp[i]的定义 dp[i]表示i之前包括i的以nums[i]结尾的最长递增子序列的长度 2.状态转移方程 位置i的最长升序子序列等于j从0到i-1各个位置的最长升序子序列 1 的最大值。 所以:if (nums[i] > nums[j]) dp[i] max(dp[i], dp…

样本学习:当AI遇上“少见多怪”

东汉名臣牟融在其著作《牟子》写道:“少所见,多所怪,睹橐驼,谓马肿背。”意思是见闻少的人遇到不常见的事物就觉得奇怪,见到骆驼也以为是背肿了的马。因此,后人总用“少见多怪”来嘲笑见识浅陋的人。然而&a…

七个备受欢迎的IntelliJ IDEA实用插件

有了Lombok插件,IntelliJ就能完全理解Lombok注解,使它们能如预期般工作,防止出现错误,并改善IDE的自动完成功能。 作为IntelliJ IDEA的常用用户,会非常喜欢使用它,但我们必须承认,有时这个IDE&…

3.多层感知机

目录 1.感知机训练感知机XOR问题(Minsky&Papert 1969) AI的第一个寒冬总结 2.多层感知机(MLP)学习XOR单隐藏层(全连接层)激活函数:Sigmoid激活函数:Tanh激活函数:ReLu 最常用的 因为计算速度…

openGauss学习笔记-300 openGauss AI特性-AI4DB数据库自治运维-DBMind的AI子功能-SQL Rewriter SQL语句改写

文章目录 openGauss学习笔记-300 openGauss AI特性-AI4DB数据库自治运维-DBMind的AI子功能-SQL Rewriter SQL语句改写300.1 概述300.2 使用指导300.2.1 前提条件300.2.2 使用方法示例300.3 获取帮助300.4 命令参考300.5 常见问题处理openGauss学习笔记-300 openGauss AI特性-AI…

微服务之负载均衡器

1、负载均衡介绍 负载均衡就是将负载(工作任务,访问请求)进行分摊到多个操作单元(服务器,组件)上 进行执行。 根据负载均衡发生位置的不同, 一般分为服务端负载均衡和客户端负载均衡。 服务端负载均衡指的是发生在服务提供者一方&#xff…

Visual Studio 使用第三方库管理工具 vcpkg

一、介绍 Windows下开发C/C程序,少不了用开源的第三方库。比如线性代数和矩阵分析的库eigen,或者图像处理的OpenCV库。虽然这些库都是开源的,但是由于要编译debug和release版本的,32位以及64位的,如果像FFmpeg…

基于springboot实现校园组团平台系统项目【项目源码】计算机毕业设计

基于springboot实现校园组团平台系统的设计演示 SSM框架介绍 本课题程序开发使用到的框架技术,英文名称缩写是SSM,在JavaWeb开发中使用的流行框架有SSH、SSM、SpringMVC等,作为一个课题程序采用SSH框架也可以,SSM框架也可以&…

FullCalendar日历组件集成实战(14)

背景 有一些应用系统或应用功能,如日程管理、任务管理需要使用到日历组件。虽然Element Plus也提供了日历组件,但功能比较简单,用来做数据展现勉强可用。但如果需要进行复杂的数据展示,以及互动操作如通过点击添加事件&#xff0…