반응형
WebRTC AGC (자동 이득 제어)
WebRTC AGC를 테스트하고 있지만 신호가 수정되지 않은 상태로 통과하기 때문에 뭔가 잘못하고있는 것 같습니다.
AGC를 만들고 초기화하는 방법은 다음과 같습니다.
agcConfig.compressionGaindB = 9;
agcConfig.limiterEnable = 1;
agcConfig.targetLevelDbfs = 9; /* 9dB below full scale */
WebRtcAgc_Create(&agc);
WebRtcAgc_Init(agc, minLevel, maxLevel, kAgcModeFixedDigital, 8000);
WebRtcAgc_set_config(agc, agcConfig);
그리고 각 10ms 샘플 블록에 대해 다음을 수행합니다.
WebRtcAgc_Process(agc, micData, NULL, 80, micData, NULL, micLevelIn, &micLevelOut, 0, &saturationWarning);
경우 micLevelIn
0으로 설정됩니다.
누군가 내가 뭘 잘못하고 있는지 말해 줄 수 있습니까?
나는 풀 스케일 사인 톤이 목표 DBFS 레벨로 감쇠 될 것이라고 예상했습니다. 낮은 레벨의 사인 톤 (즉 -30dBFS)은 목표 DBFS 레벨과 일치하도록 증폭됩니다. 그러나 그것은 내가보고있는 것이 아닙니다.
다음은 Webrtc_AGC에 사용할 작업 순서입니다.
- AGC 생성 :
WebRtcAgc_Create
- AGC 초기화 :
WebRtcAgc_Init
- 구성 설정 :
WebRtcAgc_set_config
- 초기화
capture_level = 0
- 의 경우
kAgcModeAdaptiveDigital
VirtualMic을 호출합니다.WebRtcAgc_VirtualMic
- 프로세스 버퍼
capture_level
:WebRtcAgc_Process
- 반환 된 아웃 캡처 레벨을 가져
WebRtcAgc_Process
와서capture_level
- 5-7을 반복합니다.
audio buffers
- AGC를 파괴하십시오.
WebRtcAgc_Free
webrtc / modules / audio_processing / gain_control_impl.cc에서 참조하십시오.
이 시도:
agcConfig.compressionGaindB = 9; agcConfig.limiterEnable = 1; agcConfig.targetLevelDbfs = 9; / * 9dB 풀 스케일 이하 * / WebRtcAgc_Create (& agc); WebRtcAgc_Init (& agc, minLevel, maxLevel, kAgcModeFixedDigital, 8000); WebRtcAgc_set_config (& agc, & agcConfig);
참고 URL : https://stackoverflow.com/questions/22706446/webrtc-agc-automatic-gain-control
반응형
'developer tip' 카테고리의 다른 글
xperf WinDBG C # .NET 4.5.2 응용 프로그램-프로세스 덤프 이해 (0) | 2020.11.22 |
---|---|
XE3에서 자동 업데이트로 라이브 바인딩 (XE2 에서처럼 Notify ()를 호출 할 필요 없음) (0) | 2020.11.22 |
JAAS 인증 확인을 Shiro에 위임하려면 어떻게해야합니까? (0) | 2020.11.22 |
대규모 공개 데이터 세트? (0) | 2020.11.21 |
HttpRuntime.Cache와 HttpContext.Current.Cache의 차이점은 무엇입니까? (0) | 2020.11.21 |