Determinando o nível de decibéis do áudio de entrada de linha

2

Existe uma maneira (através da linha de comando) de produzir o nível de decibéis do áudio que entra no conector de entrada de linha da placa de som? Quero executar um script se o volume / intensidade do áudio que entra na entrada exceder um certo limite.

Eu verifiquei os arquivos e subdiretórios em / proc / asound e toquei um pouco com as ferramentas alsa / a *, mas não encontrei nada promissor.

Alguma ideia / pensamento?

    
por fsmaniac 18.11.2010 / 21:20

3 respostas

3

Experimente rec, incluído no pacote sox, com o filtro silencioso. Você pode determinar um nível e duração para iniciar e parar um registro. Então, você pode usá-lo como um gatilho para continuar o script.

Existe um link muito bom: link

Atenciosamente,

    
por 07.03.2013 / 23:46
1

Genericamente, não. Os dados gravados são um valor relativo (relativo ao máximo que a configuração gravará, que varia de acordo com o microfone, a placa de som e outros fatores).

Se você tiver outro equipamento pelo qual possa calibrar os valores emitidos pela placa de som, poderá descobrir (novamente, para uma configuração específica). Mas sem essa referência externa, não há como saber.

    
por 18.11.2010 / 21:49
0

você pode tentar algo assim:

/usr/bin/arecord -L # figure out what device to use

/usr/bin/arecord -d 1 --device plughw:CARD=HD1,DEV=0 -t wav | sox -t .wav - -n stats 2>&1 | awk '/RMS lev dB/{print $4}'
    
por 07.06.2017 / 22:13

Tags