문제

AvaudioreCorder의 PeakPowerForChannel 및 AveragePowerForChannel 방법의 차이점은 무엇입니까?

그리고 반환 된 값이 왜 음수입니까? 소리가 나지 않고 사운드의 진폭이 상승 할 때 0이되어야합니까? 보다 "읽기 쉬운"형식으로 어떻게 변환 할 수 있습니까?

감사.

도움이 되었습니까?

해결책

오디오 볼륨과 관련이 있기 때문에 그 값을 보지는 않았지만 데시벨의 변화로 측정 된 것 같습니다.

0은 최대 음량이며 데시벨의 방울로 표현 될 수있는 것보다 더 조용한 것입니다.

긍정적이고 부정적인 것은 중요하지 않습니다. 음량의 차이 (또는 인식 된 음량)를 측정하는 로그 척도라는 것을 기억하십시오.

다른 팁

피크 전력은 모든 샘플의 모든 절대 값의 최대 값을 취하는 것을 의미합니다. 오디오의 클리핑을 방지하는 데 유용합니다.

평균 전력은 샘플의 RMS (Root-Mean-Square)입니다. 이것은 오디오가 인간의 귀에 얼마나 큰 소리로 들리는지를 결정하는 데 유용합니다.

0dB는 오디오 시스템의 최대 값과 동일한 데시벨로 표현되기 때문에 값이 음수입니다. LOG10 척도이며 변환 공식은 다음과 같습니다.

db = 10 * log10 (level);

여기서 DB는 데시벨이고 레벨은 0.0에서 1.0 범위의 스칼라 값입니다. 따라서 레벨이 0.0 (사일런트) 인 경우 결과는 음의 무한대입니다.

"읽기 쉬운"형식을 원한다면 최대 0.0이고 최소가 -60.0 인 레벨 미터 (UIPROGRESSVIEW 또는 자신의)를 사용할 수 있습니다 (노이즈 플로어에 따라 조정할 수 있음). 데시벨에 익숙해지면 선형 레벨보다 더 의미가 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top