前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >音质评价(二):音质好坏由什么决定

音质评价(二):音质好坏由什么决定

原创
作者头像
singleli
修改于 2022-09-01 08:58:47
修改于 2022-09-01 08:58:47
2.4K0
举报
听过很多道理,却依然过不好这一生
听过很多道理,却依然过不好这一生

引言:听过很多道理,却依然过不好这一生

在动笔写本文的时候,脑袋里窜出的第一句话是一句经典台词,“听过很多道理,却依然过不好这一生”。看过《后会无期》的人,一定对这句话还有印象。类似的道理,其实放在这期音质评价专题中依旧适用,“听过很多道理,依旧很难评判音质好坏”。

且试试看你听不听得出音质好坏

这样说,各位怕是不服,在开始摆道理之前,大家可以做个测试。点进下面这个链接,带上你最好的耳机,试试看你是否能听得出来这几个音频的好坏

https://www.npr.org/sections/therecord/2015/06/02/411473508/how-well-can-you-hear-audio-quality

链接里一共有6组视频,分别找出其中你认为音质最好的一个并打钩。6组视频分别采用不同码率和编码方式,理论上是有音质差别的,如果6个你都答对了,那么恭喜你已经打败全世界97%的人。

选出你认为音质最好的
选出你认为音质最好的

放这组实验,目的倒不是为了说明音质跟参数无关,只是想表达对一般人而言,部分参数的调整可能并不真的影响用户体验,充分测试,选择一个适合你的参数方案才是最重要的。牺牲一些影响较小的参数,算清楚产品的经济账,是目前市面上大多数产品的选择,毕竟只有活着的公司才能笑到最后。

哪些因素会影响音频的质量?

这里先上结论:有N多的因素会影响音频的质量,N多是多少?音频从生产到消费的全过程,包括采集、传输、存储、播放,各个环节都有影响音质的因素存在,比如下面这些。

采集:环境噪音、采集设备好坏;

压缩:模拟信号转为数字pcm信号的时候就有损失,可以尝试提高采样率比如48k;

网络传输延迟比如编码、打包、网络传输、jitter buffer

网络丢包:比如rtc使用udp传输,丢包是必然的;

jitter抖动:比如rtc使用udp传输 数据丢失,可以使用jitter buffer;

回声:声学原因:布局、混响、延时大小、单双讲, 电学:信号干扰;

如果要对优化音质,就要从全链路进行优化,从采集阶段的麦克风等设备接口开始。

本文不发散,仅就数字音频文件 “采样率”、“编码格式”、“码率”等几个关键要素做探讨,一起来看看这几个关键参数对音质的影响是怎样的。

多高的音频采样率才够用:

PCM是能达到音频最高保真水平的格式,它被广泛用于素材保存及音乐欣赏,PCM也因此被称为无损编码格式。但这并不意味着 PCM 就能够确保信号绝对保真,它只能做到最大程度的无限接近原始声音,为什么这么讲呢?

在上文中讲到,采样是把连续的声音模拟信号转换为离散的数字信号的手段,那么在这个采样过程中,用多高的采样率是合理的呢?

带着上面的两个疑问,让我们重新复习一下奈奎斯特定理(Nyquist- Shannon),奈奎斯特采样定理是信号处理领域的一个定理,它是连续时间信号和离散时间信号之间的基本桥梁。

详细的推导过程不展开直接上结论,奈奎斯特定理告诉我们,用原始信号频率2倍以上的采样率对该信号进行采样就不会出现频率堆叠,就能够用离散信号重建出连续信号

还记得上节讲到,人耳能听到的最高频率约为20kHz,根据奈奎斯特采样定理,44.1kHz(又称为cd标准)已经能完全还原人耳能听到的声音,所以从原理上讲,采用更高的采样率对音质已经没什么帮助了。

有了以上的推导,开始的两个问题就有了答案:a)从连续到离散的过程变化,注定了只能是接近;b)超过2倍于原始频率的采样频率就能重建原始信号,40kHz以上就“够了”;

