Gere ruído branco para acalmar um bebê

121

Eu tenho um bebê de três semanas. Ocasionalmente, ela se recusa a dormir. Algumas pessoas me dizem que é assim que a vida é, outras me dizem que preciso comprar coisas para consertar isso. Isso está se tornando um padrão assustadoramente comum nesse jogo dos pais.

De qualquer forma, uma dessas coisas "preciso comprar" é um gerador de ruído branco . Ruído branco definido como:

um sinal aleatório é considerado "ruído branco" se for observado um espectro plano na faixa de frequências relevante para o contexto. Para um sinal de áudio, por exemplo, a faixa relevante é a banda de frequências sonoras audíveis, entre 20 e 20.000 Hz.

Há várias coisas que posso comprar. Aplicativos para Android, caixas dedicadas que, com certeza, reproduzem um pequeno clipe de ruído pré-gerado, até geradores de ruído branco aleatórios verdadeiros e mega caros.

Quero gerar minha própria amostra de ruído branco

Eu sei que eu poderia baixar um youtube-dlde um dos muitos vídeos por aí, mas, exceto os direitos autorais, a compactação de frequência é horrível on-line. Se tal coisa realmente existe. Além disso, sou um glutão por punição e acredito que se algo puder ser feito através da linha de comando, é assim que deveríamos fazê-lo. É assim que pretendo levantar este de qualquer maneira.

Então, temos coisas como /dev/urandome paplay. Existe uma maneira sensata de coletar dados aleatórios e canalizá-los para a faixa audível de ruído branco e para fora dos meus alto-falantes? As respostas que gravam no arquivo também são boas. O importante é uma amostra confinada a um intervalo estável. Sem gritos.

Nota: as respostas que geram a nota marrom não serão apreciadas ☹

Oli
fonte
29
Veja outras respostas para o lado técnico. Em termos práticos, eu digo que existem CDs de ruído de surf / chuva / cachoeira que podem não ser matematicamente puro ruído branco, mas provavelmente estão muito mais próximos do apaziguador que você está procurando (e provavelmente na origem da reputação do ruído branco) )
Xenóide
5
Será que este trabalho?
Mitch
6
O post que o @Mitch apontou não é uma referência à 'nota marrom'. "O termo" ruído marrom "não se origina da cor, mas de Robert Brown, que descobriu o movimento browniano".
Adrian
4
Sintonizar o rádio para longe de qualquer canal?
precisa saber é
12
A menos que você já tenha ensinado o teste do qui-quadrado de seu bebê Pearson , a verdadeira aleatoriedade não é grande coisa.
PyRulez

Respostas:

152

Use o canivete suíço para a geração de som, SoX .

Você o instala a partir dos repositórios oficiais, simplesmente digitando:

sudo apt-get install sox

Resposta atualizada e elegante (agradáveis ​​ondas oceânicas):

Depois de experimentar um pouco o SoX, criei esse grande comando que imita o suave murmúrio do mar com seu som suave de ondas que fluem sobre uma praia de areia plana em um dia ensolarado de verão ...

Bem, basta poesia, aqui está o comando. Ouça a si mesmo.

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

Explicação:

Esse comando primeiro gera e mistura ruído marrom e rosa, que eu acho o ruído mais confortável e natural. Em seguida, gera uma onda senoidal de 0.3Hz com um deslocamento de 10% e usa isso para modular a amplitude de nossos ruídos mistos para produzir o som das ondas do oceano.

Modificações:

  • Temporizador:
    você pode adicionar um temporizador e limitar a duração da reprodução especificando o número de segundos, o número de minutos e segundos ( mm:ss) ou o número de horas, minutos e segundos ( hh:mm:ss) imediatamente antes brownnoise. Aqui está um exemplo por uma hora:

    play -n synth 1:0:0 brownnoise synth pinknoise mix synth sine amod 0.3 10
    
  • Frequência das ondas:
    Se você deseja que as ondas cheguem à praia com mais ou menos frequência, basta alterar a frequência da onda senoidal usada para a modificação da amplitude ( 0.3no comando acima). O número representa a quantidade de ondas por segundo; portanto, uma frequência de 0.1Hz causará 0,1 ondas por segundo e, portanto, fará uma onda durar 10 segundos:

    play -n synth brownnoise synth pinknoise mix synth sine amod 0.1 10
    
  • Volume mínimo de ruído de fundo:
    o seno usado para modulação de amplitude foi deslocado para um deslocamento de 10%, para que o ruído marrom-rosa seja sempre reproduzido com pelo menos 10% de volume. Se você deseja um ruído de fundo mais forte ou mais fraco, aumente ou diminua esse deslocamento de acordo com suas necessidades. Aqui está um exemplo com 20% de ruído de fundo:

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

Resposta antiga e chata (ruído branco puro):

