Как декодировать аудио данные в формате WAV/RIFF?
Я пытаюсь создать программу для генерации случайного аудио, которое можно записать в файл WAV/RIFF. Благодаря этому я могу легко понять заголовок, и я нашел, как записать байтовые данные в файл WAV/RIFF, но что я не могу найти, так это то, что определяет, как аудиоданные WAV/RIFF кодируются в эти байты.
Поэтому я пытаюсь проанализировать данные (не пытаясь передать это мне;)), чтобы узнать, что происходит в байтах, что позволяет мне правильно написать свою программу. Итак, есть ли что-нибудь, что объясняет, как декодировать аудиоблок файла WAV/RIFF, чтобы понять, что происходит в каждом байте (амплитуда, частота и т. Д.)? Я понимаю, что я могу что-то упустить здесь, возможно, каждый байт - это не то, что мне нужно искать, но опять-таки, похоже, есть только редкие данные, которые я смог найти по этой теме.
В данный момент я буду использовать для этого Java, поэтому, если есть какие-либо опции, специфичные для реализации, пожалуйста, дайте мне знать.
НОТА
Я также нашел это и то, что, кажется, находится в общей области того, что я ищу, но они все еще не достигают этого. Поэтому мне нужна спецификация или пример, который покажет мне, как анализировать отдельные байты, чтобы увидеть, что происходит, чтобы я мог научиться их писать.
РЕДАКТИРОВАТЬ
Один мой друг предположил, что я мог бы переосмыслить это, и что может быть библиотека Java, которая облегчила бы анализ необработанных аудиоданных в Java, чем делать это побайтово. Если это так, какие-либо предложения по этому вопросу или где искать?
1 ответ
Каждый образец в файле WAV - каждая 16-битная пара байтов после заголовка - представляет амплитуду. Если вы хотите обнаружить частоты, присутствующие в необработанном звуковом сигнале, вы, вероятно, захотите запустить FFT для сигнала.
Некоторое время назад я делал проект на Java, который включал чтение в файлах WAV и извлечение частот (используя библиотеку FFT под названием JTransforms). Не стесняйтесь изучать / использовать код.
Minim - это библиотека для таких вещей, которая также включает в себя функции генерации звука.