Functions to estimate the inverse filter via LPC and compute the LP residual applying the inverse filter. This CL also includes test utilities, in particular BinaryFileReader, used to read chunks of data and optionally cast them on the fly, and Create*Reader() functions to read resource files available at test time. Bug: webrtc:9076 Change-Id: Ia4793b8ad6a63cb3089ed11ddad89d1aa0b840f6 Reviewed-on: https://webrtc-review.googlesource.com/70244 Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> Reviewed-by: Jesus de Vicente Pena <devicentepena@webrtc.org> Reviewed-by: Alex Loiko <aleloi@webrtc.org> Cr-Commit-Position: refs/heads/master@{#22946}
40 lines
1.3 KiB
C++
40 lines
1.3 KiB
C++
/*
|
|
* 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.
|
|
*/
|
|
|
|
#ifndef MODULES_AUDIO_PROCESSING_AGC2_RNN_VAD_LP_RESIDUAL_H_
|
|
#define MODULES_AUDIO_PROCESSING_AGC2_RNN_VAD_LP_RESIDUAL_H_
|
|
|
|
#include "api/array_view.h"
|
|
|
|
namespace webrtc {
|
|
namespace rnn_vad {
|
|
|
|
// LPC inverse filter length.
|
|
constexpr size_t kNumLpcCoefficients = 5;
|
|
|
|
// Given a frame |x|, computes a post-processed version of LPC coefficients
|
|
// tailored for pitch estimation.
|
|
void ComputeAndPostProcessLpcCoefficients(
|
|
rtc::ArrayView<const float> x,
|
|
rtc::ArrayView<float, kNumLpcCoefficients> lpc_coeffs);
|
|
|
|
// Computes the LP residual for the input frame |x| and the LPC coefficients
|
|
// |lpc_coeffs|. |y| and |x| can point to the same array for in-place
|
|
// computation.
|
|
void ComputeLpResidual(
|
|
rtc::ArrayView<const float, kNumLpcCoefficients> lpc_coeffs,
|
|
rtc::ArrayView<const float> x,
|
|
rtc::ArrayView<float> y);
|
|
|
|
} // namespace rnn_vad
|
|
} // namespace webrtc
|
|
|
|
#endif // MODULES_AUDIO_PROCESSING_AGC2_RNN_VAD_LP_RESIDUAL_H_
|