Создать белый шум, чтобы успокоить ребенка
У меня трехнедельный ребенок. Изредка она отказывается спать. Некоторые люди говорят мне, что такова жизнь, некоторые люди говорят мне, что мне нужно покупать вещи, чтобы это исправить. Это становится тревожно распространенной моделью в этой игре для родителей.
В любом случае, одна из вещей, которые мне нужно купить, это генератор белого шума. Белый шум определяется как:
случайный сигнал считается "белым шумом", если наблюдается, что он имеет плоский спектр в диапазоне частот, который имеет отношение к контексту. Например, для звукового сигнала соответствующим диапазоном является диапазон звуковых частот от 20 до 20000 Гц.
Есть несколько вещей, которые я могу купить. Приложения для Android, специализированные блоки, которые, я уверен, просто воспроизводят крошечный фрагмент предварительно сгенерированного шума, вплоть до мега-дорогих генераторов действительно случайного белого шума.
Я хочу создать свой собственный образец белого шума
Я знаю, что могу скачать один с youtube-dl
от одного из многих видео, но кроме авторского права, сжатие частоты ужасно в сети, я хочу, чтобы совершенство было полностью белым. Если такая вещь действительно существует. Кроме того, я жажду наказания и считаю, что если что-то можно сделать с помощью командной строки, это то, что мы должны делать. Вот как я стремлюсь поднять этот в любом случае.
Итак, у нас есть такие вещи, как /dev/urandom
а также paplay
, Есть ли разумный способ взять случайные данные и направить их в слышимый диапазон белого шума и из моих динамиков? Ответы, которые пишут в файл, тоже в порядке. Важной вещью является образец с ограниченным диапазоном. Нет воплей.
Примечание: ответы, которые генерируют коричневую заметку, не будут оценены ☹
14 ответов
Используйте швейцарский армейский нож для генерации звука, SoX.
Вы устанавливаете его из официальных репозиториев, просто набрав:
sudo apt-get install sox
Обновленный, причудливый ответ (приятные океанские волны):
Немного поэкспериментировав с SoX, я придумал эту замечательную команду, которая подражает мягкому шуму моря с его успокаивающим звуком волн, которые текут по плоскому песчаному пляжу в солнечный летний день...
Ну, хватит поэзии, вот команда. Слушай себя.
play -n synth brownnoise synth pinknoise mix synth sine amod 0.3 10
Объяснение:
Эта команда сначала генерирует и смешивает коричневый шум и розовый шум, который я считаю наиболее комфортным и естественным шумом. Тогда он генерирует синусоидальную волну 0.3
Гц со смещением 10
% и использует это, чтобы модулировать амплитуду наших смешанных шумов, чтобы произвести звук океанских волн.
Модификации:
Таймер:
Вы можете добавить таймер и ограничить продолжительность воспроизведения, указав количество секунд, количество минут и секунд (mm:ss
) или количество часов, минут и секунд (hh:mm:ss
) прямо передbrownnoise
, Вот пример для одного часа:play -n synth 1:0:0 brownnoise synth pinknoise mix synth sine amod 0.3 10
Частота волны:
Если вы хотите, чтобы волны попадали на пляж более или менее часто, просто измените частоту синусоидальной волны, используемой для изменения амплитуды (0.3
в приведенной выше команде). Число представляет количество волн в секунду, поэтому частота0.1
Гц будет вызывать 0,1 волны в секунду и, следовательно, заставит одну волну длиться 10 секунд:play -n synth brownnoise synth pinknoise mix synth sine amod 0.1 10
Минимальный объем фонового шума:
Синус, который используется для амплитудной модуляции, сдвинут в смещение10
%, поэтому коричнево-розовый шум всегда воспроизводится с громкостью не менее 10%. Если вам нужен более сильный или более слабый фоновый шум, увеличьте или уменьшите это смещение в соответствии с вашими потребностями. Вот пример с20
% фоновый шум:play -n synth brownnoise synth pinknoise mix synth sine amod 0.3 20
Старый, скучный ответ (простой белый шум):
Теперь самая простая команда для бесконечного воспроизведения белого шума (до тех пор, пока вы не прервете его нажатием Ctrl+C):
play -n synth whitenoise
Если вы предпочитаете ограничение по времени, вы можете добавить это в формате hh:mm:ss
, Следующая команда будет издавать шум в течение полутора часов, например:
play -n synth 01:30:00 whitenoise
Он даже показывает хорошую статистику во время "игры":
$ play -n synth 00:00:05 whitenoise
Encoding: n/a
Channels: 1 @ 32-bit
Samplerate: 48000Hz
Replaygain: off
Duration: unknown
In:0.00% 00:00:05.12 [00:00:00.00] Out:240k [!=====|=====!] Hd:0.0 Clip:0
Done.
Белый шум - это пытка.
Особенно для нежных ушей малышей.
Это потому, что белый шум имеет слишком много энергии на высоких частотах.
Вы можете генерировать розовый шум, используя команду воспроизведения из утилит sox:
sudo apt-get install sox
play -t sl -r48000 -c2 -n synth -1 pinknoise .1 60
Отрегулируйте значения.1 и 60 в соответствии с вашими потребностями. Розовый шум менее резок на слух и, надеюсь, вам нужен звук
Не уверен, что это произведет настоящий белый шум, который покрывает весь спектр, но простой
pacat /dev/urandom
кажется, делает трюк в моей системе (нет необходимости устанавливать что-либо новое или добавлять репозиторий).
Я жажду наказания, так что я дам вам способ GUI. Посмотрите на ANoise.
Звук по умолчанию - плохой, но вы можете скачать другие звуки, такие как Лесной дождь, Фонтан и другие. Вы можете настроить его на запуск с системой и даже остановить его через определенное время.
sudo add-apt-repository ppa:costales/anoise
sudo apt-get update
sudo apt-get install anoise
ANoise Code, и для дополнительного речного звука:
sudo apt-get install anoise-community-extension1
Откройте Audacity.
Зайдите в "Создать> Шум..."
Выберите "Броуновский" (способ менее агрессивный, чем настоящий белый шум). Амплитуда и длительность не имеют большого значения.
Цикл, используя Shift+ Play кнопку.
FFMpeg имеет фильтр источника аудио шума. Вы можете играть в нее, используяffplay
:
ffplay -f lavfi -showmode 0 -i 'anoisesrc=color=brown'
Арг к -i
интерпретируется как граф фильтра Лавфи, из-за -f lavfi
, -showmode 0
отключает стандартное окно аудио-визуализатора ffplay, которое оно показывает по умолчанию только для аудио входов.
Как вы можете видеть из вывода ffmpeg -h filter=anoisesrc
Вы можете выбрать коричневый / розовый / белый шум с любой амплитудой и частотой дискретизации, которые вам нравятся, при желании с конечной продолжительностью
Вы также можете использовать mpv
, хороший форк mplayer или других игроков, которые позволяют фильтровать графы ffmpeg. например
mpv av://lavfi:anoisesrc=color=brown
Это может быть удобно, если для вашего любимого проигрывателя настроена настраиваемая настройка вывода звука.
Установленная по умолчанию утилита speaker-test
генерирует розовый шум (который, как @nightingale, это то, что вы действительно хотите, а не белый шум). Это можно сделать так до бесконечности, запустив
speaker-test -l 0
Я вижу, что никто не использовал aplay
тем не менее, попробуйте следующее:
aplay --channels=2 --format=S16_LE --rate=44100 --duration=3600 /dev/urandom
Это не очень образно, поэтому я добавил в таймер, чтобы компенсировать:). duration
настройки в секундах, так что это будет работать в течение 1 часа, а затем выключится, надеюсь, ребенок к тому времени успокоится...
Белый шум математически является равномерным распределением частот. Вы можете произвести это со случайными данными из /dev/random
или же /dev/urandom
, Если вы хотите изменить "тон" производимого шума (например, сделать его менее "весомым", удалив более низкие частоты, или сделать его "более демпфирующим", удалив более высокие частоты), вы можете использовать такую команду, как dd bs=1 if=/dev/urandom of=whitenoise.raw count=1048576
чтобы создать белый шум, затем импортируйте его в Audacity и используйте фильтры верхних и нижних частот, чтобы настроить его по своему вкусу (при использовании фильтров помните, что среднее человеческое ухо будет слышать частоты до 20 кГц).
РЕДАКТИРОВАТЬ: Audacity может также генерировать сам белый шум.
Tom Swiss of unreasonable.org использует следующий код (используя sox
) для генерации белого / розового шума. Вам нужно будет сначала установить sox (sudo apt install sox
), затем создайте сценарий оболочки со следующим кодом:
#!/bin/sh
len='7:00:00'
if [ "$1" != '' ]; then
len=$1
fi
play -t sl - synth $len pinknoise band -n 1200 200 tremolo 20 .1 < /dev/zero
Наконечник шляпы http://unreasonable.org/white_noise_generator_with_sox_for_Linux
Отказ от ответственности: я сам еще не пробовал
Коричневый шум нижних частот
Звучит для меня как далекий шторм или гигантская река/водопад. Не стесняйтесь регулировать параметр частоты
1k
в Гц, полюса фильтра
-1
или же
-2
, а выходная громкость как параметр усиления в дБ.
play -n synth brownnoise lowpass -1 1k gain -10
Есть также Renoise, очень мощный мультиплатформенный аудио секвенсор, хотя полная версия коммерческая. Демо-версия, однако, не имеет многих ограничений и позволит вам делать то, что вы хотите, и добавлять фильтры, эффекты и т. Д. К сгенерированному звуку.
Истинный белый шум с фильтром нижних частот и, возможно, добавлением хоруса и реверберации для хорошего естественного эффекта, будет звучать довольно приятно.
- Возьмите любое старое радио, настройтесь на частоту, где нет станции, может быть (если возможно) снимите или сверните антенну и включите ее.
- Использовать
aplay /dev/random
. Он будет генерировать белый шум и воспроизводить его. Я не думаю, что у вас есть громкоговорители, достаточно мощные для вывода инфразвука (например, коричневого шума) в достаточно децибелах, чтобы вызвать проблемы, поскольку у вас даже нет очень больших эффектов при 120 дБ, и я не думаю, что вы приближаетесь к этому с вашим динамики.