Вот статья о том, как должен выглядеть wav-файл PCM:
https://ccrma.stanford.edu/courses/422/projects/WaveFormat/
Должен быть в состоянии написать небольшой сценарий, чтобы проверить заголовки и убедиться, что они выглядят нормально.
Обновить:
http://www.sendspace.com/file/cdy1hk
Вот небольшая утилита, которая может удовлетворить ваши потребности. Он проверяет файл, выводит некоторую информацию о файле и завершает работу. Код возврата равен 0 в случае успеха, ненулевой, если есть проблема с файлом.
Он написан на Python и зависит от библиотеки волн Python. Вы можете извлечь .py файл из zip и проверить / запустить самостоятельно, либо использовать скомпилированный exe вместе с включенными файлами поддержки.
Кажется, работает нормально, например, для файлов, выводимых с помощью lame --decode, и ловит, когда я обрезаю WAV (проверяет, чтобы убедиться, что размер файла нормальный).
Невозможно определить, были ли повреждены данные PCM без, например, внешних контрольных сумм и т.д.
Обновить:
Добавлена немного лучшая проверка ошибок. Скомпилированная exe-версия выходит из себя, когда wavcheck.py находится в той же папке, поэтому я поместил ее в подпапку (/src). Лол. Обновленная ссылка выше на новый файл.
Обновить:
Я взглянул на shntool в соответствии с предложением @boehj - похоже на хорошее программное обеспечение для проверки файлов WAV, и у него хороший подробный вывод. Его выходные данные могут быть тривиально проанализированы, или его исходный код может быть изменен, чтобы обеспечить состояние выхода «все в порядке» в режиме «информация» и / или «len». Как он есть, он имеет код выхода 0, даже если он сообщает о проблемах с файлом.
Домашняя страница для shntool: http://www.etree.org/shnutils/shntool/