ref: 088ee4ffa611d65b87aa6a213d1f23c3730383ce
parent: 12f16df6b7effe3913dfc47ccebd3bead84a0fb4
author: Jean-Marc Valin <jmvalin@jmvalin.ca>
date: Thu Dec 13 13:03:58 EST 2018
Should make dump_data able to handle partial overlap
--- a/dnn/dump_data.c
+++ b/dnn/dump_data.c
@@ -53,10 +53,9 @@
typedef struct {
- float analysis_mem[FRAME_SIZE];
+ float analysis_mem[OVERLAP_SIZE];
float cepstral_mem[CEPS_MEM][NB_BANDS];
int memid;
- float synthesis_mem[FRAME_SIZE];
float pitch_buf[PITCH_BUF_SIZE];
float pitch_enh_buf[PITCH_BUF_SIZE];
float last_gain;
@@ -98,11 +97,9 @@
static void frame_analysis(DenoiseState *st, kiss_fft_cpx *X, float *Ex, const float *in) {
int i;
float x[WINDOW_SIZE];
- float x0[WINDOW_SIZE];
- RNN_COPY(x, st->analysis_mem, FRAME_SIZE);
- for (i=0;i<FRAME_SIZE;i++) x[FRAME_SIZE + i] = in[i];
- RNN_COPY(st->analysis_mem, in, FRAME_SIZE);
- RNN_COPY(x0, x, WINDOW_SIZE);
+ RNN_COPY(x, st->analysis_mem, OVERLAP_SIZE);
+ RNN_COPY(&x[OVERLAP_SIZE], in, FRAME_SIZE);
+ RNN_COPY(st->analysis_mem, &in[FRAME_SIZE-OVERLAP_SIZE], OVERLAP_SIZE);
apply_window(x);
forward_transform(X, x);
for (i=lowpass;i<FREQ_SIZE;i++)
--
⑨