我目前有一个项目,该项目可捕获原始数据文件并通过合并wave标题来生成wave文件。但是,该文件需要规范化。导入Audacity并使用规范化效果时,文件将按预期播放。但是我不确定如何在代码中执行此操作。该代码是用VB.net编写的。我找到了这个示例https://markheath.net/post/normalize-audio-naudio,它可以满足我的需求,但是我没有合并NAudio,如果可以的话,我希望避免依赖。我几乎没有使用音频文件的经验,也很少有VB的经验。我不确定要看什么代码会有所帮助,因此如果有人需要引用,我也可以提供到目前为止的代码。
任何帮助表示赞赏。
最佳答案
如该示例所述:
It’s simply amplifying every sample in the file by the largest amount possible without causing any clipping.
当放大的(即按比例缩放的)样本(即值)变得比目标wave format中可表示的最小值/最大值小/大时,就会发生削波。假设格式为16位(带符号)样本,则minimum and maximum values为−32,768和32,767。 (在示例中,这些值被转换为浮点数,大概在-1.0和1.0之间。)
因此,您必须遍历原始数据文件中的样本以找到具有最大绝对值v的样本,然后将所有样本乘以32,767 / v。
关于c# - 在VB/C#中规范Wave文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62945330/