소리가 녹음되는 동안 데시벨 값을 얻는 방법이 있습니까? 현재 MediaRecorder
을 사용하여 소리를 녹음합니다.녹음 중에 데시벨 값을 얻으시겠습니까?
마켓 플레이스에서 어떤 응용 프로그램도 사용할 수 없습니다. 사용자가 휴대 전화에 설치했는지 확신 할 수 없습니다. Audalyzer
다음 수식을 사용하고 있지만 올바른지 또는 내 결과가 정확한지 확실하지 않습니다!
short data[] = new short[bufferSize];
read = recorder.read(data, 0, bufferSize);
double p2 = data[data.length-1];
System.out.println("p2: " + p2);
double decibel;
if (p2==0)
decibel=Double.NEGATIVE_INFINITY;
else
decibel = 20.0*Math.log10(p2/65535.0);
System.out.println("p2/65535: " + (p2/65535.0));
System.out.println("decibel: " + decibel);
현재 결과 :
01-11 16:43:03.821: I/System.out(14530): p2: 0.0
01-11 16:43:03.821: I/System.out(14530): p2/65535: 0.0
01-11 16:43:03.821: I/System.out(14530): decibel: -Infinity
01-11 16:43:03.911: I/System.out(14530): p2: 0.0
01-11 16:43:03.911: I/System.out(14530): p2/65535: 0.0
01-11 16:43:03.911: I/System.out(14530): decibel: -Infinity
01-11 16:43:04.001: I/System.out(14530): p2: 0.0
01-11 16:43:04.001: I/System.out(14530): p2/65535: 0.0
01-11 16:43:04.001: I/System.out(14530): decibel: -Infinity
01-11 16:43:04.091: I/System.out(14530): p2: 0.0
01-11 16:43:04.091: I/System.out(14530): p2/65535: 0.0
01-11 16:43:04.091: I/System.out(14530): decibel: -Infinity
01-11 16:43:04.191: I/System.out(14530): p2: 0.0
01-11 16:43:04.191: I/System.out(14530): p2/65535: 0.0
01-11 16:43:04.191: I/System.out(14530): decibel: -Infinity
01-11 16:43:04.281: I/System.out(14530): p2: 0.0
01-11 16:43:04.281: I/System.out(14530): p2/65535: 0.0
01-11 16:43:04.281: I/System.out(14530): decibel: -Infinity
01-11 16:43:04.371: I/System.out(14530): p2: 0.0
01-11 16:43:04.371: I/System.out(14530): p2/65535: 0.0
01-11 16:43:04.371: I/System.out(14530): decibel: -Infinity
신호 레벨을 dB로 얻으려고한다고 가정합니다. 이 경우 0db가 최대 값이며 그 외 모든 값은 음수입니다. 그러나 SPL을 측정하려는 경우 불가능합니다. 응용 프로그램에서 마이크, 오디오 장치의 게인 구조 등을 인식하지 못합니다. 자체 보정 방법을 제공해야합니다. – Brad
그 밖의 모든 것이 부정적인 경우 어떻게 유효한 dB 값을 얻을 수 있습니까? – Neeta
it *은 유효하지만 음압 레벨이 아닙니다 ... 오히려 공칭 (0dB, 가장 높은 신호 레벨)에 상대적인 신호 레벨입니다. dB로 측정 한 음압 레벨은 dB로 측정 한 신호 레벨과 완전히 다릅니다. dB 단위의 측정은 다른 것과 관련된 측정 일뿐입니다. 다시 말하면 마이크/장치를 보정하지 않으면 신호 레벨을 SPL로 변환 할 수 없습니다. – Brad