static int rnnoise_model_from_file(FILE *f, RNNModel **rnn)
{
- RNNModel *ret;
+ RNNModel *ret = NULL;
DenseLayer *input_dense;
GRULayer *vad_gru;
GRULayer *noise_gru;
} \
} while (0)
+#define NEW_LINE() do { \
+ int c; \
+ while ((c = fgetc(f)) != EOF) { \
+ if (c == '\n') \
+ break; \
+ } \
+ } while (0)
+
#define INPUT_DENSE(name) do { \
INPUT_VAL(name->nb_inputs); \
INPUT_VAL(name->nb_neurons); \
ret->name ## _size = name->nb_neurons; \
INPUT_ACTIVATION(name->activation); \
+ NEW_LINE(); \
INPUT_ARRAY(name->input_weights, name->nb_inputs * name->nb_neurons); \
+ NEW_LINE(); \
INPUT_ARRAY(name->bias, name->nb_neurons); \
+ NEW_LINE(); \
} while (0)
#define INPUT_GRU(name) do { \
INPUT_VAL(name->nb_neurons); \
ret->name ## _size = name->nb_neurons; \
INPUT_ACTIVATION(name->activation); \
+ NEW_LINE(); \
INPUT_ARRAY3(name->input_weights, name->nb_inputs, name->nb_neurons, 3); \
+ NEW_LINE(); \
INPUT_ARRAY3(name->recurrent_weights, name->nb_neurons, name->nb_neurons, 3); \
+ NEW_LINE(); \
INPUT_ARRAY(name->bias, name->nb_neurons * 3); \
+ NEW_LINE(); \
} while (0)
INPUT_DENSE(input_dense);
AVFILTER_DEFINE_CLASS(arnndn);
-AVFilter ff_af_arnndn = {
+const AVFilter ff_af_arnndn = {
.name = "arnndn",
.description = NULL_IF_CONFIG_SMALL("Reduce noise from speech using Recurrent Neural Networks."),
.query_formats = query_formats,