WAV файл восстановления данных - PullRequest
0 голосов
/ 12 ноября 2009

У меня есть ситуация, когда существует поврежденный файл WAV, из которого я пытаюсь восстановить данные.

Мои коллеги разбили большой WAV-файл на более мелкие WAV-файлы с соответствующими заголовками. Это дало интересные результаты.

Нарезанные на сегменты по 1 МБ мы получаем следующие результаты:

  • Первый сегмент волнового файла - это шум.
  • Второй сегмент файла волны искажен.
  • Четвертый сегмент файла волны ясен.

Этот шаблон повторяется для всей длины файла (после разбивки на более мелкие файлы).

Для 20 МБ ломтиков:

  • Первый сегмент волнового файла - это шум.
  • Второй сегмент файла волны ясен.
  • Сегмент третьего волнового файла искажен.

Опять же, этот шаблон повторяется для всей длины файла (после того, как он был разбит на более мелкие файлы).

Кто-нибудь знает, почему это происходит?

1 Ответ

2 голосов
/ 12 ноября 2009

Если WAV содержит несжатые (необработанные) образцы, восстановление должно быть простым. Вам нужно знать формат образца. Например: 16 бит, два канала, 44100 Гц (это качество CD). Поскольку один из сегментов в порядке, вы можете посмотреть на это, чтобы выяснить, каковы правильные значения.

Затем просто откройте WAV, используя эти значения, например, в Adobe Audition (ранее Cool Edit) или в любом другом волновом редакторе, который поддерживает импорт необработанных данных.

Редактировать : Хорошо, теперь ответим на ваш вопрос. Некоторые сегменты понятны, потому что тогда выравнивание правильное. Возьмите качество CD снова, как я описал ранее. Байты одного образца выглядят так:

left_channel_high | left_channel_low | right_channel_high | right_channel_low

(Я не уверен насчет порядка здесь! Но это только пример.) Таким образом, первый байт данных должен быть самым старшим байтом левого канала, иначе вы получите фрагменты двух выборок. интерпретируется как единый образец:

left_channel_low | right_channel_high | right_channel_low || left_channel_high
-------------------part of first sample------------------ || --second sample--

Вы можете видеть, что здесь все «смещено», что происходит потому, что размер ваших файловых фрагментов не кратен размеру выборки в байтах.

Если вам повезет, это просто приведет к замене каналов. Если вам не повезло, старшие и младшие байты меняются местами. Интересно, что это приводит к узнаваемому, но сильно искаженному звуку.

Что меня озадачивает, так это то, что шаблон, о котором вы сообщаете, повторяется в блоках three . Из вышесказанного, я бы ожидал, два или четыре. Возможно, вы используете необычный формат семпла, например 24-битный (3 байта)?

...