Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(44)

Unified Diff: webrtc/modules/audio_processing/agc/standalone_vad.cc

Issue 1212543002: Pull the Voice Activity Detector out from the AGC (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/audio_processing/agc/standalone_vad.cc
diff --git a/webrtc/modules/audio_processing/agc/standalone_vad.cc b/webrtc/modules/audio_processing/agc/standalone_vad.cc
deleted file mode 100644
index e8593254543c346f93010c56181e809114879d2f..0000000000000000000000000000000000000000
--- a/webrtc/modules/audio_processing/agc/standalone_vad.cc
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright (c) 2012 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.
- */
-
-#include "webrtc/modules/audio_processing/agc/standalone_vad.h"
-
-#include <assert.h>
-
-#include "webrtc/modules/interface/module_common_types.h"
-#include "webrtc/modules/utility/interface/audio_frame_operations.h"
-#include "webrtc/typedefs.h"
-
-namespace webrtc {
-
-static const int kDefaultStandaloneVadMode = 3;
-
-StandaloneVad::StandaloneVad(VadInst* vad)
- : vad_(vad),
- buffer_(),
- index_(0),
- mode_(kDefaultStandaloneVadMode) {}
-
-StandaloneVad::~StandaloneVad() {
- WebRtcVad_Free(vad_);
-}
-
-StandaloneVad* StandaloneVad::Create() {
- VadInst* vad = WebRtcVad_Create();
- if (!vad)
- return nullptr;
-
- int err = WebRtcVad_Init(vad);
- err |= WebRtcVad_set_mode(vad, kDefaultStandaloneVadMode);
- if (err != 0) {
- WebRtcVad_Free(vad);
- return nullptr;
- }
- return new StandaloneVad(vad);
-}
-
-int StandaloneVad::AddAudio(const int16_t* data, int length) {
- if (length != kLength10Ms)
- return -1;
-
- if (index_ + length > kLength10Ms * kMaxNum10msFrames)
- // Reset the buffer if it's full.
- // TODO(ajm): Instead, consider just processing every 10 ms frame. Then we
- // can forgo the buffering.
- index_ = 0;
-
- memcpy(&buffer_[index_], data, sizeof(int16_t) * length);
- index_ += length;
- return 0;
-}
-
-int StandaloneVad::GetActivity(double* p, int length_p) {
- if (index_ == 0)
- return -1;
-
- const int num_frames = index_ / kLength10Ms;
- if (num_frames > length_p)
- return -1;
- assert(WebRtcVad_ValidRateAndFrameLength(kSampleRateHz, index_) == 0);
-
- int activity = WebRtcVad_Process(vad_, kSampleRateHz, buffer_, index_);
- if (activity < 0)
- return -1;
- else if (activity == 0)
- p[0] = 0.01; // Arbitrary but small and non-zero.
- else
- p[0] = 0.5; // 0.5 is neutral values when combinned by other probabilities.
- for (int n = 1; n < num_frames; n++)
- p[n] = p[0];
- // Reset the buffer to start from the beginning.
- index_ = 0;
- return activity;
-}
-
-int StandaloneVad::set_mode(int mode) {
- if (mode < 0 || mode > 3)
- return -1;
- if (WebRtcVad_set_mode(vad_, mode) != 0)
- return -1;
-
- mode_ = mode;
- return 0;
-}
-
-} // namespace webrtc
-

Powered by Google App Engine
This is Rietveld 408576698