кодировать двоичный код на аудио-питон или C
используя C или python (предпочтительный python). Как бы я закодировал двоичный файл на аудио, который затем выводится через гнездо для наушников, также как бы я декодировал аудио обратно в двоичный файл с помощью входного гнезда микрофона, до сих пор я узнал, как для скрытия текстового файла в двоичном формате с использованием python, он будет похож на RTTY-связь.
Это позволяет записывать данные на кассету.
import binascii a = open('/Users/kyle/Desktop/untitled folder/unix commands.txt', 'r') f = open('/Users/kyle/Desktop/file_test.txt', 'w') c = a.read() b = bin(int(binascii.hexlify(c), 16)) f.write(b) f.close()
- Python: создание звукового сигнала
- Воспроизведение аудио с помощью онлайн-компилятора
- Воспроизведение аудио с помощью Python
- Можно ли сравнивать две похожие песни с учетом их wav-файлов?
- Использование суперколлайдера с питоном
Из ваших комментариев вы хотите по битам обрабатывать бинарные данные, превращая каждый бит в высокий или низкий звук.
Вам все равно нужно точно определить, что такое высокие и низкие звуки, и как долго каждый из них звучит (и есть промежуток между ними и т. Д.). Если вы делаете это медленно, например, 1/4 секунды на звук, тогда вы относитесь к ним как к заметкам. Если вы делаете это очень быстро, например, 1/44100 секунды, вы рассматриваете их как образцы. Человеческое ухо не может слышать 44100 разных звуков за секунду; вместо этого он слышит один звук до 22050 Гц.
После того, как вы приняли эти решения, в вашей проблеме есть две части.
Во-первых, вам нужно создать поток выборок – например, поток из 44100 16-битных целых чисел на каждую секунду. Для действительно простых вещей, таких как воспроизведение фрагмента необработанного файла PCM в 16-битном монофоническом формате 44k или создание прямоугольной волны, это тривиально. Для более сложных случаев, таких как воспроизведение фрагмента файла MP3 или синтез звука из синусоидальных волн и фильтров, вам понадобится помощь. Модуль audioop
и несколько других в stdlib могут дать вам основы; кроме того, вам нужно будет искать PyPI для соответствующих модулей.
Во-вторых, вы должны отправить этот поток образцов на разъем для наушников. В Python нет встроенной поддержки. На некоторых платформах вы можете сделать это, просто открыв специальный файл и напишите ему. Но, в более общем плане, вам нужно будет найти стороннюю библиотеку PyPI.
Более простые модули работают для одного типа аудиосистемы. Mac и Windows имеют свои собственные стандарты, а у Linux – полдюжины разных. Существуют также некоторые модули Python, которые общаются с обертками более высокого уровня; вам, возможно, придется установить и настроить обертку, но как только вы это сделаете, ваш код будет работать в любой системе.
Итак, давайте рассмотрим один очень простой пример. Предположим, у вас установлен PortAudio в вашей системе, и вы установили PyAudio, чтобы поговорить с ним. Этот код будет воспроизводить квадратные волны 441 Гц и 220,5 Гц (чуть выше среднего С и низкий С) всего за 1/4 секунды (просто потому, что это действительно легко).
import binascii a = open('/Users/kyle/Desktop/untitled folder/unix commands.txt', 'r') c = a.read() b = bin(int(binascii.hexlify(c), 16)) sample_stream = [] high_note = (b'\xFF'*100 + b'\0'*100) * 50 low_note = (b'\xFF'*50 + b'\0'*50) * 100 for bit in b[2:]: if bit == '1': sample_stream.extend(high_note) else: sample_stream.extend(low_note) sample_buffer = b''.join(sample_stream) p = pyaudio.PyAudio() stream = p.open(format=p.get_format_from_width(8), channels=1, rate=44100, output=True) stream.write(sample_buffer)
Итак, вы хотите передавать цифровую информацию с помощью аудио? В основном вы хотите реализовать MODEM в программном обеспечении (независимо от того, является ли оно чистым программным обеспечением, он все еще называется модемом).
Модем (MOdulator-DEModulator) представляет собой устройство, которое модулирует аналоговый несущий сигнал для кодирования цифровой информации, а также демодулирует такой несущий сигнал для декодирования передаваемой информации. Целью является получение сигнала, который может быть легко передан и декодирован для воспроизведения исходных цифровых данных. Модемы могут использоваться по любым средствам передачи аналоговых сигналов, от светодиодов до радио. [Википедия]
Во всем мире вам нужны модемы для передачи данных через аналоговый носитель, будь то звук, свет или радиоволны. Возможно, ваш пульт дистанционного управления является инфракрасным модемом.
Модемы, реализованные в чистом программном обеспечении, называются soft-модемами . Большинство программных модемов, которые я вижу в дикой природе, используют некоторую форму модуляции FSK :
Частотная манипуляция (FSK) является схемой частотной модуляции, в которой цифровая информация передается посредством дискретных изменений частоты несущей волны. 1 Простейшим FSK является двоичный FSK (BFSK). BFSK использует пару дискретных частот для передачи двоичной (0s и 1s) информации. 2 При такой схеме «1» называется частотой метки, а «0» называется пространственной частотой. Временная область модулированной несущей FSK проиллюстрирована на рисунках справа. [Википедия]
Есть очень интересные приложения для передачи данных через атмосферу через звуковые волны – я думаю, это то, что использует shopkick для проверки присутствия пользователя .
Для Python проверьте проект GnuRadio .
Для библиотеки C взгляните на работу Стива Андервуда (но, пожалуйста, не связывайтесь с ним с глупыми вопросами). Я использовал свой soft-модем для загрузки факсимильного сообщения на шлюз электронной почты для Asterisk (передача факса не намного больше, чем файл B / W TIFF, закодированный в аудио для передачи по телефонной линии).
Если вы ищете библиотеку, которая делает это, я бы рекомендовал libquiet . Он использует существующую библиотеку SDR для выполнения своей модуляции и предоставляет двоичные файлы, которые будут предлагать вам трубку на одном конце и подавать звук прямо на вашу звуковую карту, используя PortAudio на другом. Он имеет GMSK для передачи «по воздуху» с низким битрейтом и QAM для более высокого битрейта на основе кабеля.
- Модуль аудиоданных Python возвращает ошибку при вызове функции
- кольцевой буфер для аудио в python
- Признание тональности звука
- Я ищу кросс-платформенную библиотеку Python, которая может воспроизводить MP3 и OGG и поддерживать ALSA или аналогичные
- Как добавить аудио в видео?
- Модуль Python для воспроизведения звуковых данных с индикатором выполнения?
- Вставка WAV в определенную точку в аудиофайле с использованием python
- Nump fft freezes для более длинных образцов
- Открытый файл звуковых данных Python