如果你对音频有一定了解,你那么你一定也好奇以下几个问题:

人耳能听到20kHz,为什么不用40kHz要用44.1kHz?

简单解释就是奈奎斯特定律描述的是理论上的极限值,实际上你的器件、算法的性能是达不到理论极限的,实操过程中要留一定的余量,因此40kHz不够用。 至于为什么是44.1kHz,这就是历史遗留原因了,跟早期录音设备有关,早期录音使用的是PAL录像制式(帕制,与之对应的有NTSC),场频 50Hz ,可用扫描线数 294 条,一条视频扫描线的磁迹中记录3个音频数据块,把他们相乘,就得到了 44100。

为什么48kHz也很常用

另一种最为常见的采样率便是48kHz,它是电影以及视频声音的主要标准。这是因为它的设计与现有的每秒24帧的电影帧速率标准相互集成。而与奎斯特频率类似,24帧是刚好可以使得一系列图像看起来像是流畅的运动图像的神奇数字。而音频采样率必须要是帧速率的倍数,才能保持同步,44.1kHz会随着时间的推移而导致明显的音画不同步现象,因此48kHz的采样率最为合适。

44.1kHz已经够了,为什么还要有96kHz、128kHz这些更高的采样率?

超过44.1kHz时人耳确实已经听不出差别了,但是有些乐器能发出更高频的声音,为了更好的保存这部分人类目前感知不到的声音,可以采用更高的采样频率,算是为未来做准备吧!

人耳能听到最高频率约为20kHz,根据采样定理,44.1kHz(cd标准)已经能完全还原人耳能听到的声音。更高的采样率对音质对于人耳识别更好的音质,本质上是没什么帮助的。

“mp3”的音质差在哪?

为什么通常mp3格式的音频质量,我们感觉会比其他格式差很多?常听歌的人,通常会下载wav格式或者flac格式的音频,为什么大家天然不信任“mp3”的音质?

忽略网络传输、录制环境等因素,单从转码控制变量的角度聊聊音质问题。前篇讲到了数字音频三要素,既然是要素,那必然是对音频质量有重要的影响。我们就从三要素为出发点对音频质量进行分析。

以QQ音乐下载的经典测试歌曲Hotel California为例,QQ音乐提供了4种音质,分别为 标准品质/HQ高品质/SQ无损品质/Hi-Res品质。

大家可以听听对比试试,再挑战一下自己的耳朵。

音乐软件提供的4中不同音质
音乐软件提供的4中不同音质

下表整理了4种音质的关键参,大家数做一下对比:

质量类别

码率

编码格式

采样率

声道数

位深

文件大小

标准品质

129 kb/s

mp3

44.1 kHz

stereo

s32

6.05MB

HQ高品质

321 kb/s

mp3

44.1 kHz

stereo

s32

15MB

SQ无损品质

803 kb/s

Flac

44.1 kHz

stereo

s16

37.5MB

Hi-Res品质

2725 kb/s

Flac

96 kHz

stereo

s32(24 bit)

127MB

几个参数的含义:

Stereo为双声道,Mono为单声道,s16为16位;

从上表的参数对比中,不难看出其中的区别,越是好音质,码率越高,且不再使用mp3格式。单从参数情况看上去是这样,实际情况如何呢,一起用眼睛“看看”音质的差别吧。

如何用肉眼看出音质差别?

下面分别看一下四首歌曲的频谱图,音质从高到低,看你是否能发现一些区别(软件使用介绍放在篇5中):

Hi-Res文件频谱图
Hi-Res文件频谱图
SQ无损文件频谱图
SQ无损文件频谱图
HQ高品质文件频谱图
HQ高品质文件频谱图
标准品质文件频谱图
标准品质文件频谱图

肉眼可见有以下几个区别,这也是通过对比频谱图直观感受音质的参考办法:

