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 340 forks source link

starting a worker with the kaldinnet2onlinedecoder fails. #47

Closed sbraden closed 8 years ago

sbraden commented 8 years ago

I'm running the master server on Ubuntu 14.04.4 LTS (GNU/Linux 3.13.0-85-generic x86_64). I'm am using Python 2.7.6.

The command and output are below. I looked in the source code of decoder2.py. It looks like the GstElement is 'NoneType'.

I did a little experiment in ipython and I noticed that the following calls have different results.

tee = Gst.ElementFactory.make("tee", "tee") print tee <main.GstTee object at 0x7f45edcbfb90 (GstTee at 0x235a2d0)>

however,

asr = Gst.ElementFactory.make("kaldinnet2onlinedecoder", "asr") print asr None

I have pygobject==3.12.0

Command:

python kaldigstserver/worker.py -u ws://localhost:8888/worker/ws/speech -c sample_english_nnet2.yaml

Output and Error message:

DEBUG 2016-07-22 11:48:56,068 Starting up worker 2016-07-22 11:48:56 - 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-nnet2': True, 'full-post-processor': './sample_full_post_processor.py', 'decoder': {'ivector-extraction-config': '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': 'test/models/english/tedlium_nnet_ms_sp_online/HCLG.fst', 'mfcc-config': 'test/models/english/tedlium_nnet_ms_sp_online/conf/mfcc.conf', 'use-threaded-decoder': True, 'traceback-period-in-secs': 0.25, 'model': 'test/models/english/tedlium_nnet_ms_sp_online/final.mdl', 'word-syms': '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-vad': False} None Traceback (most recent call last): File "kaldigstserver/worker.py", line 368, in main() File "kaldigstserver/worker.py", line 348, in main decoder_pipeline = DecoderPipeline2(conf) File "/home/sbraden/workspace/kaldi-gstreamer-server/kaldigstserver/decoder2.py", line 24, in init self.create_pipeline(conf) File "/home/sbraden/workspace/kaldi-gstreamer-server/kaldigstserver/decoder2.py", line 54, 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 8 years ago

This happens when the kaldinnet2onlinedecoder GStreamer plugin is not found. It can be fixed by specifying it's path using GST_PLUGIN_PATH:

export GST_PLUGIN_PATH=~/tools/gst-kaldi-nnet2-online/src
sbraden commented 8 years ago

Faceplam... I opened a new terminal when I got back from lunch and forgot to specify the path again.

Momina12 commented 4 years ago

Hi,

I am facing this error, I have set GST_PLUGIN_PATH as well, still getting this error. Any solution?