Хеширование необработанных аудиоданных - PullRequest
0 голосов
/ 02 октября 2011

Я ищу решение этой задачи: я хочу открыть любой аудиофайл (MP3, FLAC, WAV), затем перейти к извлеченной форме и хэшировать эти данные. Дело в том, что я не знаю, как получить эти извлеченные аудиоданные. DirectX может сделать эту работу, верно? Кроме того, я полагаю, что если у меня есть два примера файлов MP3, отличаются 320 кбит / с и только теги ID3, и внутри файлов, смешанных со звуковыми данными, есть мусор (формат MP3 позволяет помещать мусор внутри), и я извлекаю оба файла должны получить точно такие же аудиоданные, верно? Я бы отличался, только если один файл 128, а другой 320, например. Итак, вопрос в том, есть ли способ использовать DirectX для получения этих извлеченных аудиоданных? Я предполагаю, что это будет какая-то функция, возвращающая байтовый массив или что-то в этом роде. Кроме того, было бы удобно просто извлечь весь файл без воспроизведения. Я хочу обработать сотни файлов, поэтому 3-10 минут / с каждый (если файлы должны воспроизводиться с естественной скоростью для декодирования) намного хуже, чем одна секунда для каждого файла (только извлечение) Надеюсь, мой вопрос понятен.

Большое спасибо за ответы,

Aaron

1 Ответ

0 голосов
/ 22 октября 2013

Используйте http://sox.sourceforge.net/ (мультиплатформенность).Это быстрее, чем в реальном времени, как вы хотите, и он разработан для пакетного режима гораздо больше, чем DirectX.Например, sox -r 48k -b 16 -L -c 1 in.mp3 out.raw.Переберите эти сотни файлов, используя любой язык сценариев, который вам нравится (bash, python, .bat, ...).

...