ref: 6cba42f999866b614c0d70b09b603c175fbdbc4d
parent: 022f2b7ebc603a02a1bba75a64a5cf25d4dab420
author: Jean-Marc Valin <jmvalin@amazon.com>
date: Fri Aug 4 12:16:58 EDT 2023
Add fwgan_load_model()
--- a/dnn/fwgan.c
+++ b/dnn/fwgan.c
@@ -35,6 +35,7 @@
#include "lpcnet.h"
#include "pitch.h"
#include "nnet.h"
+#include "lpcnet_private.h"
#define FEAT_IN_SIZE (BFCC_WITH_CORR_UPSAMPLER_FC_OUT_SIZE/4 + FWGAN_FRAME_SIZE/2)
@@ -267,6 +268,16 @@
ret = init_fwgan(&st->model, fwgan_arrays);
celt_assert(ret == 0);
/* FIXME: perform arch detection. */
+}
+
+int fwgan_load_model(FWGANState *st, const unsigned char *data, int len) {
+ WeightArray *list;
+ int ret;
+ parse_weights(&list, data, len);
+ ret = init_fwgan(&st->model, list);
+ free(list);
+ if (ret == 0) return 0;
+ else return -1;
}
static void fwgan_synthesize_impl(FWGANState *st, float *pcm, const float *lpc, const float *features)
--- a/dnn/fwgan.h
+++ b/dnn/fwgan.h
@@ -72,6 +72,7 @@
} FWGANState;
void fwgan_init(FWGANState *st);
+int fwgan_load_model(FWGANState *st, const unsigned char *data, int len);
void fwgan_cont(FWGANState *st, const float *pcm0, const float *features0);
--
⑨