This project is used for PIT training of two speakers.
We use Tensorflow(1.0) LSTM(BLSTM) to do PIT.
Reference:
Kolbæk, M., Yu, D., Tan, Z.-H., & Jensen, J. (2017). Multi-talker Speech Separation and Tracing with Permutation Invariant Training of Deep Recurrent Neural Networks, 1–10. Retrieved from https://arxiv.org/abs/1703.06284
If you have WSJ0 data, you can use this code https://www.merl.com/demos/deep-clustering/create-speaker-mixtures.zip to create the mixed speech.
Or you can also use you own data.
For every utterance, you need to extract the mixed speech, speak1 and speaker2 feature matrix and use the function in 'io_funcs/tfrecords_io.py' make_sequence_example_two_labels(inputs,inputs_cmvn, labels1, labels2) to generate tensorflow examples.
inputs: the mixed speech feats matrix with shape (num_frames, dim)
inputs_cmvn: the mixed speech feats matrix after mean and variance normalization. I don't think this is necessary. You can
use the same data with inputs.
labels, labels2: spker1 and spker2's feats as targets.
make a dir, named lists. Put all the training tfrecord files' path to 'lists/tr.lst' and the same for the 'lists/cv.lst', 'lists/tt.lst'
Once you prapared all data list files for tr, cv and tt (test), you can run 'run.sh' from the step3--train RNN. Make sure you give the right list dir.