shithub: opus

Download patch

ref: f884d7bf1892904c4318e75cdb909e7485583ded
parent: fd9002e98e804e388e0a150b7e5617282b29e876
author: Jean-Marc Valin <jmvalin@jmvalin.ca>
date: Tue Jun 26 13:14:29 EDT 2018

add convolution

--- a/dnn/lpcnet.py
+++ b/dnn/lpcnet.py
@@ -16,15 +16,22 @@
 
 
 def new_wavernn_model():
-    pcm = Input(shape=(None, 2))
+    pcm = Input(shape=(None, 1))
+    pitch = Input(shape=(None, 1))
     feat = Input(shape=(None, nb_used_features))
 
+    conv1 = Conv1D(16, 7, padding='causal')
+    pconv1 = Conv1D(16, 5, padding='same')
+    pconv2 = Conv1D(16, 5, padding='same')
+
+    cpcm = conv1(pcm)
+    cpitch = pconv2(pconv1(pitch))
     rep = Lambda(lambda x: K.repeat_elements(x, 160, 1))
 
     rnn = CuDNNGRU(rnn_units, return_sequences=True)
-    rnn_in = Concatenate()([pcm, rep(feat)])
+    rnn_in = Concatenate()([cpcm, cpitch, rep(feat)])
     md = MDense(pcm_levels, activation='softmax')
     ulaw_prob = md(rnn(rnn_in))
     
-    model = Model([pcm, feat], ulaw_prob)
+    model = Model([pcm, pitch, feat], ulaw_prob)
     return model
--- a/dnn/train_lpcnet.py
+++ b/dnn/train_lpcnet.py
@@ -56,7 +56,7 @@
 features = features[:, :, :nb_used_features]
 
 
-in_data = np.concatenate([in_data, in_pitch], axis=-1)
+#in_data = np.concatenate([in_data, in_pitch], axis=-1)
 
 #with h5py.File('in_data.h5', 'w') as f:
 # f.create_dataset('data', data=in_data[:50000, :, :])
@@ -66,4 +66,4 @@
 
 #model.load_weights('wavernn1c_01.h5')
 model.compile(optimizer=Adam(0.002, amsgrad=True, decay=2e-4), loss='sparse_categorical_crossentropy', metrics=['sparse_categorical_accuracy'])
-model.fit([in_data, features], out_data, batch_size=batch_size, epochs=30, validation_split=0.2, callbacks=[checkpoint])
+model.fit([in_data, in_pitch, features], out_data, batch_size=batch_size, epochs=30, validation_split=0.2, callbacks=[checkpoint])
--