梅尔刻度范围

Hi-Res文件频谱图最上边参差不齐,整体高频部分都在24k左右,部分“毛刺”达到40k以上; SQ无损文件高频部分在21.5kHz做了裁剪; HQ文件高频部分在20kHz做了裁剪; 标准品质文件在16.5k附近做了裁剪;

Hi-Res品质文件频谱图
Hi-Res品质文件频谱图
SQ无损品质文件频谱图
SQ无损品质文件频谱图
HQ高品质文件频谱图
HQ高品质文件频谱图
标准品质文件频谱图
标准品质文件频谱图

从频谱图可以看出来以下几点:

  • 市面上不同音质压缩情况不一样,通常会把人耳不易识别的高频部分给剪裁掉,
  • 不一定编码指定的采样率时候44.1kHz,实际音频文件就真的按这个来的,像是44.1kHz采样率的mp3标准音质文件,实际16.5kHz以上的都被裁剪掉了。

裁剪高频的做法,必然带来的就是高频部分的缺失,对偏中低频的文件听感差别或许不大,但是对偏高频的文件,金耳朵应该是可以听出来的。

P.S. 梅尔刻度

梅尔刻度全称为梅尔频率倒谱系数(Mel-Frequency Cepstral Coefficients)。在 音质 一文中提到,人类的听觉只聚焦在特定的音频范围中,梅尔频率就是基于人类听觉感知来的。具体而言,“梅尔刻度是一种基于人耳对等距的音高(pitch)变化的感官判断而定的非线性频率刻度”,和频率赫兹的关系如下:m=2595*log10(1+f/700)

频谱图音频细节

在细节上也是可以看出来,高压缩率文件是会丢失一部分细节的。

不同文件的编码格式
不同文件的编码格式
不同音质文件频谱图对比
不同音质文件频谱图对比

直接通过看频谱图的这些细节,肉眼可见几个关键参数的实际差别,也就大致可以判断音质孰优孰劣了。

常用测试歌曲:

通常我们测试播放设备如耳机的表现,会试播一些特定的歌曲,这些歌曲中包含了一定的特点,如蔡琴《渡口》富含低频,可以测试低频是否浑浊,其中蔡琴的声音也可以用来测试人声的表现,陈百强的《偏偏喜欢你》配乐中使用的弦乐与钢琴配乐,可以测试在高频上的表现。以下为常用于测试低中高频的几首曲目:

测试低频可以用何训田的《尘鼓》和蔡琴的《渡口》

测试中频可以用Enya的《Amarantine》八只眼的《达坂城的姑娘》

测试高频可以用陈百强的《偏偏喜欢你》

经典测试歌曲评论区
经典测试歌曲评论区

小结

最后做个小结,影响音质的因素太多了从生产到传输、存储、播放各环节都有关,仅就音频文件本身而言,使用的采样率、码率、编码方式、声道数也都会影响实际效果。

采用合适的采样率、码率等参数,可以在不影响实际听感的情况下有效降低成本。

最后也是最重要的,每个人的耳朵都不一样,能不能听出音质差别来真不好说,选择市面上各家方案的时候没有捷径,一定要多试、多听、多对比。

Hi-Res到底是何方神圣:

最后,会到文章封面图,这个小金标!

小金标
小金标

这个图标估计大家多少都看到过,贴上这个图标的设备,多少都会沾上一个“贵”字。

Hi-Res是High Resolution Audio的缩写,它是索尼在2014年提出的最新高品质音乐标准。它的音质表现远远超过现有压缩音频格式、CD,音频格式的规格可高达192kHz / 24bit或者更高的解析度

