KarelVesely84 / kaldi-io-for-python

Python functions for reading kaldi data formats. Useful for rapid prototyping with python.
Apache License 2.0
376 stars 119 forks source link

Exit code 255 with open_or_fd #28

Closed Ayushi113 closed 4 years ago

Ayushi113 commented 5 years ago

Hi, I'm working with python 3.5.2, and I am using a virtualenv to run kaldi_io. I'm trying to use this sample:

import kaldi_io ark_scp_output='ark:| copy-feats --compress=true ark:- ark,scp:data/feats2.ark,data/feats2.scp' with kaldi_io.open_or_fd(ark_scp_output,'wb') as f: for key,mat in dict.iteritems(): kaldi_io.write_mat(f, mat, key=key)

My dict is a csv file, such that the first column is utt-id, and the 2nd column is the feature. This feature is in a 2-D (1x1) numpy matrix format. I have 2 problems: a) In using key, string type is not supported. Since that is an optional argument, I just didn't pass it. But I know it will be important.

b) In using open_or_fd, I'm getting the following error: RROR (copy-feats[5.4.176~1-be967]:Read():kaldi-matrix.cc:1616) Failed to read matrix from stream. : Expected "[", got "

[ Stack-Trace: ]

kaldi::MessageLogger::HandleMessage(kaldi::LogMessageEnvelope const&, char const*) kaldi::MessageLogger::~MessageLogger() kaldi::Matrix::Read(std::istream&, bool, bool) kaldi::KaldiObjectHolder<kaldi::Matrix >::Read(std::istream&) kaldi::SequentialTableReaderArchiveImpl<kaldi::KaldiObjectHolder<kaldi::Matrix > >::Next() kaldi::SequentialTableReaderArchiveImpl<kaldi::KaldiObjectHolder<kaldi::Matrix > >::Open(std::cxx11::basic_string<char, std::char_traits, std::allocator > const&) kaldi::SequentialTableReader<kaldi::KaldiObjectHolder<kaldi::Matrix > >::Open(std::cxx11::basic_string<char, std::char_traits, std::allocator > const&) kaldi::SequentialTableReader<kaldi::KaldiObjectHolder<kaldi::Matrix > >::SequentialTableReader(std::cxx11::basic_string<char, std::char_traits, std::allocator > const&) main libc_start_main _start

WARNING (copy-feats[5.4.176~1-be967]:Read():util/kaldi-holder-inl.h:84) Exception caught reading Table object. WARNING (copy-feats[5.4.176~1-be967]:Next():util/kaldi-table-inl.h:574) Object read failed, reading archive standard input WARNING (copy-feats[5.4.176~1-be967]:Open():util/kaldi-table-inl.h:521) Error beginning to read archive file (wrong filename?): standard input ERROR (copy-feats[5.4.176~1-be967]:SequentialTableReader():util/kaldi-table-inl.h:860) Error constructing TableReader: rspecifier is ark:-

[ Stack-Trace: ]

kaldi::MessageLogger::HandleMessage(kaldi::LogMessageEnvelope const&, char const*) kaldi::MessageLogger::~MessageLogger() kaldi::SequentialTableReader<kaldi::KaldiObjectHolder<kaldi::Matrix > >::SequentialTableReader(std::cxx11::basic_string<char, std::char_traits, std::allocator > const&) main libc_start_main _start

Exception in thread Thread-1: Traceback (most recent call last): File "/usr/lib/python3.5/threading.py", line 914, in _bootstrap_inner self.run() File "/usr/lib/python3.5/threading.py", line 862, in run self._target(*self._args, **self._kwargs) File "/home/ayushi/Projects_2018/non_native_perception/data/recordings_edited/kaldi-io/kaldi_io/kaldi_io/kaldi_io.py", line 82, in cleanup raise SubprocessFailed('cmd %s returned %d !' % (cmd,ret)) kaldi_io.kaldi_io.SubprocessFailed: cmd copy-feats --print-args=false ark:- ark,scp:/home/ayushi/Tools/kaldi/egs/nn_perception/data/train/feats.ark,/home/ayushi/Tools/kaldi/egs/nn_perception/data/train/feats.scp returned 255 !

Am I doing something wrong?

KarelVesely84 commented 5 years ago

Hello, not sure of the nature of the problem. What exact message do you get, when you try the 'write_mat(...)' with the 'key' in it?

The problem seems to be here : https://github.com/vesis84/kaldi-io-for-python/blob/master/kaldi_io/kaldi_io.py#L476 And we need to figure out how to fix it. (Maybe you need to cast the key to some type, or something?)

KarelVesely84 commented 4 years ago

this issue was abandoned by the reporter...