alumae / kaldi-gstreamer-server

Real-time full-duplex speech recognition server, based on the Kaldi toolkit and the GStreamer framwork.
BSD 2-Clause "Simplified" License
1.07k stars 341 forks source link

starting woker for kaldinnet2onlinedecoder failed #119

Closed floraFoodi closed 6 years ago

floraFoodi commented 6 years ago

I am using AWS ubuntu 16.04 (amd64) to run the kaldi-gstreamer-server. After successfully running the "onlinegmmdecodefaster" based worker, I tried to run "kaldinnet2onlinedecoder" based worker. However, it gives me the "AttributeError: 'NoneType' object has no attribute 'set_property'" error.

The GST_PLUGIN_PATH="/apps/kaldi/src/gst-kaldi-nnet2-online/src". And I was able to run the command "gst-inspect-1.0 kaldinnet2onlinedecoder" successful with the following output:

_Factory Details: Rank none (0) Long-name KaldiNNet2OnlineDecoder Klass Speech/Audio Description Convert speech to text Author Tanel Alumae tanel.alumae@phon.ioc.ee

Plugin Details: Name kaldinnet2onlinedecoder Description kaldinnet2onlinedecoder Filename /apps/kaldi/src/gst-kaldi-nnet2-online/src/libgstkaldionline2.so ....._

I am using supervisor to start the server-master and server-worker.

In the supervisord.conf file, I have the following command to start the worker:

command = /usr/bin/python2.7 /apps/kaldi/kaldi-gstreamer-server/kaldigstserver/worker.py -u ws://localhost:8890/worker/ws/speech -c /apps/kaldi/kaldi-gstreamer-server/english_nnet2.yaml

And here is the output in the worker*.log file:

DEBUG 2018-02-20 19:04:08,555 Starting up worker 2018-02-20 19:04:08 - 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': '/apps/kaldi/kaldi-gstreamer-server/test/models/english/tedlium_nnet_ms_sp_online/conf/ivector_extractor.conf', 'num-nbest': 10, 'lattice-beam': 6.0, 'acoustic-scale': 0.083, 'do-endpointing': True, 'beam': 10.0, 'max-active': 10000, 'fst': '/apps/kaldi/kaldi-gstreamer-server/test/models/english/tedlium_nnet_ms_sp_online/HCLG.fst', 'mfcc-config': '/apps/kaldi/kaldi-gstreamer-server/test/models/english/tedlium_nnet_ms_sp_online/conf/mfcc.conf', 'use-threaded-decoder': True, 'traceback-period-in-secs': 0.25, 'model': '/apps/kaldi/kaldi-gstreamer-server/test/models/english/tedlium_nnet_ms_sp_online/final.mdl', 'word-syms': '/apps/kaldi/kaldi-gstreamer-server/test/models/english/tedlium_nnet_ms_sp_online/words.txt', 'endpoint-silence-phones': '1:2:3:4:5:6:7:8:9:10', 'chunk-length-in-secs': 0.25}, 'silence-timeout': 10, 'out-dir': 'tmp', 'use-nnet2': True} Traceback (most recent call last): File "/apps/kaldi/kaldi-gstreamer-server/kaldigstserver/worker.py", line 418, in main() File "/apps/kaldi/kaldi-gstreamer-server/kaldigstserver/worker.py", line 408, in main decoder_pipeline = DecoderPipeline2(conf) File "/apps/kaldi/kaldi-gstreamer-server/kaldigstserver/decoder2.py", line 25, in init self.create_pipeline(conf) File "/apps/kaldi/kaldi-gstreamer-server/kaldigstserver/decoder2.py", line 55, in create_pipeline self.asr.set_property("use-threaded-decoder", conf["decoder"]["use-threaded-decoder"]) AttributeError: 'NoneType' object has no attribute 'set_property'

alumae commented 6 years ago

Can you paste your supervisord.conf?

floraFoodi commented 6 years ago

found the problem. In the supervisord.conf there's an environment setting which was not pointing to the right GST_PLUGIN_PATH. I was copy/paste from the onlinegmmdecodefaster configuration file.

Thanks for pointing me to the right direction!