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

117

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

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

a random signal is considered "white noise" if it is observed to have a flat spectrum over the range of frequencies that is relevant to the context. For an audio signal, for example, the relevant range is the band of audible sound frequencies, between 20 to 20,000 Hz.

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

Я хочу создать собственный образец белого шума

Я знаю, что я мог загружать один из youtube-dl из одного из видео many там, но авторское право в стороне, частотное сжатие ужасно онлайн Я хочу, частотность. Если такая вещь действительно существует. Плюс я - обжора для наказания, и я считаю, что если что-то может выполнить через командную строку, так мы должны это делать. Вот как я все-таки стараюсь поднять этот.

Итак, у нас есть такие вещи, как /dev/urandom и paplay . Есть ли разумный способ получить случайные данные и передать их в слышимый диапазон белого шума и из моих динамиков? Ответы, которые пишут в файл, тоже в порядке. Важная вещь - постоянный образец с ограниченным диапазоном. Никаких скандалов.

Примечание: ответы, которые генерируют коричневую ноту , не будут оценены ☹

    
задан Oli 20.06.2016 в 23:03
источник

12 ответов

145

Используйте швейцарский армейский нож для генерации звука, SoX .

Вы устанавливаете его из официальных репозиториев, просто набрав:

sudo apt-get install sox

Обновленный, причудливый ответ (приятные океанские волны):

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

Ну, хватит поэзии, вот команда. Слушайте себя.

play -n synth brownnoise synth pinknoise mix synth sine amod 0.3 10

Объяснение:

Эта команда сначала генерирует и смешивает коричневый шум и розовый шум, который я считаю самым комфортным и естественным шумом. Затем он генерирует синусоидальную волну 0.3 Hz со смещением 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 Hz будет вызывать 0,1 волны в секунду и, следовательно, сделать одну волну последней в течение 10 секунд:

    play -n synth brownnoise synth pinknoise mix synth sine amod 0.1 10
    
  • Минимальный объем фонового шума:
    Синус, который используется для амплитудной модуляции, смещен на смещение 10 %, поэтому коричнево-розовый шум всегда будет воспроизводиться с объемом не менее 10%. Если вам нужен более strong или слабый фоновый шум, увеличьте или уменьшите это смещение до ваших потребностей. Вот пример с фоновым шумом 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.
    
ответ дан Byte Commander 20.06.2016 в 23:27
43

Белый шум - это пытка.

Особенно для тонких ушей младенцев.

Это связано с тем, что белый шум имеет слишком много энергии на высоких частотах.

    
ответ дан nightingale 21.06.2016 в 00:54
27

Вы можете генерировать розовый шум, используя команду воспроизведения из служебных программ sox:

sudo apt-get install sox
play -t sl -r48000 -c2 -n synth -1 pinknoise .1 60

Отрегулируйте значения .1 и 60 в соответствии с вашими потребностями. Розовый шум менее суровый на ухе и, надеюсь, звук, который вам нужен

    
ответ дан Colin Ian King 20.06.2016 в 23:12
19

Не уверен, что это вызовет настоящий белый шум, покрывающий весь спектр, но простой

pacat /dev/urandom

похоже, делает трюк в моей системе (нет необходимости устанавливать что-либо новое или добавлять репозиторий).

    
ответ дан dadexix86 21.06.2016 в 00:03
14

Я - обжора для наказания, поэтому я дам вам интерфейс GUI. Взгляните на ANoise .

Звук по умолчанию, с которым он идет, плох, но вы можете скачать другие звуки, такие как Forest Rain, Fountain и amp; Другие. Вы можете настроить его, чтобы начать с системы, и даже остановить его по истечении определенного времени.

sudo add-apt-repository ppa:costales/anoise
sudo apt-get update
sudo apt-get install anoise

код ANoise , а для дополнительного речного звука:

sudo apt-get install anoise-community-extension1
    
ответ дан Mitch 20.06.2016 в 23:51
9

Открыть Audacity.

Перейдите в «Generate > Noise ...»

Выберите «Броуновский» (менее агрессивный, чем фактический белый шум). Амплитуда и продолжительность не имеют большого значения.

Loop с помощью кнопки Shift + Play.

    
ответ дан Marin 21.06.2016 в 10:24
6

Устанавливаемая по умолчанию утилита speaker-test генерирует розовый шум (который, как и @nightingale, - это то, что вы действительно хотите, а не белый шум). Его можно настроить для неограниченного использования, запустив

speaker-test -l 0
    
ответ дан Jules 21.06.2016 в 09:54
5

FFMpeg имеет фильтр источника шума. Вы можете воспроизвести его с помощью ffplay :

ffplay -f lavfi -showmode 0 -i 'anoisesrc=color=brown'

Аргу в -i интерпретируется как график фильтра lavfi, из-за -f lavfi . -showmode 0 отключает окно аудио визуализации ffplay по умолчанию, которое оно показывает по умолчанию для аудио-входных данных.

Как вы можете видеть из выхода ffmpeg -h filter=anoisesrc , вы получаете выбор коричневого / розового / белого шума при любой амплитуде и выборке, которая вам нравится, возможно с конечной продолжительностью.

Вы также можете использовать mpv , красивую вилку mplayer или других игроков, которые разрешают фильтрацию ffmpeg. например.

mpv  av://lavfi:anoisesrc=color=brown

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

    
ответ дан Peter Cordes 21.06.2016 в 09:29
5

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

aplay --channels=2 --format=S16_LE --rate=44100 --duration=3600 /dev/urandom

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

    
ответ дан andrew.46 21.06.2016 в 11:41
3

Белый шум является математически равномерным распределением частот. Вы можете создать его со случайными данными из /dev/random или /dev/urandom . Если вы хотите изменить «тон» произведенного шума (например, чтобы сделать его менее «весомым», удалив более низкие частоты или сделав его «заслонкой», удалив более высокие частоты), вы можете использовать команду, например, dd bs=1 if=/dev/urandom of=whitenoise.raw count=1048576 для генерации белого шума, затем импортируйте его в Audacity и используйте фильтры верхних частот и низких частот, чтобы настроить его по своему вкусу (при использовании фильтров помните, что среднее человеческое ухо будет слышать частоты до 20 кГц).

EDIT: Audacity также может генерировать белый шум.

    
ответ дан Micheal Johnson 22.06.2016 в 14:46
2

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

Совет по шляпе Ссылка

Отказ от ответственности: я еще не пробовал это еще

    
ответ дан Nick Weinberg 20.06.2016 в 23:14
1

Существует также Renoise, очень мощный многоплатформенный аудио секвенсор, хотя полная версия является коммерческой. Однако демо-версия не имеет большого количества ограничений и позволит вам делать то, что вы хотите, и добавлять фильтры, эффекты и т. Д. К сгенерированному звуку.

Ссылка

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

    
ответ дан delt 21.06.2016 в 20:02