オーディオライン出力(ALSAプラグインを使用して作成された仮想デバイス)にオーディオ信号があるかどうかをコマンドラインでどのように確認できますか?信号強度を確認しますか?
答え1
"sox"ツールを使用して解決策を見つけました(靴下男)。この回答で提案した方法を使用できます(アプリケーションとスピーカーに音声出力を送信する)alsa仮想デバイスから信号を取得するには、出力デバイスに送信中に「ループバック」を呼び出し、soxを使用して信号と信号強度があることを確認します。
sox -b 16 -t alsa hw:Loopback,1,0 -r 48000 -n stat
(-b -> 16 ビット信号、-t (alsa hw:Loopback,1,0) -> 信号の仮想デバイスを提供し、 -r 48000 -> サンプリング周波数および -n stat -> 信号解析)
このコマンドは、次の出力を提供します。
Input File : 'hw:Loopback,1,0' (alsa)
Channels : 2
Sample Rate : 48000
Precision : 16-bit
Sample Encoding: 16-bit Signed Integer PCM
In:0.00% 00:00:02.47 [00:00:00.00] Out:115k [-=====|=====-] Hd:3.9 Clip:0
Samples read: 229376
Length (seconds): 2.389333
Scaled by: 2147483647.0
Maximum amplitude: 0.630951
Minimum amplitude: -0.630981
Midline amplitude: -0.000015
Mean norm: 0.159916
Mean amplitude: -0.004383
RMS amplitude: 0.198459
Maximum delta: 1.176422
Minimum delta: 0.000000
Mean delta: 0.223984
RMS delta: 0.278537
Rough frequency: 10721
Volume adjustment: 1.585
信号を受信したときと信号がない場合:
Input File : 'hw:Loopback,1,0' (alsa)
Channels : 2
Sample Rate : 48000
Precision : 16-bit
Sample Encoding: 16-bit Signed Integer PCM
In:0.00% 00:02:23.70 [00:00:00.00] Out:6.89M [ | ] Clip:0
Samples read: 13787136
Length (seconds): 143.616000
Scaled by: 2147483647.0
Maximum amplitude: 0.000000
Minimum amplitude: 0.000000
Midline amplitude: 0.000000
Mean norm: 0.000000
Mean amplitude: 0.000000
RMS amplitude: 0.000000
Maximum delta: 0.000000
Minimum delta: 0.000000
Mean delta: 0.000000
RMS delta: 0.000000
Rough frequency: 0
"-n stat"ツールの意味は(レッドソックスのマニュアルページ)