Context: I am doing a project on speech recognition from articular (lip and tongue) positions rather than some kind of acoustic feature. I am using vectors which correspond to the x,y position of various articulators which have been extracted using DeepLabCut, so I'm not using Kaldi to create mfccs or anything. I am also extremely new to Kaldi. I have cobbled together a run.sh script from the Kaldi tutorial and mini-librispeech (attached in case it's useful). I run monophone and triphone alignment, and then nnet2 DNN.
Problem: When I run my script on one lexicon, I get to the end of training and scoring no problem. However, when I switch this lexicon out for another lexicon (American vs British pronunciation), I get the following terminal output (log files and lexicons attached):
steps/nnet2/train_tanh_fast.sh --stage -10 --num-threads 16 --parallel-opts --num-threads 16 --minibatch-size 128 --num-jobs-nnet 8 --samples-per-iter 400000 --mix-up 8000 --initial-learning-rate 0.01 --final-learning-rate 0.001 --num-hidden-layers 4 --hidden-layer-dim 1024 --cmd
run.pl data/train data/lang exp/tri3b_ali exp/nnet5c
steps/nnet2/train_tanh_fast.sh: calling get_lda.sh
steps/nnet2/get_lda.sh --transform-dir exp/tri3b_ali --splice-width 4 --cmd
run.pl data/train data/lang exp/tri3b_ali exp/nnet5c
steps/nnet2/get_lda.sh: feature type is lda
steps/nnet2/get_lda.sh: using transforms from exp/tri3b_ali
feat-to-dim 'ark,s,cs:utils/
subset_scp.pl --quiet 2500 data/train/split4/1/feats.scp | apply-cmvn --utt2spk=ark:data/train/split4/1/utt2spk scp:data/train/split4/1/cmvn.scp scp:- ark:- | splice-feats --left-context=3 --right-context=3 ark:- ark:- | transform-feats exp/nnet5c/final.mat ark:- ark:- | transform-feats --utt2spk=ark:data/train/split4/1/utt2spk ark:exp/tri3b_ali/trans.1 ark:- ark:- |' -
transform-feats exp/nnet5c/final.mat ark:- ark:-
apply-cmvn --utt2spk=ark:data/train/split4/1/utt2spk scp:data/train/split4/1/cmvn.scp scp:- ark:-
splice-feats --left-context=3 --right-context=3 ark:- ark:-
transform-feats --utt2spk=ark:data/train/split4/1/utt2spk ark:exp/tri3b_ali/trans.1 ark:- ark:-
WARNING (feat-to-dim[5.5.1032~1-ac29a]:Close():kaldi-io.cc:515) Pipe utils/
subset_scp.pl --quiet 2500 data/train/split4/1/feats.scp | apply-cmvn --utt2spk=ark:data/train/split4/1/utt2spk scp:data/train/split4/1/cmvn.scp scp:- ark:- | splice-feats --left-context=3 --right-context=3 ark:- ark:- | transform-feats exp/nnet5c/final.mat ark:- ark:- | transform-feats --utt2spk=ark:data/train/split4/1/utt2spk ark:exp/tri3b_ali/trans.1 ark:- ark:- | had nonzero return status 36096
feat-to-dim 'ark,s,cs:utils/
subset_scp.pl --quiet 2500 data/train/split4/1/feats.scp | apply-cmvn --utt2spk=ark:data/train/split4/1/utt2spk scp:data/train/split4/1/cmvn.scp scp:- ark:- | splice-feats --left-context=3 --right-context=3 ark:- ark:- | transform-feats exp/nnet5c/final.mat ark:- ark:- | transform-feats --utt2spk=ark:data/train/split4/1/utt2spk ark:exp/tri3b_ali/trans.1 ark:- ark:- | splice-feats --left-context=4 --right-context=4 ark:- ark:- |' -
transform-feats exp/nnet5c/final.mat ark:- ark:-
splice-feats --left-context=3 --right-context=3 ark:- ark:-
transform-feats --utt2spk=ark:data/train/split4/1/utt2spk ark:exp/tri3b_ali/trans.1 ark:- ark:-
apply-cmvn --utt2spk=ark:data/train/split4/1/utt2spk scp:data/train/split4/1/cmvn.scp scp:- ark:-
splice-feats --left-context=4 --right-context=4 ark:- ark:-
WARNING (feat-to-dim[5.5.1032~1-ac29a]:Close():kaldi-io.cc:515) Pipe utils/
subset_scp.pl --quiet 2500 data/train/split4/1/feats.scp | apply-cmvn --utt2spk=ark:data/train/split4/1/utt2spk scp:data/train/split4/1/cmvn.scp scp:- ark:- | splice-feats --left-context=3 --right-context=3 ark:- ark:- | transform-feats exp/nnet5c/final.mat ark:- ark:- | transform-feats --utt2spk=ark:data/train/split4/1/utt2spk ark:exp/tri3b_ali/trans.1 ark:- ark:- | splice-feats --left-context=4 --right-context=4 ark:- ark:- | had nonzero return status 36096
steps/nnet2/get_lda.sh: Accumulating LDA statistics.
steps/nnet2/get_lda.sh: Finished estimating LDA
steps/nnet2/train_tanh_fast.sh: calling get_egs.sh
steps/nnet2/get_egs.sh --transform-dir exp/tri3b_ali --splice-width 4 --samples-per-iter 400000 --num-jobs-nnet 8 --stage 0 --cmd
run.pl --io-opts --max-jobs-run 5 data/train data/lang exp/tri3b_ali exp/nnet5c
steps/nnet2/get_egs.sh: feature type is lda
steps/nnet2/get_egs.sh: using transforms from exp/tri3b_ali
steps/nnet2/get_egs.sh: working out number of frames of training data
steps/nnet2/get_egs.sh: Every epoch, splitting the data up into 1 iterations,
steps/nnet2/get_egs.sh: giving samples-per-iteration of 13202 (you requested 400000).
Getting validation and training subset examples.
steps/nnet2/get_egs.sh: extracting validation and training-subset alignments.
copy-int-vector ark:- ark,t:-
LOG (copy-int-vector[5.5.1032~1-ac29a]:main():copy-int-vector.cc:83) Copied 50 vectors of int32.
run.pl: job failed, log is in exp/nnet5c/log/create_valid_subset.log
run.pl: job failed, log is in exp/nnet5c/log/create_train_subset.log
Error detected while creating train/valid egs
I have tried validating my data/train directory as well as all the split directories and they are all fine. I'm confused because I've seen others with the "No posterior for key..." error but usually it is all of them failing because there's an issue with sorting. I am not sure what's happening when I change my lexicon to cause this.