Как обнаружить “полную тишину” на моем компьютере и начать воспроизведение данного звукового файла, когда это происходит, который затем останавливается, когда появляется другой звук?

Вопрос или проблема

У меня очень раздражающая проблема. Я часто слушаю трансляции ASMR в прямом эфире на Twitch, пока работаю. Часто происходят вещи, которые создают много шума, например, лай собаки или крики на заднем плане, ASMRтистам нужно чихнуть или кашлянуть и так далее. В такие моменты стример обычно сразу нажимает кнопку “мьют” на своем физическом микрофоне (или в программном обеспечении), что полностью отключает звук, и с комфортного, успокаивающего звукового фона, ласкающего мои уши, переключается на оглушительную тишину, поскольку я, конечно, не проигрываю другие звуки одновременно с ASMR, так как это бы испортило все впечатление и “поглотило” любые тонкие звуки. Это сразу же выводит меня из состояния релаксации и делает меня крайне неудобно и раздраженно.

Я безуспешно пытался предложить им включить какую-то функцию, которая, вместо полного устранения звука, воспроизводила бы фоновый “белый шум” или, еще лучше, проигрывала бы последние несколько минут в цикле до восстановления работы микрофона. Однако, я не смог убедить ни одного стримера сделать это, и, честно говоря, я сам даже не знаю, как это сделать, так что я вряд ли могу ожидать, что они об этом знают, поскольку большинство из них гораздо менее “компьютерно грамотны”, чем я. На мой взгляд, это должно быть стандартной функцией в любом “ASMR микрофоне” или ПО для стриминга, но это (вероятно) не так.

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

  1. Как только он обнаруживает, что на моем компьютере под управлением Windows 10 воспроизводится 0% или заранее определенный процент звукового объема, начинает проигрывать данный звуковой файл (который я подготовил заранее и в котором есть только белый шум).
  2. Как только он обнаруживает, что есть звук или больше звука, чем данный %, очевидно, исключая зацикленный звуковой файл с белым шумом, он прекращает воспроизведение звукового файла.

Это было бы замечательно и избавило бы меня (в большей степени) от раздражения из-за внезапного мьюта. Однако, поскольку даже самая простая вещь всегда оказывается огромной борьбой, а это я считаю “относительно сложным”, у меня очень мало надежды, что я когда-либо это решу.

У меня установлен AutoHotKey, но я сильно сомневаюсь, что он настолько продвинутый/умный. Вероятно, потребуется какое-то специальное программное обеспечение или что-то подобное, что, в свою очередь, вызывает проблемы с доверием, так как я очень параноидально отношусь к запуску любого нового программного обеспечения в наши дни… но давайте не будем забегать вперед. Я хотел бы услышать любое разумное решение этого вопроса.

Примечание: Любое решение, требующее от меня нажатия клавиш быстрого доступа или чего-то подобного, неприемлемо. Не только потому, что это “так много работы”, но и потому, что я часто погружен в виртуальную машину, где привязки AutoHotKey на хостовой ОС не работают/не применяются.

Я собираюсь рискнуть и просто сказать – вы не сделаете этого, если только не запрограммируете приложение с нуля.

Вам нужно:-

  1. перехватить аудиопоток между принимающим приложением и аудиовыходом
  2. оценить тишину
  3. запустить ваше альтернативное воспроизведение
  4. распознать, когда [в настоящее время заглушенный] аудиопоток снова начинает воспроизводить звук, и переключиться обратно.

Сомневаюсь, что существует какая-либо существующая структура, которая могла бы это сделать.

С точки зрения аудиоинженерии, а не программиста или просто “пользователя компьютера”, вы можете использовать ключевой гейт с боковой цепью, хотя это потребует, чтобы ваш “аварийный аудио” постоянно воспроизводился, а не запускался и останавливался гейтом.
В чисто “аудиоинженерных” терминах это довольно простая установка… если бы вы запускали два канала аудио в коммерческой цифровой аудиостанции [DAW]. Чтобы делать это на уровне ОС, вместо этого потребуется внедрить существующую технологию в аудиопоток, довольно низко в ОС.

