diff --git a/dnn/ceps_vq_train.c b/dnn/ceps_vq_train.c new file mode 100644 index 00000000..8a3b5e47 --- /dev/null +++ b/dnn/ceps_vq_train.c @@ -0,0 +1,399 @@ + +#include + +#include +#include +#include + +#define MIN(a,b) ((a)<(b)?(a):(b)) +#define COEF 0.75f +#define MAX_ENTRIES 16384 + +void compute_weights(const float *x, float *w, int ndim) +{ + int i; + w[0] = MIN(x[0], x[1]-x[0]); + for (i=1;i dist[worst]) + worst=i; + } + + for (j=0;jfeatures[st->pcount], Ly); + quantize(&st->features[st->pcount][1], vq_mem); st->features[st->pcount][0] -= 4; g = lpc_from_cepstrum(st->lpc, st->features[st->pcount]); st->features[st->pcount][2*NB_BANDS+2] = log10(g); diff --git a/dnn/lpcnet.py b/dnn/lpcnet.py index 010f478b..f7a98235 100644 --- a/dnn/lpcnet.py +++ b/dnn/lpcnet.py @@ -153,6 +153,11 @@ def new_lpcnet_model(rnn_units1=384, rnn_units2=16, nb_used_features = 38, train gru_out2, _ = rnn2(Concatenate()([gru_out1, rep(cfeat)])) ulaw_prob = md(gru_out2) + rnn.trainable=False + rnn2.trainable=False + md.trainable=False + embed.Trainable=False + model = Model([pcm, feat, pitch], ulaw_prob) model.rnn_units1 = rnn_units1 model.rnn_units2 = rnn_units2 diff --git a/dnn/train_lpcnet.py b/dnn/train_lpcnet.py index b438f367..d15c4ba0 100755 --- a/dnn/train_lpcnet.py +++ b/dnn/train_lpcnet.py @@ -103,8 +103,8 @@ del pred del in_exc # dump models to disk as we go -checkpoint = ModelCheckpoint('lpcnet24b_384_10_G16_{epoch:02d}.h5') +checkpoint = ModelCheckpoint('lpcnet24fq_384_10_G16_{epoch:02d}.h5') -#model.load_weights('lpcnet9b_384_10_G16_01.h5') -model.compile(optimizer=Adam(0.001, amsgrad=True, decay=5e-5), loss='sparse_categorical_crossentropy') -model.fit([in_data, features, periods], out_exc, batch_size=batch_size, epochs=nb_epochs, validation_split=0.0, callbacks=[checkpoint, lpcnet.Sparsify(2000, 40000, 400, (0.05, 0.05, 0.2))]) +model.load_weights('lpcnet24f_384_10_G16_31.h5') +model.compile(optimizer=Adam(0.0005, amsgrad=True, decay=5e-5), loss='sparse_categorical_crossentropy') +model.fit([in_data, features, periods], out_exc, batch_size=batch_size, epochs=nb_epochs, validation_split=0.0, callbacks=[checkpoint, lpcnet.Sparsify(0, 0, 1, (0.05, 0.05, 0.2))])