Audacity를 사용하여 오디오 입력(마이크 또는 라인 입력)을 모니터링하면 현재 입력 레벨을 볼 수 있습니다.
텍스트 콘솔에서 입력 및 보기 수준을 모니터링하는 방법은 무엇입니까?
답변1
arecord
및 명령을 사용하면 sox
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
답변2
당신은 그것을 사용할 수 있습니다 sox
. Pulseaudio와 내 웹캠을 소스로 사용하는 예:
sox -S -t pulseaudio alsa_input.usb-046d_0809_23E942AD-02.analog-mono -n stats
ALSA 장치에서도 작동하며 기본 장치 등을 지정할 수 있습니다. man sox
자세히보다. pactl list short sources
Pulseaudio 소스 목록 과 함께 사용됩니다 .