Печать и воспроизведение звука на бумаге

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

На ум сразу приходит QR-код или некие его аналоги. В такой код можно записать ссылку на mp3, или даже совсем маленький звуковой файл. Но в первом случае требуется выход в сеть, а во втором — большая плотность кода и повышенные требования к качеству изображения. Кроме того, ни тот ни другой способ не обеспечит мгновенное воспроизведение.

Что, если кодировать звук не в цифровом, а в аналоговом формате? То есть, допустить возможность больших потерь информации с сохранением основных «очертаний» звукового послания. Например, такие потери возникнут при плохом освещении, плохой камере, маленькой картинке, мятой или рваной бумаге с кодом. Пусть со страшными артефактами, но картинка должна звучать.





На протяжении нескольких лет я занимаюсь изучением советского фотоэлектронного синтезатора АНС, созданного инженером Евгением Мурзиным в период с 1938 по 1958 г. Синтезатор базируется на более ранней технологии так называемого «рисованного звука», более подробно о которой можно почитать, например, в этой статье или на сайте Поколение Z. Фишка же АНСа заключается в том, что музыка создается путем рисования спектрограммы и играется потом неким подобием современного сканера — вертикальное сканирующее устройство просвечивает партитуру, проецируя свет на специальные диски (своего рода оптические преобразователи Фурье), которые готовый модулированный сигнал посылают на фотоэлементы. Такой формат идеально подошел бы для записи звука в графическом виде. Поврежденная или уменьшенная спектрограмма может потерять некоторые гармоники, но сохранит общую картину для последующего воспроизведения. И очень кстати мною был создан программный симулятор синтезатора АНС — Virtual ANS, способный не только играть такие партитуры, но и создавать, конвертируя аудио-файл в картинку спектра. То, что нужно!

Осталось ответить на последний вопрос — как маркировать границы картинки, чтобы программа-сканер играла именно то, что нужно, не захватывая лишнюю информацию. Решено использовать только горизонтальные маркеры сверху и снизу. Отказ от маркеров по бокам кода, во-первых, упрощает процесс декодирования, а во-вторых, позволяет без особых затрат играть спектрограмму сразу же после обнаружения горизонтальных маркеров. При этом процессом проигрывания можно управлять вручную: скорость и направление задает сам слушатель, свободно сканируя изображение. Ручной режим завораживает, но неравномерность движения и тряска рук накладывают свой отпечаток на звук. Поэтому в программу следует добавить и автоматический режим, когда текущий кадр с камеры застывает и сканируется равномерно без вмешательства пользователя.

Проекту дадим название PhonoPaper. Спецификация кода выглядит следующим образом:


Бесплатная программа-сканер была написана приблизительно за 2 месяца на языке Pixilang с использованием движка Virtual ANS (для проигрывания сонограммы в реальном времени). На текущий момент она доступна только для Android. iOS-версия появится в ближайшие дни (ждем проверки Apple). Поддержка других систем — в планах. Android-версия использует библиотеку прямого доступа к камере из проекта OpenCV, которая, к сожалению, совместима не со всеми устройствами, хотя разработчики постоянно ее совершенствуют — с этим пока приходится мириться. Больше всего проблем (падение или черный экран) с Android 4.4.2 — заранее прошу прощения.

Предвижу вопрос о практическом применении. Поэтому привожу небольшой список с примерами использования PhonoPaper-кодов:
  • голосовые подсказки или тематические куски музыки на визитках, рекламных плакатах, товарах;
  • бумажные открытки с напечатанным звуковым посланием;
  • аудио-примеры в учебниках или детских книжках;
  • звуковые метки на пластинках, дисках, кассетах;
  • звуковая подпись на обратной стороне бумажной фотографии;
  • арт-эксперименты;
  • изучение основ построения спектральной музыки и звука через ручное рисование PhonoPaper-кодов.
Посмотрим, как это работает в живую:





Из особенностей хочу отметить возможность изменять форму и цвет таких кодов практически без особого вреда для хранимой в них звуковой информации. Приведу пару примеров:







Источник: habrahabr.ru/post/220061/


Комментарии