Alex Loiko 2bac896d5e Adaptive Digital gain control structure.
This CL defines the control flow of the adaptive AGC. It also defines
method and class stubs.

Contents:
1. Divide the 'agc2' build target into 'fixed_digital' and
'adaptive_digital'.
1. Update the dependencies of everything that depended on 'agc2'.
2. Define the sub-modules of the adaptive digital AGC 2. They are:
   1. Level Estimator - it gets the energy and a speech probability
      and updates a speech level estimate.
   2. Noise Estimator - it gets an immutable view of the speech frame
      and updates the noise level estimate
   3. Gain applier - it gets the speech frame, the current speech and
      noise estimates, and the speech probability. It finds a gain to
      apply and applies it.
   4. AdaptiveAgc - sets up and controls the sub-modules described
      above.

Bug: webrtc:7494
Change-Id: Ib7ccd8924e94eead0bc5f935b5d8a12e06e24fd1
Reviewed-on: https://webrtc-review.googlesource.com/64440
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22628}
2018-03-27 14:12:50 +00:00

82 lines
2.0 KiB
Plaintext

# Copyright (c) 2018 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
import("../../../webrtc.gni")
rtc_static_library("vad") {
visibility = [
"../*",
"../../../rtc_tools:*",
]
sources = [
"common.h",
"gmm.cc",
"gmm.h",
"noise_gmm_tables.h",
"pitch_based_vad.cc",
"pitch_based_vad.h",
"pitch_internal.cc",
"pitch_internal.h",
"pole_zero_filter.cc",
"pole_zero_filter.h",
"standalone_vad.cc",
"standalone_vad.h",
"vad_audio_proc.cc",
"vad_audio_proc.h",
"vad_audio_proc_internal.h",
"vad_circular_buffer.cc",
"vad_circular_buffer.h",
"voice_activity_detector.cc",
"voice_activity_detector.h",
"voice_gmm_tables.h",
]
deps = [
"../..:module_api",
"../../..:typedefs",
"../../../audio/utility:audio_frame_operations",
"../../../common_audio",
"../../../common_audio:common_audio_c",
"../../../rtc_base:checks",
"../../audio_coding:isac",
]
}
rtc_source_set("vad_with_level") {
sources = [
"vad_with_level.h",
]
deps = [
"..:audio_frame_view",
"../../../api:array_view",
]
}
if (rtc_include_tests) {
rtc_static_library("vad_unittests") {
testonly = true
sources = [
"gmm_unittest.cc",
"pitch_based_vad_unittest.cc",
"pitch_internal_unittest.cc",
"pole_zero_filter_unittest.cc",
"standalone_vad_unittest.cc",
"vad_audio_proc_unittest.cc",
"vad_circular_buffer_unittest.cc",
"voice_activity_detector_unittest.cc",
]
deps = [
":vad",
"../..:module_api",
"../../../common_audio",
"../../../test:fileutils",
"../../../test:test_support",
"//testing/gmock",
"//testing/gtest",
]
}
}