ref: 12f16df6b7effe3913dfc47ccebd3bead84a0fb4
parent: fb3112ade604387b27030008ccf9c204efbb19fd
author: Jean-Marc Valin <jmvalin@jmvalin.ca>
date: Thu Dec 13 12:40:05 EST 2018
More work on making freq.[ch] more generic
--- a/dnn/freq.c
+++ b/dnn/freq.c
@@ -64,12 +64,12 @@
{
int j;
int band_size;
- band_size = (eband5ms[i+1]-eband5ms[i])<<FRAME_SIZE_SHIFT;
+ band_size = (eband5ms[i+1]-eband5ms[i])*WINDOW_SIZE_5MS;
for (j=0;j<band_size;j++) {
float tmp;
float frac = (float)j/band_size;
- tmp = SQUARE(X[(eband5ms[i]<<FRAME_SIZE_SHIFT) + j].r);
- tmp += SQUARE(X[(eband5ms[i]<<FRAME_SIZE_SHIFT) + j].i);
+ tmp = SQUARE(X[(eband5ms[i]*WINDOW_SIZE_5MS) + j].r);
+ tmp += SQUARE(X[(eband5ms[i]*WINDOW_SIZE_5MS) + j].i);
sum[i] += (1-frac)*tmp;
sum[i+1] += frac*tmp;
}
@@ -89,12 +89,12 @@
{
int j;
int band_size;
- band_size = (eband5ms[i+1]-eband5ms[i])<<FRAME_SIZE_SHIFT;
+ band_size = (eband5ms[i+1]-eband5ms[i])*WINDOW_SIZE_5MS;
for (j=0;j<band_size;j++) {
float tmp;
float frac = (float)j/band_size;
- tmp = X[(eband5ms[i]<<FRAME_SIZE_SHIFT) + j].r * P[(eband5ms[i]<<FRAME_SIZE_SHIFT) + j].r;
- tmp += X[(eband5ms[i]<<FRAME_SIZE_SHIFT) + j].i * P[(eband5ms[i]<<FRAME_SIZE_SHIFT) + j].i;
+ tmp = X[(eband5ms[i]*WINDOW_SIZE_5MS) + j].r * P[(eband5ms[i]*WINDOW_SIZE_5MS) + j].r;
+ tmp += X[(eband5ms[i]*WINDOW_SIZE_5MS) + j].i * P[(eband5ms[i]*WINDOW_SIZE_5MS) + j].i;
sum[i] += (1-frac)*tmp;
sum[i+1] += frac*tmp;
}
@@ -114,10 +114,10 @@
{
int j;
int band_size;
- band_size = (eband5ms[i+1]-eband5ms[i])<<FRAME_SIZE_SHIFT;
+ band_size = (eband5ms[i+1]-eband5ms[i])*WINDOW_SIZE_5MS;
for (j=0;j<band_size;j++) {
float frac = (float)j/band_size;
- g[(eband5ms[i]<<FRAME_SIZE_SHIFT) + j] = (1-frac)*bandE[i] + frac*bandE[i+1];
+ g[(eband5ms[i]*WINDOW_SIZE_5MS) + j] = (1-frac)*bandE[i] + frac*bandE[i+1];
}
}
}
--- a/dnn/freq.h
+++ b/dnn/freq.h
@@ -28,9 +28,12 @@
#define PREEMPHASIS (0.85f)
-#define FRAME_SIZE_SHIFT 2
-#define FRAME_SIZE (40<<FRAME_SIZE_SHIFT)
-#define OVERLAP_SIZE (FRAME_SIZE)
+#define FRAME_SIZE_5MS (2)
+#define OVERLAP_SIZE_5MS (2)
+#define WINDOW_SIZE_5MS (FRAME_SIZE_5MS + OVERLAP_SIZE_5MS)
+
+#define FRAME_SIZE (80*FRAME_SIZE_5MS)
+#define OVERLAP_SIZE (80*OVERLAP_SIZE_5MS)
#define WINDOW_SIZE (FRAME_SIZE + OVERLAP_SIZE)
#define FREQ_SIZE (WINDOW_SIZE/2 + 1)
--- a/dnn/test_lpcnet.c
+++ b/dnn/test_lpcnet.c
@@ -28,9 +28,9 @@
#include <stdio.h>
#include "arch.h"
#include "lpcnet.h"
+#include "freq.h"
-#define FRAME_SIZE 160
int main(int argc, char **argv) {
FILE *fin, *fout;
LPCNetState *net;
--
⑨