srvk / eesen

The official repository of the Eesen project
http://arxiv.org/abs/1507.08240
Apache License 2.0
822 stars 343 forks source link

Error Decoding : Tedlium example #172

Open aheba opened 6 years ago

aheba commented 6 years ago

Hi, I'm trying to run Tedlium example with LSTM & CTC on phonemes. The training work well when running run_ctc_phn.sh but for decoding step, I have this error : decode_dev/log/decode.1.log :

LOG (net-output-extract:ClassPrior():class-prior.cc:33) Computing class-priors f rom : exp/train_phn_l5_c320/label.counts apply-cmvn --norm-vars=true --utt2spk=ark:data/dev/split8/1/utt2spk scp:data/dev/split8/1/cmvn.scp scp:data/dev/split8/1/feats.scp ark:- add-deltas ark:- ark:- ERROR (net-output-extract:SubtractOnLogpost():class-prior.cc:86) Dimensionality mismatch, class_frame_counts 46 class_output_llk 47

How do you compute class_output_llk ?

aheba commented 6 years ago

For more details. "label.counts" file have 46 values rather than the nnet.topo which have 47 softmax !!

pplantinga commented 5 years ago

Did you solve this issue? I currently have the same issue.

fmetze commented 5 years ago

Can you describe where exactly this occurs, specifically which branch and which script? Fundamentally, we have 46 phones, but 47 CTC outputs, because index 0 is the blank. The counts file is defined for all phones, but as explained in the paper, we derive the counts for blank by inserting one blank between every two phones, so in practice the count for blank is the sum of all the other phones' counts. So, if the 46 phone counts are "1 3", then the 47 "augmented" counts are "4 1 3". This is normally taken care of - but maybe you need to add this to your code. Let me know if this does not make sense - I'll be happy to fix it if you let me know where it dies ("it works for me").

pplantinga commented 5 years ago

I should have been more clear. I have a similar (but not exactly the same) issue. I am working on a different dataset, and trying to create a new recipe by copying parts of other recipes. The error I came across actually had 72 classes and 70 outputs. I understand that this is probably not enough info to help with this problem, I was just trying to get some ideas of things others had tried.

pplantinga commented 5 years ago

For others coming across this issue, my issue seems to be that sometimes noise symbols are ignored, and sometimes they aren't.

fmetze commented 5 years ago

Which branch are you seeing this problem with?

pplantinga commented 5 years ago

What I am working on is not a current branch in eesen, so perhaps Stack overflow would have been a better place to bring this up. FWIW I solved the issue by removing the "ignore_noises" flags on the prepare_phn_dict.py script.