オーディオ入力レベルを表示するためのテキストモードツール

オーディオ入力レベルを表示するためのテキストモードツール

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 4行目のみ出力する2番目のフィールドにパイプできます。

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ソースリストと一緒に使用されます。

関連情報