
나에게 맞지 않는 해결책을 찾았습니다.
오디오 - Linux에서 명령줄 도구를 사용하여 마이크 레벨 모니터링 - Think Tank 101 - CC 저작권 기반 Q&A 공유 플랫폼 https://superuser.com/questions/306701/monitoring-the-microphone-level-with-a-command-line-tool-in-linux
문제는 그들이 사용하고 있다는 것입니다.최대 진폭소리를 감지합니다. 그러나 녹음된 오디오에 침묵만 포함되어 있든 일부 소리가 포함되어 있든 나에게 그 가치는 항상 동일합니다. 예를 들어:
10초간 묵념(여기에서 다운로드 가능:http://denis-aristov.ucoz.com/en/test-mic-silence.wav):
$ arecord -f S16_LE -D hw:2,0 -d 10 /tmp/test-mic-silence.wav
$ sox -t .wav /tmp/test-mic-silence.wav -n stat
Samples read: 80000
Length (seconds): 10.000000
Scaled by: 2147483647.0
Maximum amplitude: 0.999969
Minimum amplitude: -1.000000
Midline amplitude: -0.000015
Mean norm: 0.202792
Mean amplitude: 0.009146
RMS amplitude: 0.349978
Maximum delta: 0.913849
Minimum delta: 0.000000
Mean delta: 0.001061
RMS delta: 0.005564
Rough frequency: 20
Volume adjustment: 1.000
10초 동안 약간의 소리 포함(여기에서 다운로드 가능:http://denis-aristov.ucoz.com/en/test-mic-sounds.wav):
$ arecord -f S16_LE -D hw:2,0 -d 10 /tmp/test-mic-sounds.wav
$ sox -t .wav /tmp/test-mic-sounds.wav -n stat
Samples read: 80000
Length (seconds): 10.000000
Scaled by: 2147483647.0
Maximum amplitude: 0.999969
Minimum amplitude: -1.000000
Midline amplitude: -0.000015
Mean norm: 0.185012
Mean amplitude: 0.010225
RMS amplitude: 0.334286
Maximum delta: 1.999969
Minimum delta: 0.000000
Mean delta: 0.006213
RMS delta: 0.057844
Rough frequency: 220
Volume adjustment: 1.000
차이점은 무엇입니까? 소리 감지에 사용되는 값은 무엇입니까? 아니면 뭔가 잘못되었기 때문에 일부 설정을 해야 합니까?
방금 다른 컴퓨터(마이크가 내장된 노트북)를 사용했습니다. Windows "Audio Recorder"를 사용하여 두 개의 WMA 파일(사운드 포함 및 제외)을 녹음했습니다. .을 사용하여 WAV 파일로 변환하고 audacity
다음 출력을 얻습니다. 이번에는 최대 진폭이 다릅니다.
소음이 있어요:
$ sox -t .wav /tmp/mic-sounds.wav -n stat
Samples read: 581632
Length (seconds): 6.594467
Scaled by: 2147483647.0
Maximum amplitude: 0.999969
Minimum amplitude: -1.000000
Midline amplitude: -0.000015
Mean norm: 0.013987
Mean amplitude: 0.000062
RMS amplitude: 0.065573
Maximum delta: 1.999969
Minimum delta: 0.000000
Mean delta: 0.011242
RMS delta: 0.047009
Rough frequency: 5031
Volume adjustment: 1.000
소리가 나지 않음:
$ sox -t .wav /tmp/mic-silence.wav -n stat
Samples read: 372736
Length (seconds): 4.226032
Scaled by: 2147483647.0
Maximum amplitude: 0.029022
Minimum amplitude: -0.029114
Midline amplitude: -0.000046
Mean norm: 0.005082
Mean amplitude: -0.000053
RMS amplitude: 0.006480
Maximum delta: 0.030487
Minimum delta: 0.000000
Mean delta: 0.005815
RMS delta: 0.007285
Rough frequency: 7891
Volume adjustment: 34.348
이는 다른 컴퓨터의 마이크에 문제가 있음을 의미합니까?
답변1
(이 접근 방식은 허용 가능한 것으로 보이며 의견이 보존을 보장하지 않으므로 다양한 의견을 바탕으로 답변합니다.)
예를 들어 오디오 편집기에서 첫 번째 녹음("10초의 무음")을 봅니다 audacity
. 레벨이 0초에 1에서 1초에 -1, 1.5초에 0.5로 변한 다음 끝 부분에서 거의 0으로 떨어지면 DC(극저주파) 구성 요소를 볼 수 있습니다. 그 동안 마이크를 연결해 두셨나요? 그렇다면 약 기다려야합니다. 진폭은 측정 전 10초 동안 안정화됩니다. 그렇지 않은 경우 DC(직류, 즉 정전압 오프셋) 구성 요소입니다. sox
시도해 볼 수 있는 몇 가지 필터가 있습니다.
sox
아무런 문제 없이 쉘 스크립트의 필터를 사용할 수 있습니다 . 예를 들어 highpass 100
초기 점프를 제외한 대부분의 콘텐츠를 필터링 해 보세요 .
DC 성분을 필터링하는 것이 너무 힘들다면 초기 부분을 무시하고 나머지 부분을 직접 사용할 수 있습니다.