32 # if defined(LPCNET_BUILD) && defined(DLL_EXPORT)
33 # define LPCNET_EXPORT __declspec(dllexport)
35 # define LPCNET_EXPORT
37 # elif defined(__GNUC__) && defined(LPCNET_BUILD)
38 # define LPCNET_EXPORT __attribute__ ((visibility ("default")))
40 # define LPCNET_EXPORT
45 #define NB_FEATURES 20
46 #define NB_TOTAL_FEATURES 36
49 #define LPCNET_COMPRESSED_SIZE 8
51 #define LPCNET_PACKET_SAMPLES (4*160)
53 #define LPCNET_FRAME_SIZE (160)
55 typedef struct LPCNetState LPCNetState;
57 typedef struct LPCNetDecState LPCNetDecState;
59 typedef struct LPCNetEncState LPCNetEncState;
61 typedef struct LPCNetPLCState LPCNetPLCState;
67 LPCNET_EXPORT
int lpcnet_decoder_get_size(
void);
76 LPCNET_EXPORT
int lpcnet_decoder_init(LPCNetDecState *st);
78 LPCNET_EXPORT
void lpcnet_reset(LPCNetState *lpcnet);
83 LPCNET_EXPORT LPCNetDecState *lpcnet_decoder_create(
void);
88 LPCNET_EXPORT
void lpcnet_decoder_destroy(LPCNetDecState *st);
96 LPCNET_EXPORT
int lpcnet_decode(LPCNetDecState *st,
const unsigned char *buf,
short *pcm);
103 LPCNET_EXPORT
int lpcnet_encoder_get_size(
void);
112 LPCNET_EXPORT
int lpcnet_encoder_init(LPCNetEncState *st);
117 LPCNET_EXPORT LPCNetEncState *lpcnet_encoder_create(
void);
122 LPCNET_EXPORT
void lpcnet_encoder_destroy(LPCNetEncState *st);
130 LPCNET_EXPORT
int lpcnet_encode(LPCNetEncState *st,
const short *pcm,
unsigned char *buf);
138 LPCNET_EXPORT
int lpcnet_compute_features(LPCNetEncState *st,
const short *pcm,
float features[4][NB_TOTAL_FEATURES]);
146 LPCNET_EXPORT
int lpcnet_compute_single_frame_features(LPCNetEncState *st,
const short *pcm,
float features[NB_TOTAL_FEATURES]);
155 LPCNET_EXPORT
int lpcnet_compute_single_frame_features_float(LPCNetEncState *st,
const float *pcm,
float features[NB_TOTAL_FEATURES]);
160 LPCNET_EXPORT
int lpcnet_get_size(
void);
169 LPCNET_EXPORT
int lpcnet_init(LPCNetState *st);
174 LPCNET_EXPORT LPCNetState *lpcnet_create(
void);
179 LPCNET_EXPORT
void lpcnet_destroy(LPCNetState *st);
188 LPCNET_EXPORT
void lpcnet_synthesize(LPCNetState *st,
const float *features,
short *output,
int N);
191 #define LPCNET_PLC_CAUSAL 0
192 #define LPCNET_PLC_NONCAUSAL 1
193 #define LPCNET_PLC_CODEC 2
195 #define LPCNET_PLC_DC_FILTER 4
197 LPCNET_EXPORT
int lpcnet_plc_get_size(
void);
199 LPCNET_EXPORT
int lpcnet_plc_init(LPCNetPLCState *st,
int options);
200 LPCNET_EXPORT
void lpcnet_plc_reset(LPCNetPLCState *st);
202 LPCNET_EXPORT LPCNetPLCState *lpcnet_plc_create(
int options);
204 LPCNET_EXPORT
void lpcnet_plc_destroy(LPCNetPLCState *st);
206 LPCNET_EXPORT
int lpcnet_plc_update(LPCNetPLCState *st,
short *pcm);
208 LPCNET_EXPORT
int lpcnet_plc_conceal(LPCNetPLCState *st,
short *pcm);
210 LPCNET_EXPORT
void lpcnet_plc_fec_add(LPCNetPLCState *st,
const float *features);
212 LPCNET_EXPORT
void lpcnet_plc_fec_clear(LPCNetPLCState *st);
214 LPCNET_EXPORT
int lpcnet_load_model(LPCNetState *st,
const unsigned char *data,
int len);
215 LPCNET_EXPORT
int lpcnet_plc_load_model(LPCNetPLCState *st,
const unsigned char *data,
int len);