How do I make a machine “blank screen” for a period of time (as a penalty) if certain noise levels are reached?

Are you want to Know How to remove one or all auto-complete text entries in Chrome? if your answer is yes, then you’re in right place. In this short post, I will show you a very easy trick. By using this trick you know how to make a machine “blank screen” for a period of time (as a penalty) if certain noise levels are reached?

How do I make a machine “blank screen” for a period of time (as a penalty) if certain noise levels are reached?
How do I make a machine “blank screen” for a period of time (as a penalty) if certain noise levels are reached?

Use sox from SoX to analyze a short audio sample:

sox -t .wav "|arecord -d 2" -n stat

With -t .wav we specify we process the wav type, "|arecord -d 2" executes the arecord program for two seconds, -n outputs to the null file and with stat we specify we want statistics.

The output of this command, on my system with some background speech, is:

Recording WAVE 'stdin' : Unsigned 8 bit, Rate 8000 Hz, Mono
Samples read:             16000
Length (seconds):      2.000000
Scaled by:         2147483647.0
Maximum amplitude:     0.312500
Minimum amplitude:    -0.421875
Midline amplitude:    -0.054688
Mean    norm:          0.046831
Mean    amplitude:    -0.000044
RMS     amplitude:     0.068383
Maximum delta:         0.414063
Minimum delta:         0.000000
Mean    delta:         0.021912
RMS     delta:         0.036752
Rough   frequency:          684
Volume adjustment:        2.370

The maximum amplitude can then be extracted via:

grep -e "RMS.*amplitude" | tr -d ' ' | cut -d ':' -f 2
We grep for the line we want, use tr to trim away the space characters and then cut it by the : character and take the second part which gives us 0.068383 in this example. As suggested by comments, RMS is a better measure of energy than maximum amplitude.

You can finally use bc on the result to compare floating-point values from the command-line:

if (( $(echo "$value > $threshold" | bc -l) )) ; # ...
If you build a loop (see Bash examples) that calls sleep for 1 minute, tests the volume, and then repeats, you can leave it running in the background. The last step is to add it to the init scripts or service files (depending on your OS/distro), such that you do not even have to launch it manually.

 

How to remove an entry from Chrome’s Remembered URLs from the url bar?

How do I disable the warning Chrome gives if a security certificate is not trusted?

How to remove one or all auto-complete text entries in Chrome?

How to clear/flush the DNS cache in Google Chrome?

Leave a Reply