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-10-29 23:33:57 +0300
committerJean-Marc Valin <jmvalin@amazon.com>2023-10-30 01:06:18 +0300
commitd53531d0bd600e9d1d2400bb801cb381245321c4 (patch)
tree81eb35674824af8e2869aba7ef23a80b7c8aa69b
parent0b75501270eef6477bd337987fd24d92ba80112f (diff)
Update blob loading code
-rw-r--r--dnn/fargan.c4
-rw-r--r--dnn/lpcnet.h2
-rw-r--r--dnn/lpcnet_demo.c2
-rw-r--r--dnn/lpcnet_enc.c4
-rw-r--r--dnn/lpcnet_plc.c3
-rw-r--r--dnn/pitchdnn.c10
-rw-r--r--dnn/pitchdnn.h1
-rw-r--r--silk/dred_encoder.c3
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;
}