обработать сигнал из .wav и превратить его в двоичные данные - PullRequest
0 голосов
/ 06 июля 2010

Я записал радиосигнал в .wav, я могу открыть его в отваге и увидеть, что есть двоичные данные, закодированные с использованием определенного алгоритма. Кто-нибудь знает способ обработки сигнала, который содержится в .wav? чтобы я мог извлечь из него двоичные данные?

Я знаю, что мне нужно знать алгоритм кодирования, чтобы он работал правильно, кто-нибудь знает любую программу, которая делает что-то подобное?

Спасибо

Ответы [ 2 ]

1 голос
/ 07 июля 2010

Формат .wav, как правило, очень прост, а файлы wav обычно не содержат сжатых данных. Это вполне возможно, разобрать это самостоятельно, но гораздо проще использовать что-то уже сделано. Поэтому краткий ответ - найти что-то, что может читать файлы wav на вашем языке.

Вот пример в Python, использующий модуль wave :

import wave

w = wave.open("myfile.wav", "rb")
binary_data = w.readframes(w.getnframes())
w.close()

Теперь, куда вы идете, зависит от того, что еще вы хотите сделать. binary_data теперь является строкой Python из необработанных байтов. Если вы просто хотите нарезать это и упаковать его, вероятно, проще всего оставить его в этой форме. Если вы хотите манипулировать данными, такими как масштабирование, интерполяция, фильтрация и т. Д., Вы, вероятно, захотите преобразовать их в последовательность чисел, а для этого в Python вам нужно преобразовать их в numpy массив. Вы можете сделать это самостоятельно с помощью модуля struct , который предназначен для интерпретации строк как упакованных двоичных данных, или просто прочитать данные с помощью модуля scipy.io.wave , это для тебя. Как видите, большая часть этого быстро зависит от языка.

1 голос
/ 06 июля 2010

sox преобразует большинство аудиоформатов в большинство других аудиоформатов, включая необработанный двоичный файл.

...