kaldi-asr / kaldi

kaldi-asr/kaldi is the official location of the Kaldi project.
http://kaldi-asr.org
Other
14.11k stars 5.31k forks source link

fMLLR transforms failed. report: Failed to read vector from stream. Error reading vector data (binary mode); truncated stream? (size = 38) File position at start is -1, currently -1 #4930

Open Niche180 opened 1 month ago

Niche180 commented 1 month ago

When I use the corpus (wenetspeech) to train the chain model, an error occurs when I reach the steps/align_fmllr.sh step:

run.pl: 1 / 25 failed, log is in exp/tri5a_sp_ali/log/fmllr.*.log

Then I check the logs, and there are 3 logs with the following ERRORs:

ERROR (gmm-est-fmllr-gpost[5.5]:Read():kaldi-vector.cc:1224) Failed to read vector from stream.  Error reading vector data (binary mode); truncated stream? (size = 38) File position at start is -1, currently -1

ERROR (gmm-est-fmllr-gpost[5.5]:~RandomAccessTableReader():util/kaldi-table-inl.h:2578) failure detected in destructor.

Then it terminates the operation.

Most of the logs contain warnings like this:

WARNING (gmm-est-fmllr-gpost[5.5]:main():gmm-est-fmllr-gpost.cc:116) Did not find posteriors for utterance sp0.9-BAC00JD590500065

Then there is also this information:

LOG (gmm-est-fmllr-gpost[5.5]:main():gmm-est-fmllr-gpost.cc:141) For speaker sp0.9-D5907, auxf-impr from fMLLR is -nan, over 0 frames.

What is the possible reason?

I use the examples in egs/aishell/s5 for training, and the training data has been processed in advance to the same format as aishell.

kkm000 commented 2 weeks ago

Oops, dropped my trackball on the floor while typing, and it fell so precisely on the left button to close the issue; I cannot reproduce the feat at will :)


I need the complete pipeline from the start of the log to understand the source. You won't go wrong if you attach the log, unless there is anything private. Usually, the I/O errors like this occurs when the failure is earlier in the pipeline. There is A | B, the program A encounters an error and writes incomplete output, and B receives the incomplete input and complains. The errors I see are from the binary B, but the error happened earlier in the command.

The warning is safe, AFAIK.