Audio
用於查看音頻輸入電平的文本模式工具
使用 Audacity 監控音頻輸入(麥克風或線路輸入)時,我可以看到目前的輸入電平。
如何監控輸入並在文本控制台中查看級別?
使用
arecord
andsox
命令,您可以記錄 1 的樣本並測量其電平:arecord -qd 1 file && sox file -n stat
這是一個輸出範例:
Samples read: 8000 Length (seconds): 1.000000 Scaled by: 2147483647.0 Maximum amplitude: 0.992188 Minimum amplitude: -0.992188 Midline amplitude: 0.000000 Mean norm: 0.093221 Mean amplitude: -0.015338 RMS amplitude: 0.232947 Maximum delta: 0.617188 Minimum delta: 0.000000 Mean delta: 0.001067 RMS delta: 0.009643 Rough frequency: 52 Volume adjustment: 1.008
如果您只對電平/最大振幅感興趣,您可以將結果通過管道傳輸
awk
到僅輸出第四行的第二個欄位:arecord -qd 1 /tmp/rec.waw && sox /tmp/rec.waw -n stat 2>&1 | awk 'BEGIN{FS=":"} NR==4 {print $2}'
如果你想監控它的演變,你可以把這個命令放在一個while循環中:
while :; do arecord -qd 1 /tmp/rec.waw && sox /tmp/rec.waw -n stat 2>&1 | awk 'BEGIN{FS=":"} NR==4 {print $2}' sleep 1 # repeat every one second done
輸出:
0.992188 0.023438 0.046875 0.375000 0.523438 0.109375 0.242188
如果您希望輸出以 dB 為單位,您可以使用以下公式計算
awk
:while :; do arecord -qd 1 /tmp/rec.waw && sox /tmp/rec.waw -n stat 2>&1 | awk 'BEGIN{FS=":"} NR==4 {db=20*log($2)/log(10); printf("%0.4f\n",db}' sleep 1 # repeat every one second done
以 dB 為單位的輸出:
-12.6467 -13.4366 -13.2010 -14.4959