File: vad_audio_proc_unittest.cc

package info (click to toggle)
chromium 138.0.7204.183-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 6,071,908 kB
  • sloc: cpp: 34,937,088; ansic: 7,176,967; javascript: 4,110,704; python: 1,419,953; asm: 946,768; xml: 739,971; pascal: 187,324; sh: 89,623; perl: 88,663; objc: 79,944; sql: 50,304; cs: 41,786; fortran: 24,137; makefile: 21,806; php: 13,980; tcl: 13,166; yacc: 8,925; ruby: 7,485; awk: 3,720; lisp: 3,096; lex: 1,327; ada: 727; jsp: 228; sed: 36
file content (62 lines) | stat: -rw-r--r-- 2,091 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/*
 *  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.
 */

// We don't test the value of pitch gain and lags as they are created by iSAC
// routines. However, interpolation of pitch-gain and lags is in a separate
// class and has its own unit-test.

#include "modules/audio_processing/vad/vad_audio_proc.h"

#include <math.h>
#include <stdio.h>

#include <string>

#include "modules/audio_processing/vad/common.h"
#include "test/gtest.h"
#include "test/testsupport/file_utils.h"

namespace webrtc {

TEST(AudioProcessingTest, DISABLED_ComputingFirstSpectralPeak) {
  VadAudioProc audioproc;

  std::string peak_file_name =
      test::ResourcePath("audio_processing/agc/agc_spectral_peak", "dat");
  FILE* peak_file = fopen(peak_file_name.c_str(), "rb");
  ASSERT_TRUE(peak_file != nullptr);

  std::string pcm_file_name =
      test::ResourcePath("audio_processing/agc/agc_audio", "pcm");
  FILE* pcm_file = fopen(pcm_file_name.c_str(), "rb");
  ASSERT_TRUE(pcm_file != nullptr);

  // Read 10 ms audio in each iteration.
  const size_t kDataLength = kLength10Ms;
  int16_t data[kDataLength] = {0};
  AudioFeatures features;
  double sp[kMaxNumFrames];
  while (fread(data, sizeof(int16_t), kDataLength, pcm_file) == kDataLength) {
    audioproc.ExtractFeatures(data, kDataLength, &features);
    if (features.num_frames > 0) {
      ASSERT_LT(features.num_frames, kMaxNumFrames);
      // Read reference values.
      const size_t num_frames = features.num_frames;
      ASSERT_EQ(num_frames, fread(sp, sizeof(sp[0]), num_frames, peak_file));
      for (size_t n = 0; n < features.num_frames; n++)
        EXPECT_NEAR(features.spectral_peak[n], sp[n], 3);
    }
  }

  fclose(peak_file);
  fclose(pcm_file);
}

}  // namespace webrtc