首页 > 其他分享 >测试采样率变化对音频的影响

测试采样率变化对音频的影响

时间:2024-08-01 08:59:57浏览次数:8  
标签:采样 采样率 转换 音频 44100 测试 48000

SRC(Sample Rate Convert,采样率转换)是hifi发烧友老生常谈的一个问题。为了让多个来源的音频可以同时输出给设备,操作系统会将全部的音频转换为同一采样率,比如Android设备会将音频采样率统一转换为48kHz。这篇文章测试了不同安卓设备和版本之间的音频重采样:2021年Android设备SRC(采样率转换)现状观察

发烧友们认为,SRC转换是会极大影响音质的,且无法接受的,而我也一直认为会影响音质,并且几乎一直尽力的使用USB独占或ASIO来播放音乐,甚至最近动了买一个播放器的念头。

但真的会影响吗?或者说真的会产生人耳可闻的影响吗?我开始思考这个问题。

理论分析

先说一下什么是采样率。

声音由如下图中的振动产生,振动的幅度处于不断的连续变化之中,但要将其转换到数字系统中时,则必须进行离散化,比如一秒钟之内我对原始振幅采样48000次,来模拟这种现实世界中连续的变化。

img

img

采样率就是一秒钟有多少个采样点来描述音频的振幅。

再说采样率转换,理论上来说,采样率转换对音质的影响和转换算法有非常大的关系。

先考虑整数倍向上转换,比如48kHz转换成96kHz,如下图所示,原来的两个频点中间会多出一个频点,该频点如何选择是采样率算法决定的,比如它可以选择两点之间的均值,也可以选择和上一个点完全一致,目前的常见的插值算法有:一阶保持FOH、零阶保持ZOH、三次样条函数spline和sinc函数。对这些转换算法的讨论目前受限于本人能力水平,无法做到。

img

整数倍向上转换至少会保持转换前的采样点,非整数倍转换则会丢失这些原始采样点,下面我画个简单的图示意一下:

img

下面是同一个音乐经过采样率转换后(48000->44100)的波形对比,可以根据目前竖线的位置来判断,采样点之间已经发生变化。

img

这是从时域上的分析,我们知道时域的变化将直接影响频域,但这里的影响应该不会那么明显,采样点足够多,对振幅走势的模拟应该不会有很大变化。从频谱图上几乎也看不出啥,硬要说区别,可能就是极高频有些区别,毕竟48000kHz的截断频率是24kHz,44100则是22.05kHz,但这里的区别人耳不可闻。

img

理论上:

  • 无论是整数倍还是非整数倍,都和采样率转换算法有很大关系
  • 整数倍的向上转换,会保留原始采样点,插入新的采样点
  • 整数倍的向下转换,会保留部分原始采样点
  • 非整数倍的向上向下转换,会生成很多新的采样点

实践

48000->44100

在Reaper中将48kHz和44.1kHz的音频一起播放,并反相其中一个,可以看到在响度较大的部分总轨偶尔会有声音出现,这一部分是否是不可闻的极高频呢?

img

通过pro-q的波形展示,我们可以看到几乎是从10k之前一点都有很微弱的声音变化,小于-100db,这块不用担心是否可闻,这和你回放设备的THD几乎在同一水平线。而20k这块一直都很高,这是理所应当的,因为44100高频的截止点更低,这是预期之中的。

img

这里我会怀疑,ProQ的示波会不会不准,于是我又打开了另一个频率图监测的插件,这次可以看到几乎是在全频段都有声音出现,但大部分小于-114db,无需考虑它们会不会影响到声音,你的解码器、放大器、耳机等带来的失真可能都会比这个级别高。

img

48000->44100->48000

如果经过多次转换呢?我们担心若整个听音链路中经过多次采样率转换,会不会造成可闻的失真。

我们把48000的音频转换为44100再转换回48000,然后和原始的48000音频对比,可以看到音频之间的差异更大了,但经过两次转换,除了截止频率之外,依然没有任何频率达到-100dB的声压级(中频高频部分偶尔有点危险了)

img

ABX双盲听测试

暂时没时间做,有时间开搞,我觉得不可能听出来

测试流程

  1. 从网易云下载音频,得到48khz/16bits的原始音频
  2. 导入到Reaper,以44.1khz/16bits导出,得到转换后的音频
  3. 将转换后的音频导入,反相

结论

我们进行了48000到44100最终再转回48000的采样率转换,最终的结论是有差异,但微乎其微,人耳几乎不可闻。

