作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图找到一种方法来强调音频中高点和低点之间的差异。我似乎找不到有关如何执行此操作的文档-也许可以使用ffmpeg完成。非常感谢来自对信号处理了解更多的人的一些指导。
最佳答案
从根本上讲,膨胀器与压缩机相反。您可能会有更多的运气来查找有关如何实现这些功能的文档。它们与噪声门也有很多共同点。
扩展器
基本方法是实现一个包络跟随器,并使用包络的值缩放音频源。包络跟随器尝试跟踪音频信号的幅度。
基本的pythonic伪代码框架看起来像这样:
envelope_follower e # some envelope follower, we'll replace this
for each sample x:
amplitude = e.get(x) # use the envelope follower to estimate the amplitude of e
x = expand(x, amplitude) # apply some expansion operation
expand
操作如下所示(假设您的样本在-1.0到1.0之间):
def expand(x, amplitude):
return x * amplitude
# just an example
def expand(x, amplitude):
return x * clamp(1.2 * amplitude - 0.2 * (amplitude * amplitude), 0.3, 1.0)
class envelope_follower:
lowpassfilter filter;
def get(x):
return filter.process( abs(x) )
class envelope_follower:
# Parameters required. These are just made up
attack_threshold = 0.6
release_threshold = 0.3
attack_time = 10 # in samples
release_time = 1000 # in samples
amp = 0.0
def get(x):
# we still work with the absolute value.
# You might use another measure of amplitude here like RMS
# or even the filtered rectifier above
a = abs(x)
if x > attack_threshold:
amp += (1.0 / attack_time)
else if x < release_threshold:
amp -= (1.0 / release_time)
amp = clamp(amp, 0.0, 1.0)
return amp
expand
函数关于audio - 如何进行音频扩展/标准化(强调高低之间的差异),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53259601/
哟 快速提问:Nhibernate HiLo id 在数据库中是唯一的吗? 我问的原因是我们有多个实体,这些实体有一个与之关联的图像。在客户端 - 我只是将这些图像存储在一个文件夹中,使用实体 ID
我有一个 Arduino,我想知道 HIGH 和 LOW 到底是什么意思,就实际值而言......它们是否有签名 ints? 无符号整数? 无符号字符?他们的值(value)观是什么?我猜测 HIGH
全部。我对编程很陌生,我试图找出为什么我的代码不能正常工作。它会一直运行良好,直到您告诉计算机它的第一个猜测是否太高 (h) 或太低 (l)。比如说,如果猜测太高,并告诉计算机,之后的每次猜测都会继续
我是一名优秀的程序员,十分优秀!