diff --git a/dnn/include/lpcnet.h b/dnn/include/lpcnet.h index b3546e378109395271759e570c7b9360dc76340e..e8718fcb3ab23062aa7756bba5fcb2ed33131b22 100644 --- a/dnn/include/lpcnet.h +++ b/dnn/include/lpcnet.h @@ -197,4 +197,6 @@ LPCNET_EXPORT int lpcnet_plc_conceal(LPCNetPLCState *st, short *pcm); LPCNET_EXPORT void lpcnet_plc_fec_add(LPCNetPLCState *st, const float *features); +LPCNET_EXPORT void lpcnet_plc_fec_clear(LPCNetPLCState *st); + #endif diff --git a/dnn/lpcnet_plc.c b/dnn/lpcnet_plc.c index b23dbdae0798a33f89f6746be95b064f7dc55383..6dfb50534af8fb4a1bbcc969c37367757b7242ca 100644 --- a/dnn/lpcnet_plc.c +++ b/dnn/lpcnet_plc.c @@ -93,6 +93,11 @@ void lpcnet_plc_fec_add(LPCNetPLCState *st, const float *features) { st->fec_fill_pos++; } +void lpcnet_plc_fec_clear(LPCNetPLCState *st) { + st->fec_keep_pos = st->fec_read_pos = st->fec_fill_pos = st-> fec_skip = 0; +} + + static void compute_plc_pred(PLCNetState *net, float *out, const float *in) { float zeros[3*PLC_MAX_RNN_NEURONS] = {0}; float dense_out[PLC_DENSE1_OUT_SIZE];