This change refactors the Neural Residual Echo Estimator (ML REE) to properly handle multi-channel audio signals for all inputs.
All multi-channel handling, buffering, and pre-processing is moved to the FeatureExtractor classes.
Key changes:
- The main NeuralResidualEchoEstimator::Estimate interface is updated to accept a multi-channel webrtc::Block for the render signal.
- NeuralResidualEchoEstimatorImpl no longer performs any buffering or channel summation.
- The FeatureExtractor interface is redesigned, splitting responsibilities into:
- UpdateBuffers: For buffering incoming blocks of data.
- PrepareModelInput: For preparing the model's input tensor when enough data is available.
- ReadyForInference: To check if a full frame can be processed.
- TimeDomainFeatureExtractor now implements channel summation for all inputs.
- FrequencyDomainFeatureExtractor buffers each channel and then computes the average power spectrum across all channels.
Bug: webrtc:442444736
Change-Id: Ie0df331c87a414146187f661aed17369a946d660
No-Iwyu: Not changing the tflite includes.
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/429142
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Jesus de Vicente Pena <devicentepena@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#46345}
WebRTC is a free, open software project that provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. The WebRTC components have been optimized to best serve this purpose.
Our mission: To enable rich, high-quality RTC applications to be developed for the browser, mobile platforms, and IoT devices, and allow them all to communicate via a common set of protocols.
The WebRTC initiative is a project supported by Google, Mozilla and Opera, amongst others.
See here for instructions on how to get started developing with the native code.
Authoritative list of directories that contain the native API header files.