Создать белый шум, чтобы успокоить ребенка

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

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

случайный сигнал считается "белым шумом", если наблюдается, что он имеет плоский спектр в диапазоне частот, который имеет отношение к контексту. Например, для звукового сигнала соответствующим диапазоном является диапазон звуковых частот от 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, очень мощный мультиплатформенный аудио секвенсор, хотя полная версия коммерческая. Демо-версия, однако, не имеет многих ограничений и позволит вам делать то, что вы хотите, и добавлять фильтры, эффекты и т. Д. К сгенерированному звуку.

http://www.renoise.com/

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

  1. Возьмите любое старое радио, настройтесь на частоту, где нет станции, может быть (если возможно) снимите или сверните антенну и включите ее.
  2. Использоватьaplay /dev/random. Он будет генерировать белый шум и воспроизводить его. Я не думаю, что у вас есть громкоговорители, достаточно мощные для вывода инфразвука (например, коричневого шума) в достаточно децибелах, чтобы вызвать проблемы, поскольку у вас даже нет очень больших эффектов при 120 дБ, и я не думаю, что вы приближаетесь к этому с вашим динамики.
Другие вопросы по тегам