根据文件大小计算音频的采样率和位深度

时间:2018-10-24 17:56:32

标签: excel vba sample-rate aiff bit-depth

我在这里需要一些数学/逻辑方面的帮助。使用aif文件。

我写了以下内容:

        LnByte = FileLen(ToCheck)                                                   'Returns Filesize in Bytes
        LnBit = LnByte * 8                                                          'Get filesize in Bits
        Chan = 1                                                                    'Channels in audio: mono = 1
        BDpth = 24                                                                  'Bit Detph
        SRate = 48000                                                               'Sample Rate
        BRate = 1152000                                                             'Expected Bit Rate

              Time_Secs = LnBit / Chan / BDpth / SRate                              'Size in Bits / Channels / Bit Depth / Sample Rate
              FSize = (BRate / 8) * Time_Secs                                    '(Bitrate / 8) * Length of file in seconds

ToCheck是循环浏览文件文件夹时的当前文件。

所以我要根据文件的大小(位/通道/位深度/采样率)找到音频的长度。这假定位深度和采样率正确(我需要文件为24位/ 48kHz)。

Time_Secs =文件的长度,以秒为单位。

FSize =使用Time_Secs基于24 / 48kHz的文件大小

可能是因为FSize使用了Time_Secs,所以我不知道如何确定文件采样率和/或位深度是否正确...

假设24 / 48k应该每秒提供144,000字节

假设16 / 48k应该每秒提供96,000字节

如果使用上述代码检查16位/ 48 kHz的文件,则给出的错误时间以秒为单位(自然),但文件大小正确……即使位速率为1,152,000,也应该是错误的。 -似乎时间上的差异弥补了比特率上的差异-否则我看错了。

如果文件的采样率/位深度实际为48,000 Hz / 24位,我将如何调整公式或进行数学计算?还是有完全不同的方式?记住它们是aif文件,而不是wavs。

希望如此。

非常感谢!

0 个答案:

没有答案