Agora, o comando mais fácil de reproduzir ruído branco infinitamente (até que você o aborte com Ctrl+ C) é este:

play -n synth whitenoise

Se você preferir um limite de tempo, adicione-o no formato hh:mm:ss. O comando a seguir faria barulho por uma hora e meia, por exemplo:

play -n synth 01:30:00 whitenoise

Ele até mostra algumas estatísticas legais enquanto "jogando":

$ 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
fonte
6
Editei minha resposta e adicionei um comando sofisticado, mas simples, de gerador de som para ondas do mar, que agradará muito mais os ouvidos do bebê (e do papai) do que o ruído branco.
Byte Commander
2
Eu amo isso - mas a mudança de volume das ondas senoidais não é muito parecida com o som das ondas na praia. Ele precisa aumentar o volume rapidamente, quando a onda quebra na praia e depois desaparece muito mais lentamente. Existe uma maneira de conseguir isso?
Caesar
7
@Caesar há um limite para o quão bom você pode obter com estas ferramentas, mas acho que play -n synth brownnoise synth pinknoise mix synth 0 0 0 15 40 80 trapezium amod 0.2 10é mais perto do que você está pedindo :)
Hobbs
1
@hobbs e agora, se a freqüência de repetição não eram tão regular ... ;-) :-P
Rmano
2
+1. Aqui está minha versão aprimorada: play -n synth brownnoise synth pinknoise mix synth 0 0 0 10 10 40 trapezium amod 0.1 30O período mais longo dificulta a observação da regularidade. Os números significam: 0,1 = frequência de queda das ondas (0,1 Hz = uma onda a cada 10 segundos); 30% = nível de ruído entre as ondas; 1º 10% = duração (mais de 10 segundos) da parte ascendente da onda; 2º 10% = quando começa a cair (ambos são 10%, de modo que a onda trava assim que aumenta o volume); 40% de duração de toda a onda: isso significa 100% - 40% = 60% do tempo gasto esperando entre as ondas.
Tobia
44

Ruído branco é tortura.

Especialmente para os ouvidos delicados dos bebês.

Isso ocorre porque o ruído branco tem muita energia nas altas frequências.

rouxinol
fonte
25
Enquanto você tem um ponto lá, isso não responde à pergunta.
leftaroundabout
19
@leftaroundabout Se salvar a audição de um bebê, acho que é permitido. Mesmo que seja tecnicamente melhor postado como um comentário em vez de uma resposta; está fazendo mais bem do que mal. Obrigado por apontar isso, rouxinol e bem-vindo ao AskUbuntu!
Nick Weinberg
18
Uma resposta que diz "Não, você não quer isso" é um jogo justo. As outras respostas que sugerem o ruído "rosa" parecem levar isso em consideração. Essa resposta seria melhor se explicasse isso, mas ainda é +1 de mim.
Oli
22
@ ΈρικΚωνσταντόπουλος Sou um bom amigo do OP. Além disso, ele pediu um barulho para "acalmar um bebê". Ruídos tortuosos raramente são calmantes.
Oli
8
Embora eu normalmente odeie respostas e comentários de "não, você realmente não deseja (ou não deva) isso"), sinto que a distinção entre ruído branco real e "ruído branco" coloquial é importante o suficiente para que essa resposta valha a pena. +1.
Kyle Strand
28

Você pode gerar ruído rosa usando o comando play nos utilitários sox:

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

Ajuste os valores de .1 e 60 para atender às suas necessidades. O ruído rosa é menos severo na orelha e, esperançosamente, é o som que você precisa

Colin Ian King
fonte
Eu acho que speaker-testfaz isso também, mas acho que o ruído rosa é menos que o ideal, é ruído certo, mas não ter variação pode não ser desejável?
4
@ bc2946088 12 horas de ruído branco puro pode ser realizado complay -n synth 12:00:00 whitenoise
Nick Weinberg
5
Você diz que eu posso ajustá-los, mas o que os argumentos .1e 60realmente significam?
Oli
O .1 é meio irrelevante aqui; o 60 é o deslocamento DC. Quanto mais baixo for, mais alcance (em amplificador) você terá na forma de onda, defini-lo mais perto de 100 fará com que tenha menos alcance, pois está quase no máximo até 100% do alcance total.
Colin Ian King
21

Não tenho certeza se isso produzirá ruído branco real que cobre todo o espectro, mas um simples

pacat /dev/urandom

parece fazer o truque no meu sistema (não há necessidade de instalar nada de novo ou adicionar um repositório).

