WAV запись поток извлечение номер тома - PullRequest
1 голос
/ 22 декабря 2011

У меня есть Stream аудиоданных, поступающих из моего микрофона, для которых я хотел бы отобразить текущий уровень громкости записи.Из того, что я собрал, мне нужно хранить число байтов в массиве, а затем я могу использовать эти данные для обработки одного сэмпла из записи.Как определить, что такое X, и что мне нужно сделать, чтобы получить уровень громкости этих данных?

Я работаю в C #, но даже псевдокод будет очень полезен

1 Ответ

3 голосов
/ 22 декабря 2011

WAV-файлы имеют амплитудную модуляцию, поэтому каждое значение выборки равно относительной громкости.Среднее по времени, и вы получите средний объем.

На что следует обратить внимание:

  • Вышеуказанное относится только к несжатым данным LPCM.Файлы WAV могут быть сжаты, и в этом случае вам потребуется реализовать любой декодер, необходимый для работы с несжатыми данными.
  • Файлы WAV могут быть как 8-разрядными, так и 16-разрядными
  • В файлах WAV есть некоторая информация заголовка, которую можно пропустить, формат файла хорошо задокументирован (https://ccrma.stanford.edu/courses/422/projects/WaveFormat/)
  • Следите за порядком при чтении заголовка

Вот пример кода .NET для чтенияWAV файлы: http://www.codeproject.com/KB/audio-video/WaveEdit.aspx

...