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

Side by Side Diff: webrtc/modules/audio_processing/vad/pole_zero_filter_unittest.cc

Issue 1192863006: Revert "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 unified diff | Download patch
OLDNEW
(Empty)
1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11 #include "webrtc/modules/audio_processing/vad/pole_zero_filter.h"
12
13 #include <math.h>
14 #include <stdio.h>
15
16 #include "testing/gtest/include/gtest/gtest.h"
17 #include "webrtc/base/scoped_ptr.h"
18 #include "webrtc/modules/audio_processing/vad/vad_audio_proc_internal.h"
19 #include "webrtc/test/testsupport/fileutils.h"
20
21 namespace webrtc {
22
23 static const int kInputSamples = 50;
24
25 static const int16_t kInput[kInputSamples] = {
26 -2136, -7116, 10715, 2464, 3164, 8139, 11393, 24013, -32117, -5544,
27 -27740, 10181, 14190, -24055, -15912, 17393, 6359, -9950, -13894, 32432,
28 -23944, 3437, -8381, 19768, 3087, -19795, -5920, 13310, 1407, 3876,
29 4059, 3524, -23130, 19121, -27900, -24840, 4089, 21422, -3625, 3015,
30 -11236, 28856, 13424, 6571, -19761, -6361, 15821, -9469, 29727, 32229};
31
32 static const float kReferenceOutput[kInputSamples] = {
33 -2082.230472f, -6878.572941f, 10697.090871f, 2358.373952f,
34 2973.936512f, 7738.580650f, 10690.803213f, 22687.091576f,
35 -32676.684717f, -5879.621684f, -27359.297432f, 10368.735888f,
36 13994.584604f, -23676.126249f, -15078.250390f, 17818.253338f,
37 6577.743123f, -9498.369315f, -13073.651079f, 32460.026588f,
38 -23391.849347f, 3953.805667f, -7667.761363f, 19995.153447f,
39 3185.575477f, -19207.365160f, -5143.103201f, 13756.317237f,
40 1779.654794f, 4142.269755f, 4209.475034f, 3572.991789f,
41 -22509.089546f, 19307.878964f, -27060.439759f, -23319.042810f,
42 5547.685267f, 22312.718676f, -2707.309027f, 3852.358490f,
43 -10135.510093f, 29241.509970f, 13394.397233f, 6340.721417f,
44 -19510.207905f, -5908.442086f, 15882.301634f, -9211.335255f,
45 29253.056735f, 30874.443046f};
46
47 class PoleZeroFilterTest : public ::testing::Test {
48 protected:
49 PoleZeroFilterTest()
50 : my_filter_(PoleZeroFilter::Create(kCoeffNumerator,
51 kFilterOrder,
52 kCoeffDenominator,
53 kFilterOrder)) {}
54
55 ~PoleZeroFilterTest() {}
56
57 void FilterSubframes(int num_subframes);
58
59 private:
60 void TestClean();
61 rtc::scoped_ptr<PoleZeroFilter> my_filter_;
62 };
63
64 void PoleZeroFilterTest::FilterSubframes(int num_subframes) {
65 float output[kInputSamples];
66 const int num_subframe_samples = kInputSamples / num_subframes;
67 EXPECT_EQ(num_subframe_samples * num_subframes, kInputSamples);
68
69 for (int n = 0; n < num_subframes; n++) {
70 my_filter_->Filter(&kInput[n * num_subframe_samples], num_subframe_samples,
71 &output[n * num_subframe_samples]);
72 }
73 for (int n = 0; n < kInputSamples; n++) {
74 EXPECT_NEAR(output[n], kReferenceOutput[n], 1);
75 }
76 }
77
78 TEST_F(PoleZeroFilterTest, OneSubframe) {
79 FilterSubframes(1);
80 }
81
82 TEST_F(PoleZeroFilterTest, TwoSubframes) {
83 FilterSubframes(2);
84 }
85
86 TEST_F(PoleZeroFilterTest, FiveSubframes) {
87 FilterSubframes(5);
88 }
89
90 TEST_F(PoleZeroFilterTest, TenSubframes) {
91 FilterSubframes(10);
92 }
93
94 TEST_F(PoleZeroFilterTest, TwentyFiveSubframes) {
95 FilterSubframes(25);
96 }
97
98 TEST_F(PoleZeroFilterTest, FiftySubframes) {
99 FilterSubframes(50);
100 }
101
102 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/audio_processing/vad/pole_zero_filter.cc ('k') | webrtc/modules/audio_processing/vad/standalone_vad.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698