2017-11-24 1 views
0

사용 KALDI ASSERT에 다음과 같은 파이프 라인 :<a href="https://github.com/alumae/gst-kaldi-nnet2-online" rel="nofollow noreferrer">Alumae</a>에서있는 GStreamer 플러그인을 사용하여있는 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);

을 이해하지 못하고 다음 어설 수 약 assert error? 그것을 고치는 방법?가 제대로 WAV 파일 대신 마지막에 텍스트 파일을 생성 wavenc

참고로, 데이터는 로 스트리밍 된 wav 파일에서 오는 파이프 라인 및 kaldinnetonlinedecoder 교체로 밀었다. 항상 던져 파이썬 작품의 파이프 라인의 텍스트 표현을 사용하지만 (즉, 등등 Gst.Element_Factory.make 및 사용)를 코딩, 당신의 내용

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 

: 여기에 편집

는 사용하는 매개 변수입니다 예외

SECOND UPDATE 여기 가 어서 트에 의해 생성 된 전체 스택 트레이스이다

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() 
+0

'parameter snipped'는 나쁜 생각입니다. 전반적으로 대답이 필요한 경우 자세한 내용을 제공해야합니다. –

+0

글쎄, 나는 Kaldi Gst Element가 다른 Gst 플러그인으로 그 대문자를 무시할 것으로 예상했다. 그 이유는 내가 매개 변수를 제공하지 않았기 때문이다. 나는 그게 무슨 뜻인지 이해하기를 원했습니다. 현재 매개 변수에 액세스 할 수는 없지만 최대한 빨리 제공 할 것입니다. –

+0

지연에 대해 사과드립니다. 질문에 매개 변수를 추가했습니다. –

답변

0

frame-subsampling-factor 매개 변수를 사용하여 마침내 작동했습니다.

문제는 매개 변수 순서대로 있습니다. fst 매개 변수는 마지막 매개 변수 여야합니다.

따라서 다음과 같은 텍스트 체인 작동 :

gst-launch-1.0 pulsesrc device=alsa_input.pci-0000_00_05.0.analog-stereo ! queue ! \ 
      audioconvert ! \ 
      audioresample ! tee name=t ! queue ! \ 
     kaldinnet2onlinedecoder \ 
     use-threaded-decoder=0 \ 
     nnet-mode=3 \ 
     word-syms=/opt/models/fr/words.txt \ 
     mfcc-config=/opt/models/fr/mfcc_hires.conf \ 
     ivector-extraction-config=/opt/models/fr/ivector-extraction/ivector_extractor.conf \ 
     phone-syms=/opt/models/fr/phones.txt \ 
     frame-subsampling-factor=3 \ 
     max-active=7000 \ 
     beam=13.0 \ 
     lattice-beam=8.0 \ 
     acoustic-scale=1 \ 
     do-endpointing=1 \ 
     endpoint-silence-phones=1:2:3:4:5:16:17:18:19:20 \ 
     traceback-period-in-secs=0.25 \ 
     num-nbest=2 \ 
     chunk-length-in-secs=0.25 \ 
     fst=/opt/models/fr/HCLG.fst \ 
     model=/opt/models/fr/final.mdl \ 
     ! filesink async=0 location=/dev/stdout t. ! queue ! autoaudiosink async=0 

내가 나를 위해,이 찾기가 정말 어려울 수 있습니다 적어도 문서화되어야한다이를 위해 GitHub의에 an issue을 열었다.

관련 문제