tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

vad_audio_proc_unittest.cc (2090B)


      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 // We don't test the value of pitch gain and lags as they are created by iSAC
     12 // routines. However, interpolation of pitch-gain and lags is in a separate
     13 // class and has its own unit-test.
     14 
     15 #include "modules/audio_processing/vad/vad_audio_proc.h"
     16 
     17 #include <cstdint>
     18 #include <cstdio>
     19 #include <string>
     20 
     21 #include "modules/audio_processing/vad/common.h"
     22 #include "test/gtest.h"
     23 #include "test/testsupport/file_utils.h"
     24 
     25 namespace webrtc {
     26 
     27 TEST(AudioProcessingTest, DISABLED_ComputingFirstSpectralPeak) {
     28  VadAudioProc audioproc;
     29 
     30  std::string peak_file_name =
     31      test::ResourcePath("audio_processing/agc/agc_spectral_peak", "dat");
     32  FILE* peak_file = fopen(peak_file_name.c_str(), "rb");
     33  ASSERT_TRUE(peak_file != nullptr);
     34 
     35  std::string pcm_file_name =
     36      test::ResourcePath("audio_processing/agc/agc_audio", "pcm");
     37  FILE* pcm_file = fopen(pcm_file_name.c_str(), "rb");
     38  ASSERT_TRUE(pcm_file != nullptr);
     39 
     40  // Read 10 ms audio in each iteration.
     41  const size_t kDataLength = kLength10Ms;
     42  int16_t data[kDataLength] = {0};
     43  AudioFeatures features;
     44  double sp[kMaxNumFrames];
     45  while (fread(data, sizeof(int16_t), kDataLength, pcm_file) == kDataLength) {
     46    audioproc.ExtractFeatures(data, kDataLength, &features);
     47    if (features.num_frames > 0) {
     48      ASSERT_LT(features.num_frames, kMaxNumFrames);
     49      // Read reference values.
     50      const size_t num_frames = features.num_frames;
     51      ASSERT_EQ(num_frames, fread(sp, sizeof(sp[0]), num_frames, peak_file));
     52      for (size_t n = 0; n < features.num_frames; n++)
     53        EXPECT_NEAR(features.spectral_peak[n], sp[n], 3);
     54    }
     55  }
     56 
     57  fclose(peak_file);
     58  fclose(pcm_file);
     59 }
     60 
     61 }  // namespace webrtc