Определение частоты дискретизации и битовой глубины звука в зависимости от размера файла

Мне нужна помощь с математикой / логикой здесь. Работа с 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-бит /48 кГц).

Time_Secs = Длина файла в секундах.

FSize = размер файла на основе 24/48 кГц с использованием Time_Secs

Возможно, из-за того, что FSize использует Time_Secs, я не могу понять, как, исходя из этого, выяснить, действительно ли частота дискретизации файла и / или глубина в битах действительно верны...

Предполагая, что 24 /48k должны дать 144 000 байт в секунду

Предполагая, что 16/48k должны дать 96000 байт в секунду

Если я проверяю файл 16-бит /48 кГц, используя приведенный выше код, он дает неправильное время в секундах (естественно), но правильный размер файла... даже если битрейт равен 1 152 000, он должен быть неправильным. - Казалось бы, разница во времени компенсирует разницу в битрейте - или я смотрю на это неправильно.

Как мне адаптировать мою формулу или выполнить математические расчеты, если частота дискретизации / битовая глубина файла на самом деле составляет 48 000 Гц / 24-бит? Или совсем другой путь? Помня, что это aif файлы, а не wavs.

Надеюсь, что это имеет смысл.

Спасибо заранее!

0 ответов

Другие вопросы по тегам