2013-05-17 3 views
-1

내가 값이 데이터은 그것이 있는지 확인하기 위해 초과 가지고 디지털 클리핑을 감지 할 어떻게 그렇게오디오 신호를 디지털 클리핑을 감지

inp = alsaaudio.PCM(alsaaudio.PCM_CAPTURE, alsaaudio.PCM_NONBLOCK, card) 

# Set attributes: Mono, 48000 Hz, 16 bit little endian samples 
inp.setchannels(1) 
inp.setrate(48000) 
inp.setformat(alsaaudio.PCM_FORMAT_S16_LE) 
l, data = inp.read() 

처럼 파이썬에서 오디오 바이트 배열을 데이터을 감안할 때 디지털로 클리핑 되었습니까?

+2

오버 드라이브 란 무엇을 의미합니까? 디지털 클리핑? 데이터는 클리핑되기 위해 2 개 또는 3 개 샘플에 대해 16 비트 부호있는 정수의 최대 값 또는 최소값과 동일해야합니다. –

+0

오디오가 지나치게 많이 들리면 사람들이 마이크에 닿거나 회로가 어딘가에서 단락되거나 너무 크게 소리 치는 경우 왜곡됩니다. 나는 이것이 디지털 클리핑이라고 생각하고있다. –

+0

@RobertHarvey 그래서 기본적으로 -32.768에서 32.767 사이입니까? 그래서 만약 내가 사용한다면 audioop.max (data, 2)> = 32767 || audioop.max (data, 2) <= -32767 클리핑이 있어야합니까? –

답변

1

오버 드라이브는 기본적으로 이득 왜곡입니다. 그것은 전압을 상승 시켜서 운전자가 정상을 자르고 신호를 왜곡시키는 지점으로 올립니다. 이것을 디지털 방식으로 테스트해야한다면 하드 클리핑이 될 것입니다. 따라서 최대 임계 값을 통과하는 값을 검색해야합니다. 16 비트 오디오 파일을 사용하면 클립의 특성상 0dB가됩니다. 왜냐하면 더 이상 저장할 비트가 없기 때문에 소프트웨어가 자동으로 최대 16 비트 정수까지 저장할 수 있기 때문입니다. 불행히도 트랙이 이전에 왜곡되어 볼륨이 낮아져서 믹스에 더 잘 어울리면 아마 찾지 못할 것입니다. 않는 한, 당신이 조사하고있는 것이 트랙의 유일한 사운드 소스입니다. 어떤 경우에는 트랙의 최대 값을 찾아이를 임계 값으로 설정합니다. 하드 클리핑이 구형파로 나타나기는하지만, 일반적인 가청 파보다 더 긴 시간 동안 연속적으로 동일한 값을 검색 할 수 있습니다 (합법적 인 구형파 무시). 그게 내가 너를 위해 할 수있는 최선의 방법에 관한거야.

관련 문제