diff options
author | Jean-Marc Valin <jmvalin@amazon.com> | 2023-10-29 23:33:57 +0300 |
---|---|---|
committer | Jean-Marc Valin <jmvalin@amazon.com> | 2023-10-30 01:06:18 +0300 |
commit | d53531d0bd600e9d1d2400bb801cb381245321c4 (patch) | |
tree | 81eb35674824af8e2869aba7ef23a80b7c8aa69b | |
parent | 0b75501270eef6477bd337987fd24d92ba80112f (diff) |
Update blob loading code
-rw-r--r-- | dnn/fargan.c | 4 | ||||
-rw-r--r-- | dnn/lpcnet.h | 2 | ||||
-rw-r--r-- | dnn/lpcnet_demo.c | 2 | ||||
-rw-r--r-- | dnn/lpcnet_enc.c | 4 | ||||
-rw-r--r-- | dnn/lpcnet_plc.c | 3 | ||||
-rw-r--r-- | dnn/pitchdnn.c | 10 | ||||
-rw-r--r-- | dnn/pitchdnn.h | 1 | ||||
-rw-r--r-- | silk/dred_encoder.c | 3 |
8 files changed, 28 insertions, 1 deletions
diff --git a/dnn/fargan.c b/dnn/fargan.c index b6475106..e0fa304c 100644 --- a/dnn/fargan.c +++ b/dnn/fargan.c @@ -174,7 +174,11 @@ void fargan_init(FARGANState *st) { int ret; OPUS_CLEAR(st, 1); +#ifndef USE_WEIGHTS_FILE ret = init_fargan(&st->model, fargan_arrays); +#else + ret = 0; +#endif celt_assert(ret == 0); /* FIXME: perform arch detection. */ } diff --git a/dnn/lpcnet.h b/dnn/lpcnet.h index 34a2c63e..592b2281 100644 --- a/dnn/lpcnet.h +++ b/dnn/lpcnet.h @@ -94,6 +94,8 @@ int lpcnet_encoder_get_size(void); */ int lpcnet_encoder_init(LPCNetEncState *st); +int lpcnet_encoder_load_model(LPCNetEncState *st, const unsigned char *data, int len); + /** Allocates and initializes an encoder state. * @returns The newly created state */ diff --git a/dnn/lpcnet_demo.c b/dnn/lpcnet_demo.c index 304ab25d..cfa9f6fd 100644 --- a/dnn/lpcnet_demo.c +++ b/dnn/lpcnet_demo.c @@ -148,7 +148,7 @@ int main(int argc, char **argv) { float zeros[320] = {0}; fargan_init(&fargan); #ifdef USE_WEIGHTS_FILE - fargan_load_model(fwgan, data, len); + fargan_load_model(&fargan, data, len); #endif /* uncomment the following to align with Python code */ /*ret = fread(&in_features[0], sizeof(in_features[0]), NB_TOTAL_FEATURES, fin);*/ diff --git a/dnn/lpcnet_enc.c b/dnn/lpcnet_enc.c index 8ced9285..c2c5578b 100644 --- a/dnn/lpcnet_enc.c +++ b/dnn/lpcnet_enc.c @@ -56,6 +56,10 @@ int lpcnet_encoder_init(LPCNetEncState *st) { return 0; } +int lpcnet_encoder_load_model(LPCNetEncState *st, const unsigned char *data, int len) { + return pitchdnn_load_model(&st->pitchdnn, data, len); +} + LPCNetEncState *lpcnet_encoder_create(void) { LPCNetEncState *st; st = malloc(lpcnet_encoder_get_size()); diff --git a/dnn/lpcnet_plc.c b/dnn/lpcnet_plc.c index 940e1603..a124cdd0 100644 --- a/dnn/lpcnet_plc.c +++ b/dnn/lpcnet_plc.c @@ -74,6 +74,9 @@ int lpcnet_plc_load_model(LPCNetPLCState *st, const unsigned char *data, int len ret = init_plc_model(&st->model, list); free(list); if (ret == 0) { + ret = lpcnet_encoder_load_model(&st->enc, data, len); + } else return -1; + if (ret == 0) { return fargan_load_model(&st->fargan, data, len); } else return -1; diff --git a/dnn/pitchdnn.c b/dnn/pitchdnn.c index 84952721..5bb3a57c 100644 --- a/dnn/pitchdnn.c +++ b/dnn/pitchdnn.c @@ -67,3 +67,13 @@ void pitchdnn_init(PitchDNNState *st) celt_assert(ret == 0); /* FIXME: perform arch detection. */ } + +int pitchdnn_load_model(PitchDNNState *st, const unsigned char *data, int len) { + WeightArray *list; + int ret; + parse_weights(&list, data, len); + ret = init_pitchdnn(&st->model, list); + free(list); + if (ret == 0) return 0; + else return -1; +} diff --git a/dnn/pitchdnn.h b/dnn/pitchdnn.h index 3799510d..cdc4eb16 100644 --- a/dnn/pitchdnn.h +++ b/dnn/pitchdnn.h @@ -22,6 +22,7 @@ typedef struct { void pitchdnn_init(PitchDNNState *st); +int pitchdnn_load_model(PitchDNNState *st, const unsigned char *data, int len); float compute_pitchdnn( PitchDNNState *st, diff --git a/silk/dred_encoder.c b/silk/dred_encoder.c index 1edfb316..af7f9d94 100644 --- a/silk/dred_encoder.c +++ b/silk/dred_encoder.c @@ -54,6 +54,9 @@ int dred_encoder_load_model(DREDEnc* enc, const unsigned char *data, int len) parse_weights(&list, data, len); ret = init_rdovaeenc(&enc->model, list); free(list); + if (ret == 0) { + ret = lpcnet_encoder_load_model(&enc->lpcnet_enc_state, data, len); + } return (ret == 0) ? OPUS_OK : OPUS_BAD_ARG; } |