java数字音频最强教程之音频的王者之路(音频发烧友篇)

7 篇文章 7 订阅
7 篇文章 0 订阅

讲一下音频,其实是一门“玄学”,有的人喜欢听震撼低音,有的喜欢通透人声,想要做出一款牛逼的“发烧”音乐播放器不仅需要程序员,还要程序员懂音频。从我慢慢接触音响后,我就慢慢变成了一个音频发烧友,奈何家里的音响只是千元入门级别,只能靠着软件的均衡器来宠我的耳朵,当时找到了电脑版foobar2000,可以安装插件,调节31段均衡器,自以为自己很专业。。过了几年博主上学时用上了安卓,当时有两款播放器让我十分喜爱,rockbox,poweramp,使用后才有了对软件均衡器的兴趣,因为实在太赞👍了,普通耳机可以听出连千元机耳机也听不出的感觉,低频淳厚而不浑浊、中频饱满有力而通透、高频明亮清晰而不破音,特别是rockbox安卓版,可惜好景不长,rockbox可能因为免费导致社区倒下了,并且是移动端,想来这些年播放器层出不穷,千千静听、QQ音乐、酷狗到现在的网易云,也没有一款令我满意的,自此博主开始了自己音频之路研究,如今几年过了,博主对这方面小有成就,这是很久前写的试听demo,纯h5,目前有些bug的,当时用的web audio api实现,如今通过java实现了服务端音频滤波功能,滤波器算法也优化了,要是做成产品,目测可以秒杀市面上所有音乐播放器,没错是秒杀所有,有老板有兴趣也可以私信我。

什么是均衡器、什么是滤波器

均衡器简单点说是一种可以能对高频、中频、低频三段频率电信号分别进行调节。那么数字音频中的均衡器怎么实现的,其实就是一个个的滤波器组合,比如lowpass又名低通、highpass又名高通、peak、butterworth的高低通等。低通又名高切,顾名思义只会切除高频声音,让低频通过,并不会对音频有增益效果,目前大多播放器也都使用了这两个,所以调节均衡器效果不好,甚至还会破音。

当今基于软件的滤波方法植根于较旧的模拟电子设计,而滤波器设计只是电子技术根本性变化的一个例子,该技术始于模拟设计,后来转向基于集成电路的数字等效技术,并最终实现了纯基于算法的设计。另一种说法:滤波器曾经是用数学方程构想出来的,然后在模拟电路中实现,但目前,数学方程就是滤波器——写一个合适的方程一步一步地开始和结束这个过程,在某些情况下,即使那样方程没有封闭形式的解。对于音响音频而言就是最开始的模拟信号升级成为了音质更精准的数字信号。

服务端音频实时/离线处理实现目标

  • 调节频率
  • 变声器
  • 消除人声/保留人声
  • 淡入/淡出
  • 混响
  • 3d音乐
  • 立体声转单声道
  • 压限器
  • pingpong交替
  • ……

基础知识

这是一个模拟最简单滤波器类型的示例 - 电阻和电容排列为低通滤波器:
在这里插入图片描述在这里插入图片描述
在电子学的早期,人们会从基本原理来分析 RC 电路:

  • 在这个简单电路中流动的瞬时电流与电阻两端的电压成正比(一世=乙电阻,欧姆定律)。
  • 电容器电压变化的速率也与电流成正比。
  • 在零时刻,电容器两端的电压为零,因此电阻器的电压和电路的电流都处于最大值。
  • 随着时间的推移,电容器两端的电压增加,导致电阻器的电压下降。这意味着电路的电流下降,从而 - 导致电容器的电压变化率下降。
    通过差分方程 把数字数据样本的时间序列来模拟一个简单的 RC 滤波器

再来看看数字音频滤波算法所用的差分方程(双二次差分方程算法)
在这里插入图片描述

参考

这里有些链接是维基百科的链接,可能需要f q才能看

  • Nyquist-Shannon 采样定理
    当您更改采样率或中心频率时,如果滤波器的中心频率具有更高的值,则它会自动限制为小于或等于采样率的 1/2,该定理实质上表示数字通道的有意义带宽限制为采样率的 1/2。一个更有用的值是采样率的 1/4,位于滤波器可用带宽的中间。

  • FFT快速傅里叶变换
    可以用于计算频谱展示,将时域转换到频域

  • 傅里叶滤波分析算法
    我们的耳朵实际上是一个复杂的生物傅立叶滤波器

  • 双二次滤波器算法
    不仅能用于音频,还可用于计算无线电波,收集天气图的接收器/转换器等

  • web audio 双二次滤波算法 目前web audio api中的双二次滤波器(BiquadFilter)也是参考Robert Bristow-Johnson写的Audio-EQ-Cookbook做出来的,最初的Audio-EQ-Cookbook项目巧好还是java项目

下一章,数字音频滤波器

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值