ref: d1646a680a3c9e8a29261cac792d90f7c62101e1
dir: /dnn/nfec_dec_demo.c/
#include <stdlib.h>
#include <stdio.h>
#include "nfec_dec.h"
#include "nfec_enc.h"
void usage()
{
printf("nfec_dec_demo <input> <output>\n");
exit(1);
}
int main(int argc, char **argv)
{
NFECDecState dec_state;
float feature_buffer[36];
float qframe[4 * NFEC_DEC_NUM_FEATURES];
float latents[80];
float initial_state[24];
int quantized_latents[80];
int index = 0;
FILE *in_fid, *out_fid;
int qlevel = 0;
memset(&dec_state, 0, sizeof(dec_state));
if (argc < 3) usage();
in_fid = fopen(argv[1], "rb");
if (in_fid == NULL)
{
perror("Could not open input file");
usage();
}
out_fid = fopen(argv[2], "wb");
if (out_fid == NULL)
{
perror("Could not open output file");
usage();
}
/* read initial state from input stream */
if (fread(initial_state, sizeof(float), 24, in_fid) != 24)
{
perror("error while reading initial state");
return 1;
}
/* initialize GRU states */
nfec_dec_init_states(&dec_state, initial_state);
/* start decoding */
while (fread(latents, sizeof(float), 80, in_fid) == 80)
{
nfec_decode_qframe(&dec_state, qframe, latents);
fwrite(qframe, sizeof(float), 4*20, out_fid);
}
fclose(in_fid);
fclose(out_fid);
return 0;
}
/* gcc -DDISABLE_DOT_PROD -DDISABLE_NEON nfec_dec_demo.c nfec_dec.c nnet.c nfec_dec_data.c nfec_stats_data.c kiss99.c -g -o nfec_dec_demo */