ZP ZapolyarnyDev
research article

Как звук попадает в поле

Как WAV или синтетический сигнал превращается в управляющий сигнал и попадает в input-регион поля.

К группе К исследованиям

Как звук попадает в поле

После первой идеи у меня быстро появился неприятный вопрос: а как вообще звук должен входить в такую среду?

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

Поэтому в проекте появился слой входного управляющего сигнала (он же - drive).

Регионы поля

Поле делится на три области:

  • input - левая часть поля, куда попадает внешний сигнал;
  • assoc - центральная ассоциативная область;
  • output - правая часть поля, из которой потом можно читать ответ.

Это очень грубая схема, но она удобна для первых проверок. Если сигнал действительно влияет на среду, можно смотреть, появляется ли изменение не только в input-регионе, но и дальше: в ассоциативной и выходной области.

На этом этапе мне не важна биологическая правдоподобность. Мне важна возможность проверки всей схемы, которую я придумал: информация поступает на вход -> ассоциативная область -> поступает на выход -> метрики записываются в директории.

Синтетический вход

До живого аудио полезно иметь контролируемый раздражитель. Для этого есть синтетический вход: синус, импульсы или шум. Такой сигнал проще повторять, сравнивать и отлаживать.

Например, импульсный режим даёт понятный сценарий: поле немного разогревается, затем в input-регион подаётся воздействие, а дальше можно смотреть, насколько далеко оно дошло.

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

WAV-вход

Для обычного аудио проект вытаскивает несколько признаков из WAV:

  • RMS, то есть громкость фрейма;
  • onset, то есть резкие изменения спектра;
  • spectral centroid, грубо говоря, смещение энергии к высоким или низким частотам.

Эти признаки смешиваются в одно значение drive. Потом drive становится фазовым импульсом, который прикладывается к input-региону.

Тут есть важное ограничение: поле не получает слова. Оно не знает, где слог, слово или команда. Оно получает только численное воздействие, построенное из акустических признаков.

Почему именно фазовый импульс

Такой вход хорошо ложится на модель осцилляторов. У каждой точки есть фаза, и внешний сигнал может немного сдвинуть эту фазу. Дальше уже соседние связи, локальная энергия и пластичность решают, останется ли это изменение локальным или начнёт распространяться дальше.

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

Что здесь надо проверять

Для этой части проекта есть несколько практических вопросов:

  • насколько сильным должен быть управляющий сигнал;
  • надо ли дополнительно возбуждать ассоциативщину вместе с input;
  • как быстро output-регион реагирует на вход;
  • что меняется при голосе, тишине и синтетических импульсах;
  • не слишком ли легко система превращается в самовозбуждающийся шум.