C++ 如何获取wav文件卷级别?

C++ 如何获取wav文件卷级别?,c++,audio,wav,analysis,C++,Audio,Wav,Analysis,我需要一个类或函数之类的东西,可以将wav文件作为输入,然后给我vloums值。 如果这样的东西不存在,我应该如何获得这些值? 有什么办法吗 我有频率,我要音量。 顺便说一下,C++中的IM编码。 谢谢你的回答 说明:我所说的音量是指声音的强度和振幅。考虑到我认为不能从wav文件本身检索音量信息。此外,一般来说,“音量”取决于播放wav文件的硬件,而不是wav文件本身(如果我没有弄错的话) 体积与可测量量相关:均方根(RMS)。一旦您获得了对音频曲线的访问权,就可以从概念上为选定的音频缓冲区大小

我需要一个类或函数之类的东西,可以将wav文件作为输入,然后给我vloums值。 如果这样的东西不存在,我应该如何获得这些值? 有什么办法吗

我有频率,我要音量。 顺便说一下,C++中的IM编码。 谢谢你的回答


说明:我所说的音量是指声音的强度和振幅。

考虑到我认为不能从wav文件本身检索音量信息。此外,一般来说,“音量”取决于播放wav文件的硬件,而不是wav文件本身(如果我没有弄错的话)

体积与可测量量相关:均方根(RMS)。一旦您获得了对音频曲线的访问权,就可以从概念上为选定的音频缓冲区大小(整个剪辑或某些部分)计算RMS,您只需遍历一组样本(缓冲区的每个条目)例如,其中音频曲线值可能在-1到+1之间变化,您将每个值平方,然后将其添加到运行总数中,然后取该总数的平方根。RMS只是源值的平均值。除了滚动您自己的算法签出实现之外:

您知道一些什么吗?您所说的“数量”是什么意思?最高响度?某种程度的平均?还有别的吗?我说的音量是指声音的强度和振幅。