但本次的实验充满了各种不严谨因素:

  • 采样率算法的不同,安卓或windows平台的重采样算法可能不同
  • 测试软件Reaper是否可靠,比如它是否会将导入的音频直接进行二次重采样,这样实际上我们看到的结果就不仅仅经历了两次重采样了;再比如它两个轨道间的播放是否存在延时?这样的话我们看到的区别可能不完全是采样率转换带来的
  • 频谱图插件靠谱吗?

参考

标签:采样,采样率,转换,音频,44100,测试,48000
From: https://www.cnblogs.com/lilpig/p/18335384

相关文章

  • 《最新出炉》系列初窥篇-Python+Playwright自动化测试-61 - 隐藏元素定位与操作
    1.简介 对于前端隐藏元素,一直是自动化定位元素的隐形杀手,让人防不胜防。脚本跑到隐藏元素时位置时报各种各样的错误,可是这种隐藏的下拉菜单又没有办法避免,所以非常头痛,这一篇只为交流隐藏元素自动化定位处理方法以及宏哥自己的一点浅薄见解。2.什么是隐藏元素隐藏元素,熟悉前端......
  • 手写 Hibernate ORM 框架 05-基本效果测试
    手写Hibernate系列手写HibernateORM框架00-hibernate简介手写HibernateORM框架00-环境准备手写HibernateORM框架01-注解常量定义手写HibernateORM框架02-实体Bean定义,建表语句自动生成手写HibernateORM框架03-配置文件读取,数据库连接构建手写Hi......
  • 基于N32L40x CmBacktrace mdk5平台下的移植测试
    首先感谢大神提供的开源库CmBacktrace开源地址:https://github.com/armink/CmBacktrace/releases/latesthttps://gitee.com/Armink/CmBacktraceCmBacktrace是什么CmBacktrace一款针对ARMCortex-M系列MCU的错误代码自动追踪、定位,错误原因自动分析的开源库CmBac......
  • 安全测试--常见漏洞--XSS
    漏洞简介Cross-SiteScripting(为了与CSS区别,安全领域叫做XSS)攻击是注入的一种,主要是将恶意脚本注入到可信站点的HTML页面等网页文件中,当攻击者将带有恶意脚本的网页链接发送给用户,用户打开链接,浏览器会认为恶意脚本来自可信站点而执行举个例子 @app.route("/")defindex():......
  • 2024暑假集训测试16
    前言比赛链接。真是一次比一次唐了。被莫反害惨了属于是(其实完全是自己唐吧),T1狂推莫反不止,一直想着怎么处理\(999\)的限制,最后推出来了复杂度是\(999\sqrtn\)的,过不去,继续唐我的高级分块套分块做法,比赛快结束了才发现正因为那个限制所以我直接枚举就行了,丫的最后少了......
  • [米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-22 TPG图像测试数据发生器设计
    软件版本:Anlogic-TD5.9.1-DR1_ES1.1操作系统:WIN1064bit硬件平台:适用安路(Anlogic)FPGA实验平台:米联客-MLK-L1-CZ06-DR1M90G开发板板卡获取平台:https://milianke.tmall.com/登录"米联客"FPGA社区http://www.uisrc.com视频课程、答疑解惑! 1概述TPG(video_test_pa......
  • 使用Postman测试API短轮询机制:深入指南
    短轮询是一种Web开发中常用的技术,用于在客户端和服务器之间定期检查更新。与长轮询或WebSockets等技术相比,短轮询简单易实现,但可能带来较多的HTTP请求,从而增加服务器负担。Postman作为一个强大的API测试工具,可以用来模拟和测试短轮询机制。本文将详细介绍如何在Postman中测......
  • Postman中测试Webhooks的全面指南
    Webhooks是一种在互联网上进行事件通知的简单而有效的方式。它们允许服务在事件发生时将信息推送给订阅者,而不是让订阅者轮询服务以检查是否有更新。Postman是一个多功能的API开发工具,它不仅可以用于测试RESTfulAPI,还可以用于测试Webhooks。本文将详细介绍如何在Postman中......
  • 揭秘等保测评中的渗透测试技术
    在信息安全领域,等保测评(信息安全等级保护测评)是确保信息系统达到相应安全保护等级的重要评估过程。而渗透测试作为等保测评中的一项关键技术手段,扮演着至关重要的角色。本文将深入揭秘等保测评中的渗透测试技术,探讨其原理、方法、流程以及重要性。一、渗透测试的定义与目的......
  • 安装lkp-test性能测试工具
    (参考官网)https://gitee.com/openeuler/technical-certification/blob/master/testing-tools/欧拉技术测评ISV商用软件测试工具lkp-tests用户指南.md#步骤3-执行兼容性测试从有问题的步骤开始修改:工具安装步骤6:写入环境变量exportLKP_PATH="/root/lkp-tests"测试执行步骤2:安......