Хеширование необработанных аудиоданных

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

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

Аарон


person Aaron Summernite    schedule 02.10.2011    source источник
comment
Предположительно это вопрос конкретно для Windows?   -  person Paul R    schedule 02.10.2011


Ответы (1)


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

person Camille Goudeseune    schedule 21.10.2013