jcsilva / docker-kaldi-gstreamer-server

Dockerfile for kaldi-gstreamer-server.
BSD 2-Clause "Simplified" License
289 stars 139 forks source link

Unknown component type TdnnComponent #61

Open hcnoh opened 5 years ago

hcnoh commented 5 years ago

I am trying to test my own custom Kaldi model.

With the following yaml configure file, I got an error which was written in worker.log file:

decoder:
    use-threaded-decoder:  true
    model : /opt/models/tdnn1a_sp_online/final.mdl
    word-syms : /opt/models/tree_a/graph_tgsmall/words.txt
    fst : /opt/models/tree_a/graph_tgsmall/HCLG.fst
    mfcc-config : /opt/models/tdnn1a_sp_online/conf/mfcc.conf
    ivector-extraction-config : /opt/models/tdnn1a_sp_online/conf/ivector_extractor.conf
    min-active: 200
    max-active: 7000
    beam: 15.0
    lattice-beam: 6.0
    acoustic-scale: 1.0
    do-endpointing : false
    endpoint-silence-phones : "1:2:3:4:5:6:7:8:9:10"
    traceback-period-in-secs: 0.25
    chunk-length-in-secs: 0.25
    frame-subsampling-factor: 3
    num-nbest: 10
    nnet-mode: 3

And the error message of worker.log file is below:

2019-03-13 02:29:34 -    INFO:   decoder2: Creating decoder using conf: {'post-processor': "perl -npe 'BEGIN {use IO::Handle; STDOUT->autoflush(1);} s/(.*)/\\1./;'", 'logging': {'version': 1, 'root': {'level': 'DEBUG', 'handlers': ['console']}, 'formatters': {'simpleFormater': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s - %(levelname)7s: %(name)10s: %(message)s'}}, 'disable_existing_loggers': False, 'handlers': {'console': {'formatter': 'simpleFormater', 'class': 'logging.StreamHandler', 'level': 'DEBUG'}}}, 'use-vad': False, 'decoder': {'ivector-extraction-config': '/opt/models/tdnn1a_sp_online/conf/ivector_extractor.conf', 'min-active': 200, 'lattice-beam': 6.0, 'acoustic-scale': 1.0, 'do-endpointing': False, 'beam': 15.0, 'mfcc-config': '/opt/models/tdnn1a_sp_online/conf/mfcc.conf', 'traceback-period-in-secs': 0.25, 'nnet-mode': 3, 'endpoint-silence-phones': '1:2:3:4:5:6:7:8:9:10', 'word-syms': '/opt/models/tree_a/graph_tgsmall/words.txt', 'num-nbest': 1, 'frame-subsampling-factor': 3, 'max-active': 7000, 'fst': '/opt/models/tree_a/graph_tgsmall/HCLG.fst', 'use-threaded-decoder': True, 'model': '/opt/models/tdnn1a_sp_online/final.mdl', 'chunk-length-in-secs': 0.25}, 'silence-timeout': 10, 'out-dir': 'tmp', 'use-nnet2': True}
2019-03-13 02:29:34 -    INFO:   decoder2: Setting decoder property: nnet-mode = 3
2019-03-13 02:29:34 -    INFO:   decoder2: Setting decoder property: ivector-extraction-config = /opt/models/tdnn1a_sp_online/conf/ivector_extractor.conf
2019-03-13 02:29:34 -    INFO:   decoder2: Setting decoder property: min-active = 200
2019-03-13 02:29:34 -    INFO:   decoder2: Setting decoder property: lattice-beam = 6.0
2019-03-13 02:29:34 -    INFO:   decoder2: Setting decoder property: acoustic-scale = 1.0
2019-03-13 02:29:34 -    INFO:   decoder2: Setting decoder property: do-endpointing = False
2019-03-13 02:29:34 -    INFO:   decoder2: Setting decoder property: beam = 15.0
2019-03-13 02:29:34 -    INFO:   decoder2: Setting decoder property: mfcc-config = /opt/models/tdnn1a_sp_online/conf/mfcc.conf
2019-03-13 02:29:34 -    INFO:   decoder2: Setting decoder property: traceback-period-in-secs = 0.25
2019-03-13 02:29:34 -    INFO:   decoder2: Setting decoder property: endpoint-silence-phones = 1:2:3:4:5:6:7:8:9:10
2019-03-13 02:29:34 -    INFO:   decoder2: Setting decoder property: word-syms = /opt/models/tree_a/graph_tgsmall/words.txt
2019-03-13 02:29:35 -    INFO:   decoder2: Setting decoder property: num-nbest = 1
2019-03-13 02:29:35 -    INFO:   decoder2: Setting decoder property: frame-subsampling-factor = 3
2019-03-13 02:29:35 -    INFO:   decoder2: Setting decoder property: max-active = 7000
2019-03-13 02:29:35 -    INFO:   decoder2: Setting decoder property: chunk-length-in-secs = 0.25
2019-03-13 02:29:35 -    INFO:   decoder2: Setting decoder property: fst = /opt/models/tree_a/graph_tgsmall/HCLG.fst
2019-03-13 02:29:35 -    INFO:   decoder2: Setting decoder property: model = /opt/models/tdnn1a_sp_online/final.mdl
ERROR ([5.4.176~1-be967]:ReadNew():nnet-component-itf.cc:86) Unknown component type TdnnComponent

[ Stack-Trace: ]
kaldi::MessageLogger::HandleMessage(kaldi::LogMessageEnvelope const&, char const*)
kaldi::MessageLogger::~MessageLogger()
kaldi::nnet3::Component::ReadNew(std::istream&, bool)
kaldi::nnet3::Nnet::Read(std::istream&, bool)
kaldi::nnet3::AmNnetSimple::Read(std::istream&, bool)

g_object_set_property

PyEval_EvalFrameEx
.
.
.
python() [0x4b988b]
PyEval_EvalFrameEx
PyEval_EvalFrameEx
PyEval_EvalCodeEx
python() [0x50160f]
PyRun_FileExFlags
PyRun_SimpleFileExFlags
Py_Main
__libc_start_main
python() [0x497b8b]

What should be modified in this setting to correct this error?

jwvl commented 5 years ago

I had the same error, and there are also some other issues posted here which seem to point to the same problem. In my case, this error gets thrown because the version of Kaldi in the Docker container is too old: https://groups.google.com/forum/#!topic/kaldi-help/RX8MA_hKhyI

MadisKarli commented 5 years ago

You need to rebuild the docker container, prebuilt one is outdated. See https://github.com/jcsilva/docker-kaldi-gstreamer-server/issues/50