Bump to WebRTC M131 release
Ongoing fixes and improvements, transient suppressor is gone. Also, dropping isac because it doesn't seem to be useful, and is just build system deadweight now. Upstream references: Version: 131.0.6778.200 WebRTC: 79aff54b0fa9238ce3518dd9eaf9610cd6f22e82 Chromium: 2a19506ad24af755f2a215a4c61f775393e0db42
This commit is contained in:
@ -13,7 +13,6 @@
|
||||
#include <array>
|
||||
#include <utility>
|
||||
|
||||
#include "api/array_view.h"
|
||||
#include "common_audio/resampler/include/push_resampler.h"
|
||||
#include "modules/audio_processing/agc2/agc2_common.h"
|
||||
#include "modules/audio_processing/agc2/rnn_vad/common.h"
|
||||
@ -36,7 +35,7 @@ class MonoVadImpl : public VoiceActivityDetectorWrapper::MonoVad {
|
||||
|
||||
int SampleRateHz() const override { return rnn_vad::kSampleRate24kHz; }
|
||||
void Reset() override { rnn_vad_.Reset(); }
|
||||
float Analyze(rtc::ArrayView<const float> frame) override {
|
||||
float Analyze(MonoView<const float> frame) override {
|
||||
RTC_DCHECK_EQ(frame.size(), rnn_vad::kFrameSize10ms24kHz);
|
||||
std::array<float, rnn_vad::kFeatureVectorSize> feature_vector;
|
||||
const bool is_silence = features_extractor_.CheckSilenceComputeFeatures(
|
||||
@ -73,39 +72,33 @@ VoiceActivityDetectorWrapper::VoiceActivityDetectorWrapper(
|
||||
int sample_rate_hz)
|
||||
: vad_reset_period_frames_(
|
||||
rtc::CheckedDivExact(vad_reset_period_ms, kFrameDurationMs)),
|
||||
frame_size_(rtc::CheckedDivExact(sample_rate_hz, kNumFramesPerSecond)),
|
||||
time_to_vad_reset_(vad_reset_period_frames_),
|
||||
vad_(std::move(vad)) {
|
||||
RTC_DCHECK(vad_);
|
||||
vad_(std::move(vad)),
|
||||
resampled_buffer_(
|
||||
rtc::CheckedDivExact(vad_->SampleRateHz(), kNumFramesPerSecond)),
|
||||
resampler_(frame_size_,
|
||||
resampled_buffer_.size(),
|
||||
/*num_channels=*/1) {
|
||||
RTC_DCHECK_GT(vad_reset_period_frames_, 1);
|
||||
resampled_buffer_.resize(
|
||||
rtc::CheckedDivExact(vad_->SampleRateHz(), kNumFramesPerSecond));
|
||||
Initialize(sample_rate_hz);
|
||||
vad_->Reset();
|
||||
}
|
||||
|
||||
VoiceActivityDetectorWrapper::~VoiceActivityDetectorWrapper() = default;
|
||||
|
||||
void VoiceActivityDetectorWrapper::Initialize(int sample_rate_hz) {
|
||||
RTC_DCHECK_GT(sample_rate_hz, 0);
|
||||
frame_size_ = rtc::CheckedDivExact(sample_rate_hz, kNumFramesPerSecond);
|
||||
int status =
|
||||
resampler_.InitializeIfNeeded(sample_rate_hz, vad_->SampleRateHz(),
|
||||
/*num_channels=*/1);
|
||||
constexpr int kStatusOk = 0;
|
||||
RTC_DCHECK_EQ(status, kStatusOk);
|
||||
vad_->Reset();
|
||||
}
|
||||
|
||||
float VoiceActivityDetectorWrapper::Analyze(AudioFrameView<const float> frame) {
|
||||
float VoiceActivityDetectorWrapper::Analyze(
|
||||
DeinterleavedView<const float> frame) {
|
||||
// Periodically reset the VAD.
|
||||
time_to_vad_reset_--;
|
||||
if (time_to_vad_reset_ <= 0) {
|
||||
vad_->Reset();
|
||||
time_to_vad_reset_ = vad_reset_period_frames_;
|
||||
}
|
||||
|
||||
// Resample the first channel of `frame`.
|
||||
RTC_DCHECK_EQ(frame.samples_per_channel(), frame_size_);
|
||||
resampler_.Resample(frame.channel(0).data(), frame_size_,
|
||||
resampled_buffer_.data(), resampled_buffer_.size());
|
||||
MonoView<float> dst(resampled_buffer_.data(), resampled_buffer_.size());
|
||||
resampler_.Resample(frame[0], dst);
|
||||
|
||||
return vad_->Analyze(resampled_buffer_);
|
||||
}
|
||||
|
Reference in New Issue
Block a user