오디오 입력 레벨을 보기 위한 텍스트 모드 도구

오디오 입력 레벨을 보기 위한 텍스트 모드 도구

Audacity를 사용하여 오디오 입력(마이크 또는 라인 입력)을 모니터링하면 현재 입력 레벨을 볼 수 있습니다.

텍스트 콘솔에서 입력 및 보기 수준을 모니터링하는 방법은 무엇입니까?

답변1

arecord및 명령을 사용하면 sox1초 샘플을 녹음하고 해당 레벨을 측정할 수 있습니다.

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 sourcesPulseaudio 소스 목록 과 함께 사용됩니다 .

관련 정보