|
|
1
10
我认为“最小样本值”的概念没有多大意义,因为样本值只是代表声波在某个时刻的当前“高度”。即其绝对值将在音频剪辑的峰值和零之间变化。因此,拥有
我认为一个更好的方法可能是使用某种权重函数,根据其大小减少样本值。即,较大的值比较小的值减少很大的百分比。这也会带来一些失真,但可能不是很明显。 编辑:这里是这样一个方法的示例实现:
作为参考,这是您的算法对振幅为10000的正弦曲线所做的操作:
这解释了为什么音频质量在被标准化之后变得更差。
这是用我的建议跑步后的结果
|
|
|
2
5
音频的“标准化”是增加音频电平的过程,使最大值等于某个给定值,通常是可能的最大值。今天,在另一个问题中,有人解释了如何做到这一点(见#1): audio volume normalization 然而,你会继续说:“特别是,当音频文件包含音量峰值时,我正试图将其调平,这样安静的部分会更大,峰值也会更安静。”这被称为“压缩”或“限制”(不要与编码MP3时使用的压缩类型混淆!)。你可以在这里阅读更多信息: http://en.wikipedia.org/wiki/Dynamic_range_compression 一个简单的压缩器并不特别难实现,但你说你的数学“弱得令人尴尬”。所以你可能想找到一个已经构建好的压缩器。您可能能够找到在中实现的压缩器 http://sox.sourceforge.net/ 并将其从C转换为Java。据我所知,压缩器的唯一java实现是谁的源代码可用(而且不是很好) this book 作为解决问题的另一种方法,您可以将文件标准化为每段1/2秒的段,然后使用线性插值连接每个段的增益值。您可以在此处阅读有关音频线性插值的信息: http://blog.bjornroche.com/2010/10/linear-interpolation-for-audio-in-c-c.html 我不知道源代码是否可用于 the levelator ,但这是你可以尝试的其他方法。 |
|
|
Muhammad Umer · 为什么这个随机数猜谜游戏模拟产生5.8 1 年前 |
|
|
Alisa Petrova · 在有向图中更改一对顶点以创建循环 1 年前 |
|
|
D W · Python-将浮点数从2转换为10到100位小数 1 年前 |
|
|
Bartol · 确定python龟图形中的角度 1 年前 |
|
|
randomAlgo · 将弹簧设置为相同长度的成本最低 1 年前 |
|
Fyodor · 在C中使用sin和cos计算数学表达式不正确? 2 年前 |
|
Sergio · python中大量数字的乘法 2 年前 |