diff --git a/dnn/include/lpcnet.h b/dnn/include/lpcnet.h index c094aec6..fd12044c 100644 --- a/dnn/include/lpcnet.h +++ b/dnn/include/lpcnet.h @@ -145,6 +145,15 @@ LPCNET_EXPORT int lpcnet_compute_features(LPCNetEncState *st, const short *pcm, */ LPCNET_EXPORT int lpcnet_compute_single_frame_features(LPCNetEncState *st, const short *pcm, float features[NB_TOTAL_FEATURES]); + +/** Compute features on LPCNET_FRAME_SIZE speech samples (currently 160) and output features for one 10-ms frame. + * @param [in] st LPCNetDecState*: Encoder state + * @param [in] pcm float *: Input speech to be analyzed + * @param [out] features float[NB_TOTAL_FEATURES]: Four feature vectors + * @retval 0 Success + */ +LPCNET_EXPORT int lpcnet_compute_single_frame_features_float(LPCNetEncState *st, const float *pcm, float features[NB_TOTAL_FEATURES]); + /** Gets the size of an LPCNetState structure. * @returns The size in bytes. */ diff --git a/dnn/lpcnet_enc.c b/dnn/lpcnet_enc.c index 054c9b1c..e46be370 100644 --- a/dnn/lpcnet_enc.c +++ b/dnn/lpcnet_enc.c @@ -894,13 +894,26 @@ LPCNET_EXPORT int lpcnet_compute_features(LPCNetEncState *st, const short *pcm, return 0; } -int lpcnet_compute_single_frame_features(LPCNetEncState *st, const short *pcm, float features[NB_TOTAL_FEATURES]) { - int i; - float x[FRAME_SIZE]; - for (i=0;imem_preemph, x, PREEMPHASIS, FRAME_SIZE); compute_frame_features(st, x); process_single_frame(st, NULL); RNN_COPY(features, &st->features[0][0], NB_TOTAL_FEATURES); return 0; } + +int lpcnet_compute_single_frame_features(LPCNetEncState *st, const short *pcm, float features[NB_TOTAL_FEATURES]) { + int i; + float x[FRAME_SIZE]; + for (i=0;i