Конвертировать данные в звук и обратно - PullRequest
8 голосов
/ 19 декабря 2010

Существуют ли библиотеки, которые могут преобразовывать данные (текстовые файлы и т. Д.) В звук и обратно в исходные данные?

Звук может передаваться на любой желаемый носитель, будь то радио и т. Д. Мне просто нужно хранить данные в звуковых файлах.

Сценарий:

step1: Конвертировать файл .docx со встроенными изображениями в .wav.

step2: Отправка по радиоволне.

step3: Преобразуйте этот файл .wav обратно в файл .docx со встроенными изображениями.

Эта концепция может применяться к любым данным.

Технология:

.net или java

Ответы [ 6 ]

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

Я думаю, что среда важна, как и другие факторы, такие как размер файлов и доступное время передачи. Простой алгоритм состоит в том, чтобы преобразовать ваши файлы в текст (UUENCODE должен сделать этот трюк), а затем преобразовать в азбуку Морзе: http://www.codeproject.com/KB/vb/morsecode.aspx

Морс дает вам простой алфавит, способный пережить передачу по довольно шумному радиоканалу.

Если ваш носитель чище, преобразование вашего UUEncoded файла в серию частот по одной на символ, вероятно, также будет работать, и будет достаточно легко декодировать на другом конце, Анализатор частоты в C #

0 голосов
/ 24 мая 2019

Проблема в том, что данные в текстовом документе не обязательно дают достойное звучание.Если вы выберете несущую частотой 1,8 кГц и используете двоичное содержимое документа word для модуляции громкости или частоты (AM или FM), результат будет грязным и вряд ли будет декодирован.

Но если вы сохраните документв качестве растрового изображения вы можете использовать значения пикселей, чтобы модулировать громкость несущей волны.

Мы отправляли изображения (не только черно-белые, но и оттенки серого и цветные (три разных разделения изображения, r, g и b) по фоновым линиям, используя этот метод в течение многих лет, прежде чем модемы и Интернет занялиoff.

Самое интересное, что вы можете транслировать данные таким образом. Звук может быть получен более чем одним приемником одновременно. Исправления ошибок нет, но при работе с визуальными данными вы не получаетене нужно беспокоиться о потере нескольких пикселей. Это похоже на старые факсимильные протоколы.

0 голосов
/ 11 ноября 2016

Чтобы дать то, что я считаю лучшим ответом на все вышеперечисленное, взгляните на пакетную радиосвязь и различные биты, которые ей соответствуют, AX.25 - хороший пример, и для этого есть ряд реализаций.POCSAG - это еще одна хорошая реализация.У обоих есть библиотеки, доступные для многих разных языков, и они существуют довольно давно.

Другие примеры включают такие вещи, как WEFAX (факс погоды), HFFax, SSTV (медленное сканирование ТВ) и т. Д.

Вы можете думать, что все они похожи на кодировщики и декодеры модемного типа телефонной линии старой школы, которые работают на скорости 300-2400 бод

0 голосов
/ 25 января 2015

Вы можете попробовать использовать технологию магнитных карт для ваших файлов, я также пытаюсь сделать это на Android. Любые данные могут быть преобразованы в байты в строку символов, это очень возможно с Java и Android. затем используйте механизм кодирования API-интерфейса Magnetic Cards для кодирования звуковой строки. Тогда вы можете просто использовать наоборот, конвертировать звук в строку, конвертировать строку в байт и сохранять данные. Просто требуется время, чтобы преобразовать оба пути, но это выполнимо, я пытаюсь сделать это так, чтобы любой человек с неограниченным голосовым соединением мог передавать файлы или в будущем просматривать Интернет, просто набрав другой номер. Я надеюсь, что дал вам некоторую идею.

0 голосов
/ 19 декабря 2010

Нужно ли преобразовывать аудиофайл с помощью компрессоров с потерями (MP3 и т. Д.)? Если нет, вы можете просто добавить WAV-контейнер вокруг любых двоичных данных, и все будет в порядке. В противном случае это усложняется, и вам необходимо убедиться, что звук слышен (в разумном диапазоне частот при воспроизведении), и быть достаточно терпимым к обнаружению частоты, чтобы соответствовать выходным сигналам кодеков с потерями.

0 голосов
/ 19 декабря 2010

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

Попробуйте AudioInputStream Class в Java

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...