From 6dcc127c0a5078e4cbba329943489307cd8428a7 Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Mon, 21 Aug 2023 18:05:29 -0400 Subject: decay vad prob over time --- src/audio/manager.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/audio/manager.cpp b/src/audio/manager.cpp index dc3e7e9..7b88c67 100644 --- a/src/audio/manager.cpp +++ b/src/audio/manager.cpp @@ -482,6 +482,9 @@ bool AudioManager::DecayVolumeMeters() { m_capture_peak_meter -= 600; if (m_capture_peak_meter < 0) m_capture_peak_meter = 0; + const auto x = m_vad_prob.load() - 0.05f; + m_vad_prob.store(x < 0.0f ? 0.0f : x); + std::lock_guard _(m_vol_mtx); for (auto &[ssrc, meter] : m_volumes) { @@ -505,13 +508,13 @@ bool AudioManager::CheckVADRNNoise(const int16_t *pcm, float *denoised_left, flo for (size_t i = 0; i < 480; i++) { rnnoise_input[i] = static_cast(pcm[i * 2]); } - m_vad_prob = rnnoise_process_frame(m_rnnoise[0], denoised_left, rnnoise_input); + m_vad_prob = std::max(m_vad_prob.load(), rnnoise_process_frame(m_rnnoise[0], denoised_left, rnnoise_input)); if (m_enable_noise_suppression) { for (size_t i = 0; i < 480; i++) { rnnoise_input[i] = static_cast(pcm[i * 2 + 1]); } - m_vad_prob = rnnoise_process_frame(m_rnnoise[1], denoised_right, rnnoise_input); + rnnoise_process_frame(m_rnnoise[1], denoised_right, rnnoise_input); } return m_vad_prob > m_prob_threshold; -- cgit v1.2.3