Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.xiph.org/xiph/opus.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Marc Valin <jmvalin@amazon.com>2023-08-04 23:16:58 +0300
committerJean-Marc Valin <jmvalin@amazon.com>2023-08-04 23:16:58 +0300
commit6cba42f999866b614c0d70b09b603c175fbdbc4d (patch)
tree67c752a222d5090adcbd0adcf7e23019e45dd29c
parent022f2b7ebc603a02a1bba75a64a5cf25d4dab420 (diff)
Add fwgan_load_model()
-rw-r--r--dnn/fwgan.c11
-rw-r--r--dnn/fwgan.h1
2 files changed, 12 insertions, 0 deletions
diff --git a/dnn/fwgan.c b/dnn/fwgan.c
index b349fe20..562ffe93 100644
--- 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)
@@ -269,6 +270,16 @@ void fwgan_init(FWGANState *st)
/* 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)
{
int subframe;
diff --git a/dnn/fwgan.h b/dnn/fwgan.h
index b7fe28c0..acb7014d 100644
--- a/dnn/fwgan.h
+++ b/dnn/fwgan.h
@@ -72,6 +72,7 @@ typedef struct {
} 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);