LinuxParty
Mis hijos (4 y 5 años) gritan mucho cuando juegan al ordenador -He encontrado una manera efectiva para evitar los ruidos, Me introduzco por ssh (como root) en el ordenador e introduzco el comando:
(en el caso de Fedora chvt 7, debe cambiarse por chvt 1)
chvt 3; sleep 15; chvt 7
Cuando oigo ruidos fuertes. Esto les saca de la pantalla durante 15 segundos. Les he dicho que al equipo no le gustan los ruidos fuertes. Ellos se lo creen totalmente y piden perdón al ordenador. Con el tiempo se volvieron mucho más tranquilos, y yo vuelvo a ser feliz sin tener que volverlos a reñir. Sin embargo, no estoy siempre por allí para hacerlo manualmente.
¿Es posible automatizar esto? Un micrófono se fija a la caja. Si el nivel de volumen pasa de un umbral entonces quiero ejecutar un comando.
Utilizando SoX para analizar el audio, ejemplo:
sox -t .wav "|arecord -d 2" -n stat
Con sox -t .wav
especificamos que procesamos el tipo wav, "|arecord -d 2"
ejecuta el programa arecord
durante dos segundos, -n
muestra al archivo nulo y con stat
especificamos que queremos estadísticas.
La salida del comando puede parecerse a algo parecido a:
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
La máxima amplitud puede ser extraida vía:
grep -e "RMS.*amplitude" | tr -d ' ' | cut -d ':' -f 2
Usaremos grep
para la línea que desea, utilice tr
para recortar los espacios en blanco y luego cut
en los caracter :
y tome la segunda parte que nos da 0.068383
en este ejemplo. Como se sugiere por los comentarios, RMS es una mejor medida la potencia de amplitud máxima.
Puede finalmente usar bc
en el resultado para comparar los valores de la línea de comando
if (( $(echo "$value > $threshold" | bc -l) )) ; # ...
Puede crear un bucle (mire Bash examples) que llama a sleep durante 1 minuto, comprueba el volumen, y luego se repite, puede dejarlo funcionando en segundo plano. El último paso es añadirlo a los scripts de inicio (de sesión) o archivos de servicio en /etc/rc.d/rc.local (dependiendo de su sistema operativo / distribución), de tal manera que usted ni siquiera tenga que ponerlo en marcha manualmente.

-
Negocios
- ¿Ha comenzado el declive de los empleos de los trabajadores del conocimiento?
- Un hombre que perdió su fortuna en bitcoins en un vertedero galés estudia comprar todo el vertedero
- DeepSeek ha gastado más de 500 millones de dólares en chips Nvidia a pesar de las afirmaciones de inteligencia artificial de bajo costo, según SemiAnalysis
- JPMorgan Chase exige que todos los trabajadores regresen a la oficina cinco días a la semana
- Un estudio revela los trabajos más satisfactorios: el trabajo por cuenta propia, el trabajo de funcionario, la gestión y el servicio social
- Los conductores Autómos de Uber y Lyft pueden sindicalizarse, dicen los votantes de Massachusetts
- El gran problema de los mandatos de regreso a la oficina es su cumplimiento
- Los graduados de la Generación Z están siendo despedidos meses después de ser contratados
- Recuperando la concentración con Focus Blocks: Una guía técnica para usuarios de Linux
- La propuesta de una semana laboral de cuatro días del gobierno británico plantea problemas, afirma un profesor de economía
- Best Buy está despidiendo a más empleados debido a la caída de las ventas
- No es un 'abandono silencioso' de los teletrabajadores, solo intentan 'vacaciones silenciosas'
- ¿Podrían las IA reemplazar a los directores ejecutivos?
- Esta Web es un Tesoro de Herramientas Gratuitas para Potenciar tu Experiencia en Informática
- La fatiga por videoconferencia es real, según un estudio