1

Levelator是一个程序,您可以输入一个音频文件,它会生成另一个音量更恒定的文件,以确保纠正任何录音问题(例如一个人的声音太大或几乎听不见)。

你知道我可以在 Windows 中使用 .Net 来执行相同任务的任何库吗?或者命令行程序也足够好。

4

4 回答 4

3

事实上,Levelator 既不是压缩器也不是规范器。是的,它正常化了,但它比你可以用 sox 做的更多,更聪明一个人就够了。在这里查看算法讨论:http: //www.conversationsnetwork.org/levelatorAlgorithm

...道格(Levelator 共同创作者)

于 2010-06-18T22:47:11.823 回答
2

执行此操作的命令行程序是sox

该算法的一般思想是找到最高绝对值的样本(无论采样数据的测量如何,音频都应该居中)。

你将你的最大可能值除以这个数字(保证等于或更小),然后将它乘以你想要的峰值水平(即你希望它达到最大值的 0.95 吗?全 1.0?)。如果结果不是一个,它将成为您的比例值。然后您遍历您的文件并将每个样本乘以该数字。

例如,对于 CD 质量的音频,样本的最高可能绝对值为 32767(为了使示例更容易,实际范围是 -32768 到 32767,但将 32767 视为最大值会使这里的事情变得更简单),所以如果你扫描通过,您发现的最高绝对值为 18000,而您的放大系数将为 1.8203888...,如果您希望最大音量为 0.9887997070223* 可用的最大值,则为您提供 1.8 的新比例因子。因此,您循环遍历保存音频文件的数组,并将每个样本的先前值替换为值 * 1.8。

这可以通过首先进行点击滤波器来优化,以消除杂散瞬态,还可以通过去咝声,通过消除扬声器无法产生或无法被扬声器听到的低频分量,确保波形均匀地以中值为中心。人耳。click filter 是低通的,de-esser 是高通的。运行这些滤波器后,将有更多空间来放大声音而不会引入失真。

于 2010-01-18T02:02:08.693 回答
0

您正在寻找的技术称为音频标准化。这个第三方代码Mp3SoundCapture提供了一种实现方式,但它是一个单独的应用程序,而不是一个库。

于 2010-01-06T03:34:28.737 回答
0

有两种主要方法可以解决这个问题:

  1. 归一化只涉及搜索音频中最响亮的部分,然后放大整个文件,使最响亮的部分达到最大音量。此技术仅在最大音量为 50% 或更少时才有用。如果您在输入文件的某处有一个达到最大音量的峰值,那么规范化对您没有任何作用。

  2. 压缩/限制这采用了稍微不同的方法,并广泛用于音乐录制。基本思想是任何超过一定音量(称为“阈值”)的声音都会变得更安静(或者在限制器的情况下,不允许声音超过一定音量)。这具有平衡整个录音音量的效果(安静的部分保持不变,而响亮的部分变得更安静)。然后您就可以放大整个信号而不使其失真(这称为补偿增益)。有关更多信息,请参阅这篇关于动态范围压缩的文章。

至于在 .NET 中实现这一点,NAudio将允许您查看输入 WAV 文件中的示例,从而允许您创建自己的规范化效果。我还在Skype Voice Recorder中演示了如何在 .NET 中实现压缩器。

您应该注意的最后一件事是,这些算法仅在您有权访问样本值时才有效。因此,例如,如果您的文件是 MP3,您需要先转换为 PCM,然后应用规范化/压缩,最后再转换回 MP3。

于 2010-01-06T09:37:10.273 回答