shithub: opus

Download patch

ref: d5a01822d1aee9f703cdc349fffb99d317ea5964
parent: 43ffd19bc11d2614fa42693c0168f426363345ae
author: Jean-Marc Valin <jmvalin@jmvalin.ca>
date: Tue Jan 29 12:30:15 EST 2019

refactoring

--- a/dnn/dump_data.c
+++ b/dnn/dump_data.c
@@ -107,8 +107,7 @@
   compute_band_energy(Ex, X);
 }
 
-static void compute_frame_features(DenoiseState *st, kiss_fft_cpx *X, kiss_fft_cpx *P,
-                                  float *Ex, float *Ep, float *Exp, float *features, const float *in) {
+static void compute_frame_features(DenoiseState *st, FILE *ffeat, const float *in) {
   int i;
   float E = 0;
   float Ly[NB_BANDS];
@@ -119,6 +118,10 @@
   float tmp[NB_BANDS];
   float follow, logMax;
   float g;
+  kiss_fft_cpx X[FREQ_SIZE], P[WINDOW_SIZE];
+  float Ex[NB_BANDS], Ep[NB_BANDS];
+  float Exp[NB_BANDS];
+  float features[NB_FEATURES];
   frame_analysis(st, X, Ex, in);
   RNN_MOVE(st->pitch_buf, &st->pitch_buf[FRAME_SIZE], PITCH_BUF_SIZE-FRAME_SIZE);
   RNN_COPY(&st->pitch_buf[PITCH_BUF_SIZE-FRAME_SIZE], in, FRAME_SIZE);
@@ -296,6 +299,8 @@
   for (i=0;i<NB_FEATURES;i++) printf("%f ", features[i]);
   printf("\n");
 #endif
+  fwrite(features, sizeof(float), NB_FEATURES, ffeat);
+
 }
 
 static void biquad(float *y, float mem[2], const float *x, const float *b, const float *a, int N) {
@@ -412,10 +417,6 @@
     }
   }
   while (1) {
-    kiss_fft_cpx X[FREQ_SIZE], P[WINDOW_SIZE];
-    float Ex[NB_BANDS], Ep[NB_BANDS];
-    float Exp[NB_BANDS];
-    float features[NB_FEATURES];
     float E=0;
     int silent;
     for (i=0;i<FRAME_SIZE;i++) x[i] = tmp[i];
@@ -465,8 +466,7 @@
       x[i] *= g;
     }
     for (i=0;i<FRAME_SIZE;i++) x[i] += rand()/(float)RAND_MAX - .5;
-    compute_frame_features(st, X, P, Ex, Ep, Exp, features, x);
-    fwrite(features, sizeof(float), NB_FEATURES, ffeat);
+    compute_frame_features(st, ffeat, x);
     /* PCM is delayed by 1/2 frame to make the features centered on the frames. */
     for (i=0;i<FRAME_SIZE-TRAINING_OFFSET;i++) pcm[i+TRAINING_OFFSET] = float2short(x[i]);
     if (fpcm) write_audio(st, pcm, noise_std, fpcm);
--