Сэмплов в секунду?

Мне интересно узнать о взаимосвязи между блоком образцов и его эквивалентом времени. Учитывая мою грубую идею до сих пор:

количество воспроизведенных образцов в секунду = общий размер файла / длительность.

так сказать, у меня есть файл 1.02 MB и продолжительность 12 сек (avg), у меня будет около 89,300 образцов в секунду. Это правда?

есть ли другие способы, как это вычислить? Например, как я могу узнать, сколько массив байтов[1024] эквивалентен in время?

2 ответов


вообще говоря, для образцов PCM вы можете разделить общую длину (в байтах) на продолжительность (в секундах), чтобы получить количество байт в секунду (для WAV-файлов будет некоторая неточность для учета заголовка). Как они переводятся в образцы, зависит от

  1. частота
  2. бита на выборку, т. е. обычно используется 16 бит = 2 байта
  3. количество каналов, т. е. для стерео это 2

Если вы знаете 2) и 3) Вы можете определить 1)

в вашем примере 89300 байт / сек, предполагая, что стерео и 16 бит на образец будут 89300 / 4 ~= 22 кГц частота дискретизации


в дополнение к очень хорошему ответу @BrokenGlass, я просто добавлю это для несжатый аудио с фиксированной частотой дискретизации, количеством каналов и бит на образец, арифметика довольно проста. Е. Г. для "CD-качества" звука, то есть частота дискретизации 44,1 кГц, 16 бит, 2 канала (стерео), поэтому скорость передачи данных:

  44100 * 16 * 2
= 1,411,200 bits / sec
= 176,400 bytes / sec
= 10 MB / minute (approx)