使用Alumae的 GStreamer 插件和以下管道:
appsrc source='appsrc' ! wavparse ! audioconvert ! audioresample ! queue ! kaldinnet2onlinedecoder <parameters snipped> ! filesink location=/tmp/test
我总是得到以下我不明白的断言
KALDI_ASSERT(current_log_post_.NumRows() == info_.frames_per_chunk /
info_.opts.frame_subsampling_factor &&
current_log_post_.NumCols() == info_.output_dim);
这个断言错误是关于什么的?如何解决?
仅供参考,推入管道的数据来自流式 wav 文件,并用wavenc替换kaldinnetonlinedecoder正确生成 Wav 文件而不是最后的文本文件。
编辑 这里是使用的参数:
use-threaded-decoder=0
model=/opt/en/final.mdl
word-syms=<word-file>
fst=<fst_file>
mfcc-config=<mfcc-file>
ivector-extraction-config=/opt/en/ivector-extraction/ivector_extractor.conf
max-active=10000
beam=10.0
lattice-beam=6.0
do-endpointing=1
endpoint-silence-phones=\"1:2:3:4:5:6:7:8:9:10\"
traceback-period-in-secs=0.25
num-nbest=10
供您参考,在 python 中使用管道文本表示但对其进行编码(即使用 Gst.Element_Factory.make 等)总是抛出异常
第二次更新 这是断言生成的完整堆栈跟踪
ASSERTION_FAILED ([5.2]:AdvanceChunk():decodable-online-looped.cc:223) : 'current_log_post_.NumRows() == info_.frames_per_chunk / info_.opts.frame_subsampling_factor && current_log_post_.NumCols() == info_.output_dim'
[ Stack-Trace: ]
kaldi::MessageLogger::HandleMessage(kaldi::LogMessageEnvelope const&, char const*)
kaldi::MessageLogger::~MessageLogger()
kaldi::KaldiAssertFailure_(char const*, char const*, int, char const*)
kaldi::nnet3::DecodableNnetLoopedOnlineBase::AdvanceChunk()
kaldi::nnet3::DecodableNnetLoopedOnlineBase::EnsureFrameIsComputed(int)
kaldi::nnet3::DecodableAmNnetLoopedOnline::LogLikelihood(int, int)
kaldi::LatticeFasterOnlineDecoder::ProcessEmitting(kaldi::DecodableInterface*)
kaldi::LatticeFasterOnlineDecoder::AdvanceDecoding(kaldi::DecodableInterface*, int)
kaldi::SingleUtteranceNnet3Decoder::AdvanceDecoding()