shithub: opus

Download patch

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);
 
--