依据CTA的定义:“Hi-Res高解析音频是一种无损音频,它在录音上力求最大程度还原源声,其音质表现高于CD音频源。”

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
App自动化测试之Appium环境搭建
Appium是一个开源、跨平台的测试框架,可以用来测试原生及混合的移动端应用。Appium支持IOS、Android及FirefoxOS平台。支持多种语言。
小博测试成长之路
2021/03/08
2K0
App自动化测试之Appium环境搭建
APP自动化测试系列之appium-desktop配置及录制脚本
点击上方蓝字“ITester软件测试小栈“关注我,每周一、三、五早上 08:30准时推送,每月不定期赠送技术书籍。
可可的测试小栈
2020/11/26
1.3K0
自动化测试 Appium之Python运行环境搭建 Part1
https://pypi.org/project/Appium-Python-Client/#files
授客
2019/09/10
6170
自动化测试 Appium之Python运行环境搭建 Part1
Appium移动端自动化测试--基础预热
近日开始了移动端自动化测试的学习之路,决定在学习的过程中进行笔记,总结学习,印象或许会深刻一些。
软测小生
2019/12/12
1.4K0
Appium移动端自动化测试--录制测试用例并运行
选择右下方的Send Keys, 跳出输入框,输入搜索内容并点击Send Keys按钮。
软测小生
2019/12/12
1.2K0
基于Appium的移动端UI自动化测试
移动端APP是一个复杂的系统,不同功能之间耦合性很强,很难仅通过单元测试保障整体功能。UI测试是移动应用开发中重要的一环,但是执行速度较慢,有很多重复工作量,为了减少这些工作负担,提高工作效率,需要引入可持续集成的自动化测试方案。
测试开发社区
2020/05/26
3K0
技术分享 | Appium环境安装与架构介绍
Appium 的核心是一个 Web 服务器,提供了一套 REST 的接口,接收到客户端的连接,监听到命令,在移动设备上执行这些命令,将执行结果放在 HTTP 响应中返还给客户端。
Hogwarts_测试
2022/05/31
2920
基于图像识别框架Airtest的Windows项目自动化测试实践
上个星期分享了《基于Sikuli GUI图像识别框架的PC客户端自动化测试实践》,但sikuli看起来怎么都像是上个世纪的界面风格,且功能过于简陋。而同样基于图像识别框架的Airtest,则无疑强大了许多,本次分享的内容是基于Airtest实现Windows应用的自动化测试,内容大纲:
大刚测试开发实战
2022/11/14
2K0
基于图像识别框架Airtest的Windows项目自动化测试实践
自动化测试框架Robot Framework - 自动化测试示例
SeleniumLibrary是Robot Framework的Web测试库,内部使用Selenium工具。
wangmcn
2022/07/26
1.9K0
自动化测试框架Robot Framework - 自动化测试示例
App自动化测试|Appium+Python自动化测试环境搭建(Windows)
windows下搭建python+appium环境搭建过程步骤如下:安装jdk并配置好环境变量(jdk版本1.8以上)安装android-sdk并配置好环境变量;具体步骤见:https://ceshiren.com/t/topic/4001安装安卓模拟器安装node.js(官网下载安装最新版本) ;下载地址:http://nodejs.cn/download/找到windows安装包下载并安装图片点击next按钮 图片点击勾选上 I accept the terms in the License Agre
霍格沃兹测试开发Muller老师
2023/01/13
9730
Appium+python自动化(二)- 环境搭建—下(超详解)
 宏哥的人品还算说得过去,虽然很久没有搭建环境了,但是换了新电脑设备,一气呵成,将android的测试开发环境已经搭建准备完毕。上一篇android测试开发环境已经准备好, 那么接下来就是appium的环境安装和搭建了。
