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];