Chr*_*dal 19 audio linux microphone software-rec
我正在寻找一种工具,它可以在不到半秒的时间内告诉我麦克风是否接收到高于某个阈值的任何声音。(我计划然后使用另一个命令行工具将主通道静音,例如 amixer。)
Chr*_*dal 10
此解决方案将避免重复写入磁盘,即使在最坏的情况下它需要一秒钟而不是所需的不到半秒,但我在尝试后发现它足够快。所以,这是我使用的两个脚本:
。/探测:
while true; do
arecord -d 1 /dev/shm/tmp_rec.wav ; sox -t .wav /dev/shm/tmp_rec.wav -n stat 2>\
&1 | grep "Maximum amplitude" | cut -d ':' -f 2 | ./check.py
if [ $? -eq 0 ] ; then
amixer set Master 0
else
amixer set Master 80
fi
done
Run Code Online (Sandbox Code Playgroud)
./check.py:
#!/usr/bin/env python
import sys
number = 0.0
thing="NO"
line = sys.stdin.readline()
thing = line.strip()
number = float(thing)
if number < 0.15:
raise Exception,"Below threshold"
Run Code Online (Sandbox Code Playgroud)
几乎不优雅,但它有效。
注意:如果您想要更渐进的东西,请添加如下内容:
for i in `seq 0 80 | tac`; do
amixer set Master $i
done
Run Code Online (Sandbox Code Playgroud)
用于静音和
for i in `seq 0 80`; do
amixer set Master $i
done
Run Code Online (Sandbox Code Playgroud)
取消静音。
归档时间: |
|
查看次数: |
18498 次 |
最近记录: |