北京-宏哥
2019/06/25
4.7K3
Appium+python自动化(二)- 环境搭建—下(超详解)
技术分享 | Appium环境安装与架构介绍
Appium 的核心是一个 Web 服务器,提供了一套 REST 的接口,接收到客户端的连接,监听到命令,在移动设备上执行这些命令,将执行结果放在 HTTP 响应中返还给客户端。
霍格沃兹测试开发
2022/05/31
6800
Windows环境Appium自动化测试环境搭建
下载地址:https://nodejs.org/en/download/releases/ 建议安装10以上版本。
清风穆云
2021/08/09
1.5K0
APP自动化:Appium极简上手
Appium是一个开源的自动化测试框架,用于原生,混合和移动Web应用程序。 它使用WebDriver协议驱动iOS,Android和Windows应用程序。关于它的运作流程,用图来介绍会更加生动形象一些:
happyJared
2018/12/06
2K0
Appium环境部署及自动化实现
一、Appium介绍 appium主要是一个移动 App (手机应用)自动化工具框架。 特点: 1.开源 2.跨平台 3.多语言 二、Appium工作原理 三、环境部署 1.安装jdk 安装配置环境变量 2.安装appium-python-client类库 pip install appium-python-client 3.安装Appium Server 安装地址: https://github.com/appium/appium-desktop/releases/tag/v1.2
懿曲折扇情
2022/08/24
7150
Appium环境部署及自动化实现
Appium移动端自动化测试--测试用例改造
可见下面的两个框架的脚本,略有不同,setup和setUp,teardown和tearDown。
软测小生
2020/02/13
1.1K0
Appium移动端自动化测试--测试用例改造
Appium+python自动化15-Mac上环境搭建
前言 mac上搭建appium+python的环境还是有点复杂的,需要准备的软件 1.nodejs 2.npm 3.cnpm 4.appium 5.pip 6.Appium-Python-Client
上海-悠悠
2018/04/08
9150
Appium+python自动化15-Mac上环境搭建
【Appium 自动化测试】搭建 Appium 环境踩坑记录
Python 在自动化测试方面也是非常好用的语言,平时我的工作中也会使用 Python 进行自动化测试的工作,包括接口测试,直接使用 requests 库调用接口就行,跟写爬虫一样;还有云服务的 UI 测试,也就是页面的测试,可以使用 selenium 进行,我经常使用 selenium 写爬虫,所以使用起来也是非常顺手;而进行手机 app 的测试,也有相关工具,现在最流行的就是 appium 了,结合 Python 的连接库,就可以进行手机 app 的自动化测试了。
Hopetree
2022/09/26
1.1K0
【Appium 自动化测试】搭建 Appium 环境踩坑记录
win10上搭建appium自动化环境
以前都是在mac机器上搭建环境,觉得好麻烦,自己还曾今写了个脚本来一键搭建。 现在在win10上搭建,发现开始很容易,也会有一些坑。把这些坑都记录下来,也许将来可以翻翻。 前面已经搭建了java,android,node的环境,现在搭建appium是水到渠成了。 先去看看最新的版本是啥。打开官网appium.io有点慢,耐心等待。
赵云龙龙
2020/03/26
1.1K0
win10上搭建appium自动化环境
自动化-Appium-环境搭建-Android(Python版)
JDK(Java Development Kit)是Java语言的软件开发工具包,主要用于移动设备、嵌入式设备上的Java应用程序。JDK是整个Java开发的核心,它包含了Java的运行环境,Java工具和Java基础的类库。
wangmcn
2022/07/25
4K0
自动化-Appium-环境搭建-Android(Python版)
推荐阅读
相关推荐
App自动化测试之Appium环境搭建
更多 >
LV.1
这个人很懒,什么都没有留下~
目录
  • 引言:听过很多道理,却依然过不好这一生
  • 且试试看你听不听得出音质好坏
  • 哪些因素会影响音频的质量?
  • 多高的音频采样率才够用:
    • 人耳能听到20kHz,为什么不用40kHz要用44.1kHz?
    • 为什么48kHz也很常用
    • 44.1kHz已经够了,为什么还要有96kHz、128kHz这些更高的采样率?
  • “mp3”的音质差在哪?
  • 如何用肉眼看出音质差别?
    • 梅尔刻度范围
    • 频谱图音频细节
  • 常用测试歌曲:
  • 小结
  • Hi-Res到底是何方神圣:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档