diff options
author | Jean-Marc Valin <jmvalin@amazon.com> | 2023-08-04 23:16:58 +0300 |
---|---|---|
committer | Jean-Marc Valin <jmvalin@amazon.com> | 2023-08-04 23:16:58 +0300 |
commit | 6cba42f999866b614c0d70b09b603c175fbdbc4d (patch) | |
tree | 67c752a222d5090adcbd0adcf7e23019e45dd29c | |
parent | 022f2b7ebc603a02a1bba75a64a5cf25d4dab420 (diff) |
Add fwgan_load_model()
-rw-r--r-- | dnn/fwgan.c | 11 | ||||
-rw-r--r-- | dnn/fwgan.h | 1 |
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); |