Получите двоичные данные от звуковых импульсов - PullRequest
5 голосов
/ 24 декабря 2010

У меня есть ИК-датчик, который имеет разъем TRS , и я могу записывать сигналы от своих пультов в аудио. Теперь я хочу управлять своим компьютером с помощью пульта ДУ телевизора, но я понятия не имею, как сравнить аудиовход с предварительно записанным звуком. Но после того, как я понял, что эти звуковые волны содержат только какие-то данные (двоичные данные), я могу превратить их в двоичные или шестнадцатеричные, так что сравнивать их намного проще.

Волны выглядят так: wave 1

И это: wave 2

Это записи кнопки «ОК», иногда на правом канале тоже есть импульсы, и я не знаю, почему, возможно, соединения в датчике повреждены. Хорошо, это не имеет значения, в любом случае

Мне нужна помощь с программой на Python, которая считывает эти импульсы и преобразует их в двоичную форму в режиме реального времени с аудиовхода (микрофон). Я знаю, это звучит как «Сделай это для меня, пока я наслаждаюсь своей жизнью», но у меня нет опыта преобразования звука / чтения ... Я ищу примеры на python для записи и чтения аудио, но безуспешно.

1 Ответ

4 голосов
/ 25 декабря 2010

Это довольно просто, если вы можете отказаться от требований реального времени: просто сохраните данные в виде файла .wav, а затем прочитайте их, используя волновой модуль Python .

Вот пример того, как читать wav-файл в Python,

import wave

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

Можно сделать это в режиме реального времени, но это сложнее, хотя и не супер сложно. Для реального времени я использую PyAudio , и хорошим началом было бы следовать примерам в демонстрациях. В них вы в основном открываете поток и одновременно читаете небольшие фрагменты, а если вам нужна интерактивность, вам нужно сделать это в потоке.

(Также обратите внимание, что звуковая карта будет фильтровать ваши аудиовходы, поэтому то, что вы видите, не будет истинным входным сигналом. В частности, я думаю, что пульты дистанционного управления часто имеют несущую частоту около 40 кГц, что выше человеческого слуха, поэтому я сомневаюсь, что звуковые карты хорошо работают в этом диапазоне, хотя их может быть достаточно в зависимости от того, что вы хотите сделать.)

...