Некоторые методы, которые могут упростить эту задачу по сравнению с перехватом между принимающим приложением и аудиовыходом…

  1. Используйте кабель петли для обнаружения того, что воспроизводится через ваш микрофон. Это использует Y-сплиттер на выходе динамиков, а затем вы подключаете одну сторону обратно в разъем для микрофона (обычно с мужским кабелем, подключенным к Y-сплиттеру). Это все еще потребует некоторого программирования для обнаружения звука, чтобы запускать (воспроизведение/остановка) белого шума при наличии или отсутствии более громкого звука – алгоритм обнаружения должен будет отличать белый шум от фактического аудиоконтента. Воспроизведение белого шума будет довольно простым с помощью .wav файла или автоматизации VLC/Winamp или любого другого метода по вашему выбору. Преимущество здесь в том, что вам не нужно перехватывать что-либо.
  2. Используйте более одной звуковой карты с DAW, который всегда работает (по предложению Tetsujin) и имеет закрытую боковую цепь. Вам потребуется зациклить аудио с одной звуковой карты на другую (либо через мягкий драйвер петли, либо через внешний кабель петли), обработать его в DAW, а затем выходной сигнал вывести на выход второй звуковой карты. Существуют дешевые USB звуковые карты, которые, вероятно, подойдут вам для предоставления второго аудиовыхода, которым DAW может пользоваться.
  3. Комбинация вышеупомянутого. Используйте больше одной звуковой карты, где потоковое аудио выходит из одного аудиоинтерфейса, а белый шум – из другого. Потоковое аудио зациклено, так что обнаружение звука совершенно надежно, так как это не комбинированное потоковое аудио плюс белый шум (белый шум будет находиться на другом звуковом выходе). Вам придется сначала объединить выходы двух звуковых карт в единый выход, прежде чем отправлять его на колонки/наушники, используя либо дешевый внешний микшер, либо внешний пассивный аудиокомбинатор A+B (и это придется делать так, чтобы это была направленная пара, а не просто соединение выходных кабелей вместе, потому что вы не хотите, чтобы сигнал белого шума возвращался в микрофонный вход, который выделяется из основного аудиовыхода).
  4. Другой термин для уменьшения громкости сигнала на основе бокового входа называется “дукинг”. В этом случае вы бы уменьшали белый шум каждый раз, когда у вас имеется желаемый потоковый аудиосигнал. Вы можете сделать это внешне с помощью специального дукера – один из примеров – Rolls DU30b Audio Ducker. Белый шум должен быть сгенерирован и доступен для этого блока в качестве постоянно включенного выхода, в дополнение к вашему потоковому аудио, и затем блок будет уменьшать постоянно включенный белый шум, когда потоковое аудио будет присутствовать.
  5. Используйте второй компьютер в качестве внешнего “дукера”. Запустите аудиовыход вашего первого компьютера на разъем микрофона второго компьютера и либо A) отсмотрите микрофонный вход и передайте его напрямую на аудиовыход, либо B) воспроизводите белый шум, если на микрофонном разъеме ничего не присутствует. Это похоже на несколько упомянутых выше вариантов, только с чуть более другой аппаратной конфигурацией. Если у вас есть старый компьютер, может быть легче, чем покупать внешнее оборудование. Или, может быть, сделайте это на базе raspberry pi – может быть дешевле, чем специализированное решение для работы с аудио.

Примечание: В большинстве приведенных выше случаев я использую термин “белый шум”, подразумевая любой подходящий источник фонового звука, который не является мертвой тишиной.

Я понимаю, что этот вопрос довольно старый, но я думаю, что создал инструмент, который может помочь в этой проблеме.

Хотя я использую его в “обратном” порядке (я выключаю музыку всякий раз, когда хочу быстро послушать видео на YouTube), его можно также использовать для активации каждый раз, когда обнаруживается тишина, и постепенного включения музыки (например, вы могли бы включить плейлист ASMR на Spotify или WinAmp). Приложение автоматически заглушит воспроизводимый трек снова, как только поток возобновится.

Пожалуйста, дайте мне знать, если это вам помогло: https://zen-ben.itch.io/autogoose

.

Ответ или решение

Для решения вашей проблемы необходимо создать систему, которая автоматически воспроизводит подготовленный звуковой файл (например, с белым шумом) в случае, когда на вашем компьютере возникает полная тишина или звук падает ниже определенного уровня. Это может показаться сложной задачей, но давайте разберемся, как это можно реализовать.

Теоретическое понимание задачи

Первый шаг в решении данной проблемы — интерцепция аудиопотока. Это означает, что необходимо разработать механизм, который будет анализировать текущий аудио-выход вашей операционной системы (например, Windows 10) и автоматически обнаруживать изменения в уровне громкости. Когда уровень падает до нуля или ниже установленного порога, система должна начать воспроизводить заранее подготовленный файл с звуком, например белым шумом. Когда уровень звука снова поднимается, воспроизведение файла должно прекратиться.

Пример возможной реализации

Рассмотрим возможные технические подходы для создания такого механизма:

  1. Использование Digital Audio Workstation (DAW): Этот метод включает использование профессионального программного обеспечения для работы с аудио, которое позволяет настроить так называемый "сайдчейн" (side-chain). По сути, это процесс, когда один сигнал управляет эффектами, применяемыми к другому сигналу. В вашем случае белый шум будет "утопляться" в случае активации звука от Twitch.

  2. Виртуальные аудиокабели: Используйте программы, такие как VB-Audio Virtual Cable для создания виртуальных аудиоканалов. Это позволит направлять звук через виртуальный микшер, где вы сможете отслеживать уровень сигнала и добавлять белый шум в случае полной тишины.

  3. Автоматизация через скрипты: Хотя AutoHotKey не идеален для аудиозадач, существует ряд библиотек для Python, таких как PyDub, которые позволяют работать с аудиофайлами и могут быть использованы для управления воспроизведением белого шума на основе входных данных уровня звука.

  4. Использование дополнительных звуковых карт: Наличие второй звуковой карты упростит задачу разделения звуковых потоков: один будет использоваться исключительно для мониторинга уровня звука, в то время как второй будет воспроизводить белый шум.

Применение

Для реализации перечисленных методов вам может понадобиться:

  • Программное обеспечение: DAW (например, Ableton Live, FL Studio) и/или программы для создания виртуальных аудиокабелей.
  • API и библиотеки: Использование языков программирования, таких как Python, позволит вам автоматизировать задачи. Например, библиотека PyDub может обрабатывать звуковые сигналы для определения уровня громкости и переключения звука.
  • Аппаратные решения: Дополнительные звуковые карты или оборудование для микширования звука, чтобы обеспечить точный контроль над звуковыми сигналами.

Заключение

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

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

Оцените материал
Добавить комментарий

Капча загружается...