Аудио сэмплы в секунду? - PullRequest
       11

Аудио сэмплы в секунду?

8 голосов
/ 16 февраля 2011

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

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

Так, скажем, у меня есть файл размером 1,02 МБ и продолжительностью 12 секунд (в среднем), у меня будет воспроизводиться около 89 300 сэмплов в секунду. Это правильно?

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

Ответы [ 2 ]

19 голосов
/ 16 февраля 2011

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

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

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

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

16 голосов
/ 16 февраля 2011

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

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