dadexix86
fonte
Isso certamente soa muito como o ruído branco soxproduz.
Oli
2
@linolino você não está no Ubuntu? Se estiver, ele deve ser instalado (a menos que você o tenha removido manualmente). É fornecido por pulseaudio-utils, que faz parte do sistema ativo (veja o manifesto ). Se você não o tiver, provavelmente a sua instalação está corrompida. Sugiro que você abra uma nova pergunta explicando o problema e solicitando ajuda sobre como restaurar sua instalação.
dadexix86
1
A menos que eles estejam usando uma versão do servidor.
Arronical
1
Em qualquer caso, você ainda pode usar em aplayvez de pacat. alsa-utilsparece estar instalado por padrão.
Ruslan
1
@ dadexix86 na verdade eu tenho um lubuntu. De qualquer forma, de alguma forma, não funciona no meu caso após o apt-get install. Mas solução ByteDefenders está funcionando bem ;-)
linolino
15

Eu sou um glutão por punição, então eu vou te dar o caminho da GUI. Dê uma olhada no ANoise .

O som padrão fornecido é ruim, mas você pode baixar outros sons como Forest Rain, Fountain e outros. Você pode configurá-lo para iniciar com o sistema e até parar após um certo tempo.

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

Código ANoise , e para Para som extra no rio:

sudo apt-get install anoise-community-extension1
Mitch
fonte
+1 Eu uso Anoise o tempo todo. Mas tem alguns bugs importantes com o 16.04.
UniversallyUniqueID
10

Abra o Audacity.

Vá para "Gerar> Ruído ..."

Selecione "Browniano" (muito menos agressivo que o ruído branco real). Amplitude e duração não importam muito.

Faça um loop usando o Shiftbotão + Play.

Marin
fonte
6

O utilitário instalado por padrão speaker-testgera ruído rosa (que, como @nightingale, é o que você realmente deseja, não ruído branco). Pode ser configurado para fazê-lo indefinidamente, executando

speaker-test -l 0
Jules
fonte
5

O FFMpeg possui um filtro de fonte de ruído de áudio. Você pode reproduzi-lo usandoffplay :

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

O argumento arg -ié interpretado como um gráfico de filtro lavfi, devido a -f lavfi. -showmode 0desativa a janela do visualizador de áudio padrão do ffplay, que é exibida por padrão para entradas somente de áudio.

Como você pode ver na saída de ffmpeg -h filter=anoisesrc, você pode escolher o ruído marrom / rosa / branco em qualquer amplitude e amostragem que desejar, opcionalmente com uma duração finita.


Você também pode usar mpvum belo fork do mplayer ou outros jogadores que permitam gráficos de filtro ffmpeg. por exemplo

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

Isso pode ser útil se você tiver uma configuração de saída de áudio personalizada configurada para o seu player favorito.

Peter Cordes
fonte
5

Vejo que ninguém usou aplayainda, então tente o seguinte:

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

Não é muito imaginativo, por isso adicionei um temporizador para compensar :). As durationconfigurações estão em segundos, então isso funcionará por 1 hora e depois será desligado.

andrew.46
fonte
3

O ruído branco é matematicamente uma distribuição uniforme de frequências. Você pode produzi-lo com dados aleatórios de /dev/randomou /dev/urandom. Se você quiser alterar o "tom" do ruído produzido (por exemplo, torná-lo menos "pesado", removendo as frequências mais baixas, ou "amortecedor", removendo as frequências mais altas), use um comando dd bs=1 if=/dev/urandom of=whitenoise.raw count=1048576para gerar algum ruído branco, importe-o para o Audacity e use os filtros passa-alto e passa-baixo para ajustá-lo ao seu gosto (ao usar os filtros, lembre-se de que o ouvido humano médio ouvirá frequências de até 20kHz).

EDIT: Audacity também pode gerar ruído branco em si.

Micheal Johnson
fonte
2

Tom Swiss, do unreasonable.org, usa o seguinte código (using sox) para gerar ruído branco / rosa. Você precisará primeiro instalar o sox ( sudo apt install sox) e depois criar um shell script com o seguinte código:

#!/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

Dica para o chapéu http://unreasonable.org/white_noise_generator_with_sox_for_Linux

Disclaimer: Eu ainda não tentei isso

Nick Weinberg
fonte
Isso gera uma taxa de amostragem de 8kHz, portanto não há energia de ruído acima de 4kHz. : / O ruído rosa adequado deve ter algum. Sugestão interessante de usar um filtro vibrato / tremolo no ruído, no entanto.
Peter Cordes
1
Melhor solução? Remover len='7:00:00', if [ "$1" != '' ];thene fi, adicionando suporte para o ruído infinito.
EKons
1

Há também o Renoise, um sequenciador de áudio multiplataforma muito poderoso, embora a versão completa seja comercial. A versão demo, no entanto, não tem muitas limitações e permitirá que você faça o que quiser e adicione filtros, efeitos etc. ao som gerado.

http://www.renoise.com

Ruído branco verdadeiro com um filtro passa-baixo, e talvez um pouco de coro e reverb adicionados para um efeito natural agradável, soaria bastante agradável.

delt
fonte