Reading *.ark files from bash or python

3,245 views
Skip to first unread message

Ahilan Kanagasundram

unread,
Dec 15, 2015, 6:50:43 PM12/15/15
to kaldi-help
Hello,

I have some ark files. I would be grateful to you if you could let me know how we can read these files from python or bash scripts.


"30001f-baaty_A /home/kanagasu/working/dnn-speaker-recognition/egs/dnn_fisher300_sre/data/mfcc/vad_sre10_train_coreext_trunc_30sec_2.1.ark:15
30002m-babgk_A /home/kanagasu/working/dnn-speaker-recognition/egs/dnn_fisher300_sre/data/mfcc/vad_sre10_train_coreext_trunc_30sec_2.1.ark:12040
30003f-baeni_A /home/kanagasu/working/dnn-speaker-recognition/egs/dnn_fisher300_sre/data/mfcc/vad_sre10_train_coreext_trunc_30sec_2.1.ark:24065
30004m-bafrp_A /home/kanagasu/working/dnn-speaker-recognition/egs/dnn_fisher300_sre/data/mfcc/vad_sre10_train_coreext_trunc_30sec_2.1.ark:36090

"

Many thanks and best regards,
K.Ahilan

Daniel Povey

unread,
Dec 15, 2015, 6:53:30 PM12/15/15
to kaldi-help, Jan Chorowski
A guy called Jan Chorowski (cc'd) wrote some Python wrappers which do this, see
 https://github.com/janchorowski/kaldi-git/tree/python/src/python.  I don't know if these will still work with the current Kaldi version, but probably they would.
Please see this thread on the old discussion board where we talked about integrating this 
(in the end there were some  kind of objections by people who know Python better than me, and we didn't include it in the official Kaldi repo).

Dan

--
You received this message because you are subscribed to the Google Groups "kaldi-help" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kaldi-help+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Ahilan Kanagasundram

unread,
Dec 15, 2015, 6:57:09 PM12/15/15
to kaldi-help, jan.ch...@gmail.com, dpo...@gmail.com
Thanks a lot Dan for your prompt response.


Many thanks and best regards,
K.Ahilan

Jan Chorowski

unread,
Dec 16, 2015, 7:04:11 AM12/16/15
to Ahilan Kanagasundram, kaldi-help, dpo...@gmail.com
Hi,

I extracted the code and put it under https://github.com/janchorowski/kaldi-python It should build against a new Kaldi, one caveat is that you need to compile Kaldi with shared library support.

Jan Chorowski

Wednesday, December 16, 2015 12:57 AM
Thanks a lot Dan for your prompt response.


Many thanks and best regards,
K.Ahilan


On Wednesday, 16 December 2015 09:53:30 UTC+10, Dan Povey wrote:
Wednesday, December 16, 2015 12:53 AM

Daniel Povey

unread,
Dec 16, 2015, 1:30:37 PM12/16/15
to Jan Chorowski, Ahilan Kanagasundram, kaldi-help
Thanks.
BTW, what he means by shared library support is that when you run "configure" you should add the --shared option.
This is what I'm recommending for most users anyway now, for compilation speed.  (Personally I don't do it as I make a lot of code changes and like to have control about when I apply changes to different binaries, to prevent killing running jobs).
Dan

Ahilan Kanagasundram

unread,
Dec 16, 2015, 5:15:34 PM12/16/15
to kaldi-help, jan.ch...@gmail.com, ahila...@gmail.com, dpo...@gmail.com
Thanks a lot Jan and Dan.


Many thanks and best regards,
K.Ahilan

Ahilan Kanagasundram

unread,
Mar 9, 2016, 8:02:10 PM3/9/16
to kaldi-help, jan.ch...@gmail.com, ahila...@gmail.com, dpo...@gmail.com
Hello,

When I tried to install the python wrapper package, I'm getting following error,

"
/pkg/suse11/python/numpy/1.8.0/lib/python2.7/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:15:2: warning: #warning "Using deprecated NumPy API, disable it by " "#defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
 #warning "Using deprecated NumPy API, disable it by " \
  ^
/usr/bin/ld: /home/kanagasu/working/kaldi/kaldi-master/src/matrix/kaldi-matrix.a(kaldi-matrix.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
/home/kanagasu/working/kaldi/kaldi-master/src/matrix/kaldi-matrix.a: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
make: *** [kaldi_io_internal.so] Error 1

"

I would be thankful you if you could advise on this issue.



Many thanks and best regards,
K.Ahilan



On Thursday, 17 December 2015 04:30:37 UTC+10, Dan Povey wrote:

Daniel Povey

unread,
Mar 9, 2016, 9:10:52 PM3/9/16
to Ahilan Kanagasundram, kaldi-help, Jan Chorowski
Configure Kaldi with the --shared option and make clean and recompile.
Dan

Ahilan Kanagasundram

unread,
Mar 9, 2016, 9:15:34 PM3/9/16
to kaldi-help, ahila...@gmail.com, jan.ch...@gmail.com, dpo...@gmail.com
Thanks Dan. I will configure with shared option and recompile it.


Many thanks and best regards,
K.Ahilan


Ahilan Kanagasundram

unread,
Mar 9, 2016, 10:07:29 PM3/9/16
to kaldi-help, ahila...@gmail.com, jan.ch...@gmail.com, dpo...@gmail.com
Hello Dan,

When I recompile, I'm getting following error,

"
# Building shared library from static (static was compiled with -fPIC)
g++ -shared -o libkaldi-matrix.so -Wl,--no-undefined -Wl,--as-needed  -Wl,-soname=libkaldi-matrix.so,--whole-archive kaldi-matrix.a -Wl,--no-whole-archive  -rdynamic -Wl,-rpath=/home/kanagasu/working/kaldi/kaldi-master/tools/openfst/lib -Wl,-rpath=/home/kanagasu/working/kaldi/kaldi-master/src/lib -L.  -L../base/   ../base//libkaldi-base.so   -L/home/kanagasu/working/kaldi/kaldi-master/tools/openfst/lib -lfst /pkg/suse11/atlas/3.10.2/lib/liblapack.a /pkg/suse11/atlas/3.10.2/lib/libcblas.a /pkg/suse11/atlas/3.10.2/lib/libatlas.a /pkg/suse11/atlas/3.10.2/lib/libf77blas.a -lm -lpthread -ldl  -lkaldi-base
/usr/bin/ld: /pkg/suse11/atlas/3.10.2/lib/liblapack.a(clapack_dgetrf.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC
/pkg/suse11/atlas/3.10.2/lib/liblapack.a: could not read symbols: Bad value

collect2: error: ld returned 1 exit status
make[1]: *** [libkaldi-matrix.so] Error 1
make[1]: Leaving directory `/home/kanagasu/working/kaldi/kaldi-master/src/matrix'
make: *** [matrix] Error
"

I would be thankful to you if you could advise me on this regard.



Many thanks and best regards,
K.Ahilan




Daniel Povey

unread,
Mar 9, 2016, 10:11:29 PM3/9/16
to Ahilan Kanagasundram, kaldi-help, Jan Chorowski
When you configure with --shared, it sets static_math to false, so it should look for dynamic math libraries (.so), but it's trying to link with a static library (.a).  Did configure print any warnings?

Ahilan Kanagasundram

unread,
Mar 9, 2016, 10:18:17 PM3/9/16
to kaldi-help, ahila...@gmail.com, jan.ch...@gmail.com, dpo...@gmail.com
Hello Dan,

I made configuration as follows,

./configure --shared --atlas-root=/pkg/suse11/atlas/3.10.2/ --static-fst=no --static-math=no

I've following message,
"
Using ATLAS as the linear algebra library.
... no {libatlas,libsatlas}.so in /usr/lib
... no {libatlas,libsatlas}.so in /usr/lib/atlas
... no {libatlas,libsatlas}.so in /usr/lib/atlas-sse2
... no {libatlas,libsatlas}.so in /usr/lib/atlas-sse3
... no {libatlas,libsatlas}.so in /usr/lib64
... no {libatlas,libsatlas}.so in /usr/lib64/atlas
... no {libatlas,libsatlas}.so in /usr/lib64/atlas-sse2
... no {libatlas,libsatlas}.so in /usr/lib64/atlas-sse3
... no {libatlas,libsatlas}.so in /usr/local/lib
... no {libatlas,libsatlas}.so in /usr/local/lib/atlas
... no {libatlas,libsatlas}.so in /usr/local/lib/atlas-sse2
... no {libatlas,libsatlas}.so in /usr/local/lib/atlas-sse3
... no {libatlas,libsatlas}.so in /usr/local/lib64
... no {libatlas,libsatlas}.so in /usr/local/lib64/atlas
... no {libatlas,libsatlas}.so in /usr/local/lib64/atlas-sse2
... no {libatlas,libsatlas}.so in /usr/local/lib64/atlas-sse3
... no {libatlas,libsatlas}.so in /home/kanagasu/working/kaldi/kaldi-master/src/../tools/ATLAS/build/install/lib/
... no {libatlas,libsatlas}.so in /pkg/suse11/atlas/3.10.2/lib
Could not find {libatlas,libsatlas}.so in any of the obvious places, will most likely try static:
Validating presence of ATLAS libs in /pkg/suse11/atlas/3.10.2/lib
Using library /pkg/suse11/atlas/3.10.2/lib/liblapack.a as ATLAS's CLAPACK library.
CUDA will not be used! If you have already installed cuda drivers
and cuda toolkit, try using --cudatk-dir=... option.  Note: this is
only relevant for neural net experiments
Static=[false] Speex library not found: You can still build Kaldi without Speex.
Successfully configured for Linux [static libraries] with ATLASLIBS =/pkg/suse11/atlas/3.10.2/lib/liblapack.a /pkg/suse11/atlas/3.10.2/lib/libcblas.a /pkg/suse11/atlas/3.10.2/lib/libatlas.a /pkg/suse11/atlas/3.10.2/lib/libf77blas.a
SUCCESS

"

Could not find {libatlas,libsatlas}.so in any of the obvious places, will most likely try static:

You are correct, it seems like it's trying to use static.. How can we solve this?



Many thanks and best regards,
K.Ahilan



Daniel Povey

unread,
Mar 9, 2016, 10:22:53 PM3/9/16
to Ahilan Kanagasundram, kaldi-help, Jan Chorowski
Talk with your sysadmins and see if they can install dynamic libraries.

Ahilan Kanagasundram

unread,
Mar 9, 2016, 10:24:53 PM3/9/16
to dpo...@gmail.com, Jan Chorowski, kaldi-help
Thanks a lot Dan. I will speak with them 


Many thanks and best regards 
K.Ahilan 
--

al....@gmail.com

unread,
Jun 19, 2016, 4:22:11 AM6/19/16
to kaldi-help
may be this may help:
   https://github.com/vesis84/kaldi-io-for-python
but I don't know is it up to date.
Message has been deleted
Message has been deleted

Iris Luo

unread,
Sep 3, 2017, 11:49:34 PM9/3/17
to kaldi-help, ahila...@gmail.com, dpo...@gmail.com, jan.ch...@gmail.com
Hi Jan, 
I cloned the code, and try to compile it.
But it seems not fit to the latest kaldi, because the "/src/thread" directory doesn't exist anymore. 
So I removed the $(KALDI_SRC)/thread/kaldi-thread.a in /kaldi-python/kaldi-python/Makefile, but it didn't work.
The error messages are as follows:

g++ -shared -o kaldi_io_internal.so -Wall -fPIC -I/home/user2/kaldi_ln/kaldi-master/src -I/usr/include/python2.7 -I/usr/include/x86_64-linux-gnu/python2.7 -I/usr/local/lib/python2.7/dist-packages/numpy/core/include -std=c++11 -I.. -I/home/user2/kaldi_ln/kaldi-master/tools/openfst/include -Wno-sign-compare -Wall -Wno-sign-compare -Wno-unused-local-typedefs -Wno-deprecated-declarations -Winit-self -DKALDI_DOUBLEPRECISION=0 -DHAVE_EXECINFO_H=1 -DHAVE_CXXABI_H -DHAVE_ATLAS -I/home/user2/kaldi_ln/kaldi-master/tools/ATLAS/include -msse -msse2 -pthread -g -fPIC -DHAVE_CUDA -I/usr//include kaldi_io_internal.cpp /home/user2/kaldi_ln/kaldi-master/src/lm/kaldi-lm.a /home/user2/kaldi_ln/kaldi-master/src/decoder/kaldi-decoder.a /home/user2/kaldi_ln/kaldi-master/src/lat/kaldi-lat.a /home/user2/kaldi_ln/kaldi-master/src/hmm/kaldi-hmm.a /home/user2/kaldi_ln/kaldi-master/src/transform/kaldi-transform.a /home/user2/kaldi_ln/kaldi-master/src/gmm/kaldi-gmm.a /home/user2/kaldi_ln/kaldi-master/src/tree/kaldi-tree.a /home/user2/kaldi_ln/kaldi-master/src/matrix/kaldi-matrix.a /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-util.a /home/user2/kaldi_ln/kaldi-master/src/base/kaldi-base.a /home/user2/kaldi_ln/kaldi-master/src/feat/kaldi-feat.a /home/user2/kaldi_ln/kaldi-master/src/ivector/kaldi-ivector.a /home/user2/kaldi_ln/kaldi-master/src/kws/kaldi-kws.a /home/user2/kaldi_ln/kaldi-master/src/fstext/kaldi-fstext.a /home/user2/kaldi_ln/kaldi-master/src/chain/kaldi-chain.a /home/user2/kaldi_ln/kaldi-master/src/online2/kaldi-online2.a /home/user2/kaldi_ln/kaldi-master/src/nnet2/kaldi-nnet2.a /home/user2/kaldi_ln/kaldi-master/src/cudamatrix/kaldi-cudamatrix.a /home/user2/kaldi_ln/kaldi-master/src/sgmm2/kaldi-sgmm2.a /home/user2/kaldi_ln/kaldi-master/src/nnet/kaldi-nnet.a /home/user2/kaldi_ln/kaldi-master/src/nnet3/kaldi-nnet3.a -Wl,-rpath=/home/user2/kaldi_ln/kaldi-master/tools/openfst/lib -rdynamic -L-lpython2.7 -lpthread -ldl -lutil -lm /home/user2/kaldi_ln/kaldi-master/tools/openfst/lib/libfst.so /usr/lib/libatlas.so.3 /usr/lib/libf77blas.so.3 /usr/lib/libcblas.so.3 /usr/lib/liblapack_atlas.so.3 -lm -lpthread -ldl -lpython2.7 -lboost_python -lboost_system In file included from /usr/include/python2.7/numpy/ndarraytypes.h:1777:0, from /usr/include/python2.7/numpy/ndarrayobject.h:18, from /usr/include/python2.7/numpy/arrayobject.h:4, from kaldi_io_internal.cpp:10: /usr/include/python2.7/numpy/npy_1_7_deprecated_api.h:15:2: warning: #warning "Using deprecated NumPy API, disable it by " "#defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp] #warning "Using deprecated NumPy API, disable it by " \ ^ kaldi_io_internal.cpp: In static member function ‘static bool PyObjectHolder::Write(std::ostream&, bool, const T&)’: kaldi_io_internal.cpp:76:12: error: ‘IsKaldiError’ is not a member of ‘kaldi’ if (!kaldi::IsKaldiError(e.what())) {std::cerr << e.what();} ^ kaldi_io_internal.cpp: In member function ‘bool PyObjectHolder::Read(std::istream&)’: kaldi_io_internal.cpp:104:12: error: ‘IsKaldiError’ is not a member of ‘kaldi’ if (!kaldi::IsKaldiError(e.what())) {std::cerr << e.what();} ^ kaldi_io_internal.cpp: In static member function ‘static bool PythonToKaldiHolder<Converter>::Write(std::ostream&, bool, const T&)’: kaldi_io_internal.cpp:238:12: error: ‘IsKaldiError’ is not a member of ‘kaldi’ if (!kaldi::IsKaldiError(e.what())) {std::cerr << e.what();} ^ In file included from /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table.h:468:0, from kaldi_io_internal.cpp:21: /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In instantiation of ‘void kaldi::SequentialTableReaderScriptImpl<Holder>::SwapHolder(Holder*) [with Holder = PythonToKaldiHolder<BoostPythonconverter<std::vector<std::pair<int, int> >, kaldi::BasicPairVectorHolder<int>, kaldi::BasicPairVectorHolder<int> > >]’: kaldi_io_internal.cpp:474:1: required from here /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:199:7: error: ‘class PythonToKaldiHolder<BoostPythonconverter<std::vector<std::pair<int, int> >, kaldi::BasicPairVectorHolder<int>, kaldi::BasicPairVectorHolder<int> > >’ has no member named ‘Swap’ holder_.Swap(other_holder); ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:202:7: error: ‘class PythonToKaldiHolder<BoostPythonconverter<std::vector<std::pair<int, int> >, kaldi::BasicPairVectorHolder<int>, kaldi::BasicPairVectorHolder<int> > >’ has no member named ‘Swap’ range_holder_.Swap(other_holder); ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In instantiation of ‘void kaldi::SequentialTableReaderArchiveImpl<Holder>::SwapHolder(Holder*) [with Holder = PythonToKaldiHolder<BoostPythonconverter<std::vector<std::pair<int, int> >, kaldi::BasicPairVectorHolder<int>, kaldi::BasicPairVectorHolder<int> > >]’: kaldi_io_internal.cpp:474:1: required from here /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:640:7: error: ‘class PythonToKaldiHolder<BoostPythonconverter<std::vector<std::pair<int, int> >, kaldi::BasicPairVectorHolder<int>, kaldi::BasicPairVectorHolder<int> > >’ has no member named ‘Swap’ holder_.Swap(other_holder); ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In instantiation of ‘bool kaldi::RandomAccessTableReaderScriptImpl<Holder>::HasKeyInternal(const string&, bool) [with Holder = PythonToKaldiHolder<BoostPythonconverter<std::vector<std::pair<int, int> >, kaldi::BasicPairVectorHolder<int>, kaldi::BasicPairVectorHolder<int> > >; std::string = std::basic_string<char>]’: kaldi_io_internal.cpp:474:1: required from here /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:1785:9: error: ‘class PythonToKaldiHolder<BoostPythonconverter<std::vector<std::pair<int, int> >, kaldi::BasicPairVectorHolder<int>, kaldi::BasicPairVectorHolder<int> > >’ has no member named ‘ExtractRange’ if (range_holder_.ExtractRange(holder_, range)) { ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In instantiation of ‘void kaldi::SequentialTableReaderScriptImpl<Holder>::SwapHolder(Holder*) [with Holder = PythonToKaldiHolder<BoostPythonconverter<std::vector<std::vector<int> >, kaldi::BasicVectorVectorHolder<int>, kaldi::BasicVectorVectorHolder<int> > >]’: kaldi_io_internal.cpp:474:1: required from here /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:199:7: error: ‘class PythonToKaldiHolder<BoostPythonconverter<std::vector<std::vector<int> >, kaldi::BasicVectorVectorHolder<int>, kaldi::BasicVectorVectorHolder<int> > >’ has no member named ‘Swap’ holder_.Swap(other_holder); ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:202:7: error: ‘class PythonToKaldiHolder<BoostPythonconverter<std::vector<std::vector<int> >, kaldi::BasicVectorVectorHolder<int>, kaldi::BasicVectorVectorHolder<int> > >’ has no member named ‘Swap’ range_holder_.Swap(other_holder); ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In instantiation of ‘void kaldi::SequentialTableReaderArchiveImpl<Holder>::SwapHolder(Holder*) [with Holder = PythonToKaldiHolder<BoostPythonconverter<std::vector<std::vector<int> >, kaldi::BasicVectorVectorHolder<int>, kaldi::BasicVectorVectorHolder<int> > >]’: kaldi_io_internal.cpp:474:1: required from here /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:640:7: error: ‘class PythonToKaldiHolder<BoostPythonconverter<std::vector<std::vector<int> >, kaldi::BasicVectorVectorHolder<int>, kaldi::BasicVectorVectorHolder<int> > >’ has no member named ‘Swap’ holder_.Swap(other_holder); ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In instantiation of ‘bool kaldi::RandomAccessTableReaderScriptImpl<Holder>::HasKeyInternal(const string&, bool) [with Holder = PythonToKaldiHolder<BoostPythonconverter<std::vector<std::vector<int> >, kaldi::BasicVectorVectorHolder<int>, kaldi::BasicVectorVectorHolder<int> > >; std::string = std::basic_string<char>]’: kaldi_io_internal.cpp:474:1: required from here /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:1785:9: error: ‘class PythonToKaldiHolder<BoostPythonconverter<std::vector<std::vector<int> >, kaldi::BasicVectorVectorHolder<int>, kaldi::BasicVectorVectorHolder<int> > >’ has no member named ‘ExtractRange’ if (range_holder_.ExtractRange(holder_, range)) { ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In instantiation of ‘void kaldi::SequentialTableReaderScriptImpl<Holder>::SwapHolder(Holder*) [with Holder = PythonToKaldiHolder<BoostPythonconverter<std::vector<int>, kaldi::BasicVectorHolder<int>, kaldi::BasicVectorHolder<int> > >]’: kaldi_io_internal.cpp:474:1: required from here /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:199:7: error: ‘class PythonToKaldiHolder<BoostPythonconverter<std::vector<int>, kaldi::BasicVectorHolder<int>, kaldi::BasicVectorHolder<int> > >’ has no member named ‘Swap’ holder_.Swap(other_holder); ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:202:7: error: ‘class PythonToKaldiHolder<BoostPythonconverter<std::vector<int>, kaldi::BasicVectorHolder<int>, kaldi::BasicVectorHolder<int> > >’ has no member named ‘Swap’ range_holder_.Swap(other_holder); ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In instantiation of ‘void kaldi::SequentialTableReaderArchiveImpl<Holder>::SwapHolder(Holder*) [with Holder = PythonToKaldiHolder<BoostPythonconverter<std::vector<int>, kaldi::BasicVectorHolder<int>, kaldi::BasicVectorHolder<int> > >]’: kaldi_io_internal.cpp:474:1: required from here /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:640:7: error: ‘class PythonToKaldiHolder<BoostPythonconverter<std::vector<int>, kaldi::BasicVectorHolder<int>, kaldi::BasicVectorHolder<int> > >’ has no member named ‘Swap’ holder_.Swap(other_holder); ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In instantiation of ‘bool kaldi::RandomAccessTableReaderScriptImpl<Holder>::HasKeyInternal(const string&, bool) [with Holder = PythonToKaldiHolder<BoostPythonconverter<std::vector<int>, kaldi::BasicVectorHolder<int>, kaldi::BasicVectorHolder<int> > >; std::string = std::basic_string<char>]’: kaldi_io_internal.cpp:474:1: required from here /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:1785:9: error: ‘class PythonToKaldiHolder<BoostPythonconverter<std::vector<int>, kaldi::BasicVectorHolder<int>, kaldi::BasicVectorHolder<int> > >’ has no member named ‘ExtractRange’ if (range_holder_.ExtractRange(holder_, range)) { ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In instantiation of ‘void kaldi::SequentialTableReaderScriptImpl<Holder>::SwapHolder(Holder*) [with Holder = PythonToKaldiHolder<VectorToNdArrayConverter<float> >]’: kaldi_io_internal.cpp:474:1: required from here /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:199:7: error: ‘class PythonToKaldiHolder<VectorToNdArrayConverter<float> >’ has no member named ‘Swap’ holder_.Swap(other_holder); ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:202:7: error: ‘class PythonToKaldiHolder<VectorToNdArrayConverter<float> >’ has no member named ‘Swap’ range_holder_.Swap(other_holder); ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In instantiation of ‘void kaldi::SequentialTableReaderArchiveImpl<Holder>::SwapHolder(Holder*) [with Holder = PythonToKaldiHolder<VectorToNdArrayConverter<float> >]’: kaldi_io_internal.cpp:474:1: required from here /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:640:7: error: ‘class PythonToKaldiHolder<VectorToNdArrayConverter<float> >’ has no member named ‘Swap’ holder_.Swap(other_holder); ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In instantiation of ‘bool kaldi::RandomAccessTableReaderScriptImpl<Holder>::HasKeyInternal(const string&, bool) [with Holder = PythonToKaldiHolder<VectorToNdArrayConverter<float> >; std::string = std::basic_string<char>]’: kaldi_io_internal.cpp:474:1: required from here /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:1785:9: error: ‘class PythonToKaldiHolder<VectorToNdArrayConverter<float> >’ has no member named ‘ExtractRange’ if (range_holder_.ExtractRange(holder_, range)) { ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In instantiation of ‘void kaldi::SequentialTableReaderScriptImpl<Holder>::SwapHolder(Holder*) [with Holder = PythonToKaldiHolder<VectorToNdArrayConverter<double> >]’: kaldi_io_internal.cpp:474:1: required from here /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:199:7: error: ‘class PythonToKaldiHolder<VectorToNdArrayConverter<double> >’ has no member named ‘Swap’ holder_.Swap(other_holder); ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:202:7: error: ‘class PythonToKaldiHolder<VectorToNdArrayConverter<double> >’ has no member named ‘Swap’ range_holder_.Swap(other_holder); ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In instantiation of ‘void kaldi::SequentialTableReaderArchiveImpl<Holder>::SwapHolder(Holder*) [with Holder = PythonToKaldiHolder<VectorToNdArrayConverter<double> >]’: kaldi_io_internal.cpp:474:1: required from here /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:640:7: error: ‘class PythonToKaldiHolder<VectorToNdArrayConverter<double> >’ has no member named ‘Swap’ holder_.Swap(other_holder); ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In instantiation of ‘bool kaldi::RandomAccessTableReaderScriptImpl<Holder>::HasKeyInternal(const string&, bool) [with Holder = PythonToKaldiHolder<VectorToNdArrayConverter<double> >; std::string = std::basic_string<char>]’: kaldi_io_internal.cpp:474:1: required from here /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:1785:9: error: ‘class PythonToKaldiHolder<VectorToNdArrayConverter<double> >’ has no member named ‘ExtractRange’ if (range_holder_.ExtractRange(holder_, range)) { ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In instantiation of ‘void kaldi::SequentialTableReaderScriptImpl<Holder>::SwapHolder(Holder*) [with Holder = PythonToKaldiHolder<MatrixToNdArrayConverter<float> >]’: kaldi_io_internal.cpp:474:1: required from here /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:199:7: error: ‘class PythonToKaldiHolder<MatrixToNdArrayConverter<float> >’ has no member named ‘Swap’ holder_.Swap(other_holder); ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:202:7: error: ‘class PythonToKaldiHolder<MatrixToNdArrayConverter<float> >’ has no member named ‘Swap’ range_holder_.Swap(other_holder); ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In instantiation of ‘void kaldi::SequentialTableReaderArchiveImpl<Holder>::SwapHolder(Holder*) [with Holder = PythonToKaldiHolder<MatrixToNdArrayConverter<float> >]’: kaldi_io_internal.cpp:474:1: required from here /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:640:7: error: ‘class PythonToKaldiHolder<MatrixToNdArrayConverter<float> >’ has no member named ‘Swap’ holder_.Swap(other_holder); ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In instantiation of ‘bool kaldi::RandomAccessTableReaderScriptImpl<Holder>::HasKeyInternal(const string&, bool) [with Holder = PythonToKaldiHolder<MatrixToNdArrayConverter<float> >; std::string = std::basic_string<char>]’: kaldi_io_internal.cpp:474:1: required from here /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:1785:9: error: ‘class PythonToKaldiHolder<MatrixToNdArrayConverter<float> >’ has no member named ‘ExtractRange’ if (range_holder_.ExtractRange(holder_, range)) { ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In instantiation of ‘void kaldi::SequentialTableReaderScriptImpl<Holder>::SwapHolder(Holder*) [with Holder = PythonToKaldiHolder<MatrixToNdArrayConverter<double> >]’: kaldi_io_internal.cpp:474:1: required from here /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:199:7: error: ‘class PythonToKaldiHolder<MatrixToNdArrayConverter<double> >’ has no member named ‘Swap’ holder_.Swap(other_holder); ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:202:7: error: ‘class PythonToKaldiHolder<MatrixToNdArrayConverter<double> >’ has no member named ‘Swap’ range_holder_.Swap(other_holder); ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In instantiation of ‘void kaldi::SequentialTableReaderArchiveImpl<Holder>::SwapHolder(Holder*) [with Holder = PythonToKaldiHolder<MatrixToNdArrayConverter<double> >]’: kaldi_io_internal.cpp:474:1: required from here /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:640:7: error: ‘class PythonToKaldiHolder<MatrixToNdArrayConverter<double> >’ has no member named ‘Swap’ holder_.Swap(other_holder); ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In instantiation of ‘bool kaldi::RandomAccessTableReaderScriptImpl<Holder>::HasKeyInternal(const string&, bool) [with Holder = PythonToKaldiHolder<MatrixToNdArrayConverter<double> >; std::string = std::basic_string<char>]’: kaldi_io_internal.cpp:474:1: required from here /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:1785:9: error: ‘class PythonToKaldiHolder<MatrixToNdArrayConverter<double> >’ has no member named ‘ExtractRange’ if (range_holder_.ExtractRange(holder_, range)) { ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In instantiation of ‘void kaldi::SequentialTableReaderScriptImpl<Holder>::SwapHolder(Holder*) [with Holder = PyObjectHolder]’: kaldi_io_internal.cpp:474:1: required from here /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:199:7: error: ‘class PyObjectHolder’ has no member named ‘Swap’ holder_.Swap(other_holder); ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:202:7: error: ‘class PyObjectHolder’ has no member named ‘Swap’ range_holder_.Swap(other_holder); ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In instantiation of ‘void kaldi::SequentialTableReaderArchiveImpl<Holder>::SwapHolder(Holder*) [with Holder = PyObjectHolder]’: kaldi_io_internal.cpp:474:1: required from here /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:640:7: error: ‘class PyObjectHolder’ has no member named ‘Swap’ holder_.Swap(other_holder); ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In instantiation of ‘bool kaldi::RandomAccessTableReaderScriptImpl<Holder>::HasKeyInternal(const string&, bool) [with Holder = PyObjectHolder; std::string = std::basic_string<char>]’: kaldi_io_internal.cpp:474:1: required from here /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:1785:9: error: ‘class PyObjectHolder’ has no member named ‘ExtractRange’ if (range_holder_.ExtractRange(holder_, range)) { ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In instantiation of ‘bool kaldi::SequentialTableReaderScriptImpl<Holder>::EnsureObjectLoaded() [with Holder = PythonToKaldiHolder<BoostPythonconverter<std::vector<std::pair<int, int> >, kaldi::BasicPairVectorHolder<int>, kaldi::BasicPairVectorHolder<int> > >]’: /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:163:29: required from ‘const T& kaldi::SequentialTableReaderScriptImpl<Holder>::Value() [with Holder = PythonToKaldiHolder<BoostPythonconverter<std::vector<std::pair<int, int> >, kaldi::BasicPairVectorHolder<int>, kaldi::BasicPairVectorHolder<int> > >; kaldi::SequentialTableReaderScriptImpl<Holder>::T = boost::python::api::object]’ kaldi_io_internal.cpp:474:1: required from here /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:339:9: error: ‘class PythonToKaldiHolder<BoostPythonconverter<std::vector<std::pair<int, int> >, kaldi::BasicPairVectorHolder<int>, kaldi::BasicPairVectorHolder<int> > >’ has no member named ‘ExtractRange’ if (!range_holder_.ExtractRange(holder_, range_)) { ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In instantiation of ‘bool kaldi::SequentialTableReaderScriptImpl<Holder>::EnsureObjectLoaded() [with Holder = PythonToKaldiHolder<BoostPythonconverter<std::vector<std::vector<int> >, kaldi::BasicVectorVectorHolder<int>, kaldi::BasicVectorVectorHolder<int> > >]’: /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:163:29: required from ‘const T& kaldi::SequentialTableReaderScriptImpl<Holder>::Value() [with Holder = PythonToKaldiHolder<BoostPythonconverter<std::vector<std::vector<int> >, kaldi::BasicVectorVectorHolder<int>, kaldi::BasicVectorVectorHolder<int> > >; kaldi::SequentialTableReaderScriptImpl<Holder>::T = boost::python::api::object]’ kaldi_io_internal.cpp:474:1: required from here /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:339:9: error: ‘class PythonToKaldiHolder<BoostPythonconverter<std::vector<std::vector<int> >, kaldi::BasicVectorVectorHolder<int>, kaldi::BasicVectorVectorHolder<int> > >’ has no member named ‘ExtractRange’ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In instantiation of ‘bool kaldi::SequentialTableReaderScriptImpl<Holder>::EnsureObjectLoaded() [with Holder = PythonToKaldiHolder<BoostPythonconverter<std::vector<int>, kaldi::BasicVectorHolder<int>, kaldi::BasicVectorHolder<int> > >]’: /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:163:29: required from ‘const T& kaldi::SequentialTableReaderScriptImpl<Holder>::Value() [with Holder = PythonToKaldiHolder<BoostPythonconverter<std::vector<int>, kaldi::BasicVectorHolder<int>, kaldi::BasicVectorHolder<int> > >; kaldi::SequentialTableReaderScriptImpl<Holder>::T = boost::python::api::object]’ kaldi_io_internal.cpp:474:1: required from here /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:339:9: error: ‘class PythonToKaldiHolder<BoostPythonconverter<std::vector<int>, kaldi::BasicVectorHolder<int>, kaldi::BasicVectorHolder<int> > >’ has no member named ‘ExtractRange’ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In instantiation of ‘bool kaldi::SequentialTableReaderScriptImpl<Holder>::EnsureObjectLoaded() [with Holder = PythonToKaldiHolder<VectorToNdArrayConverter<float> >]’: /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:163:29: required from ‘const T& kaldi::SequentialTableReaderScriptImpl<Holder>::Value() [with Holder = PythonToKaldiHolder<VectorToNdArrayConverter<float> >; kaldi::SequentialTableReaderScriptImpl<Holder>::T = boost::python::api::object]’ kaldi_io_internal.cpp:474:1: required from here /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:339:9: error: ‘class PythonToKaldiHolder<VectorToNdArrayConverter<float> >’ has no member named ‘ExtractRange’ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In instantiation of ‘bool kaldi::SequentialTableReaderScriptImpl<Holder>::EnsureObjectLoaded() [with Holder = PythonToKaldiHolder<VectorToNdArrayConverter<double> >]’: /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:163:29: required from ‘const T& kaldi::SequentialTableReaderScriptImpl<Holder>::Value() [with Holder = PythonToKaldiHolder<VectorToNdArrayConverter<double> >; kaldi::SequentialTableReaderScriptImpl<Holder>::T = boost::python::api::object]’ kaldi_io_internal.cpp:474:1: required from here /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:339:9: error: ‘class PythonToKaldiHolder<VectorToNdArrayConverter<double> >’ has no member named ‘ExtractRange’ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In instantiation of ‘bool kaldi::SequentialTableReaderScriptImpl<Holder>::EnsureObjectLoaded() [with Holder = PythonToKaldiHolder<MatrixToNdArrayConverter<float> >]’: /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:163:29: required from ‘const T& kaldi::SequentialTableReaderScriptImpl<Holder>::Value() [with Holder = PythonToKaldiHolder<MatrixToNdArrayConverter<float> >; kaldi::SequentialTableReaderScriptImpl<Holder>::T = boost::python::api::object]’ kaldi_io_internal.cpp:474:1: required from here /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:339:9: error: ‘class PythonToKaldiHolder<MatrixToNdArrayConverter<float> >’ has no member named ‘ExtractRange’ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In instantiation of ‘bool kaldi::SequentialTableReaderScriptImpl<Holder>::EnsureObjectLoaded() [with Holder = PythonToKaldiHolder<MatrixToNdArrayConverter<double> >]’: /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:163:29: required from ‘const T& kaldi::SequentialTableReaderScriptImpl<Holder>::Value() [with Holder = PythonToKaldiHolder<MatrixToNdArrayConverter<double> >; kaldi::SequentialTableReaderScriptImpl<Holder>::T = boost::python::api::object]’ kaldi_io_internal.cpp:474:1: required from here /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:339:9: error: ‘class PythonToKaldiHolder<MatrixToNdArrayConverter<double> >’ has no member named ‘ExtractRange’ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In instantiation of ‘bool kaldi::SequentialTableReaderScriptImpl<Holder>::EnsureObjectLoaded() [with Holder = PyObjectHolder]’: /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:163:29: required from ‘const T& kaldi::SequentialTableReaderScriptImpl<Holder>::Value() [with Holder = PyObjectHolder; kaldi::SequentialTableReaderScriptImpl<Holder>::T = boost::python::api::object]’ kaldi_io_internal.cpp:474:1: required from here /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:339:9: error: ‘class PyObjectHolder’ has no member named ‘ExtractRange’ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In member function ‘bool kaldi::RandomAccessTableReaderScriptImpl<Holder>::HasKeyInternal(const string&, bool) [with Holder = PyObjectHolder; std::string = std::basic_string<char>]’: /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:1797:3: warning: control reaches end of non-void function [-Wreturn-type] } ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In member function ‘bool kaldi::SequentialTableReaderScriptImpl<Holder>::EnsureObjectLoaded() [with Holder = PyObjectHolder]’: /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:348:3: warning: control reaches end of non-void function [-Wreturn-type] } ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In member function ‘bool kaldi::RandomAccessTableReaderScriptImpl<Holder>::HasKeyInternal(const string&, bool) [with Holder = PythonToKaldiHolder<MatrixToNdArrayConverter<double> >; std::string = std::basic_string<char>]’: /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:1797:3: warning: control reaches end of non-void function [-Wreturn-type] } ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In member function ‘bool kaldi::SequentialTableReaderScriptImpl<Holder>::EnsureObjectLoaded() [with Holder = PythonToKaldiHolder<MatrixToNdArrayConverter<double> >]’: /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:348:3: warning: control reaches end of non-void function [-Wreturn-type] } ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In member function ‘bool kaldi::RandomAccessTableReaderScriptImpl<Holder>::HasKeyInternal(const string&, bool) [with Holder = PythonToKaldiHolder<MatrixToNdArrayConverter<float> >; std::string = std::basic_string<char>]’: /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:1797:3: warning: control reaches end of non-void function [-Wreturn-type] } ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In member function ‘bool kaldi::SequentialTableReaderScriptImpl<Holder>::EnsureObjectLoaded() [with Holder = PythonToKaldiHolder<MatrixToNdArrayConverter<float> >]’: /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:348:3: warning: control reaches end of non-void function [-Wreturn-type] } ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In member function ‘bool kaldi::RandomAccessTableReaderScriptImpl<Holder>::HasKeyInternal(const string&, bool) [with Holder = PythonToKaldiHolder<VectorToNdArrayConverter<double> >; std::string = std::basic_string<char>]’: /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:1797:3: warning: control reaches end of non-void function [-Wreturn-type] } ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In member function ‘bool kaldi::SequentialTableReaderScriptImpl<Holder>::EnsureObjectLoaded() [with Holder = PythonToKaldiHolder<VectorToNdArrayConverter<double> >]’: /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:348:3: warning: control reaches end of non-void function [-Wreturn-type] } ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In member function ‘bool kaldi::RandomAccessTableReaderScriptImpl<Holder>::HasKeyInternal(const string&, bool) [with Holder = PythonToKaldiHolder<VectorToNdArrayConverter<float> >; std::string = std::basic_string<char>]’: /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:1797:3: warning: control reaches end of non-void function [-Wreturn-type] } ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In member function ‘bool kaldi::SequentialTableReaderScriptImpl<Holder>::EnsureObjectLoaded() [with Holder = PythonToKaldiHolder<VectorToNdArrayConverter<float> >]’: /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:348:3: warning: control reaches end of non-void function [-Wreturn-type] } ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In member function ‘bool kaldi::RandomAccessTableReaderScriptImpl<Holder>::HasKeyInternal(const string&, bool) [with Holder = PythonToKaldiHolder<BoostPythonconverter<std::vector<int>, kaldi::BasicVectorHolder<int>, kaldi::BasicVectorHolder<int> > >; std::string = std::basic_string<char>]’: /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:1797:3: warning: control reaches end of non-void function [-Wreturn-type] } ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In member function ‘bool kaldi::SequentialTableReaderScriptImpl<Holder>::EnsureObjectLoaded() [with Holder = PythonToKaldiHolder<BoostPythonconverter<std::vector<int>, kaldi::BasicVectorHolder<int>, kaldi::BasicVectorHolder<int> > >]’: /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:348:3: warning: control reaches end of non-void function [-Wreturn-type] } ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In member function ‘bool kaldi::RandomAccessTableReaderScriptImpl<Holder>::HasKeyInternal(const string&, bool) [with Holder = PythonToKaldiHolder<BoostPythonconverter<std::vector<std::vector<int> >, kaldi::BasicVectorVectorHolder<int>, kaldi::BasicVectorVectorHolder<int> > >; std::string = std::basic_string<char>]’: /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:1797:3: warning: control reaches end of non-void function [-Wreturn-type] } ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In member function ‘bool kaldi::SequentialTableReaderScriptImpl<Holder>::EnsureObjectLoaded() [with Holder = PythonToKaldiHolder<BoostPythonconverter<std::vector<std::vector<int> >, kaldi::BasicVectorVectorHolder<int>, kaldi::BasicVectorVectorHolder<int> > >]’: /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:348:3: warning: control reaches end of non-void function [-Wreturn-type] } ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In member function ‘bool kaldi::RandomAccessTableReaderScriptImpl<Holder>::HasKeyInternal(const string&, bool) [with Holder = PythonToKaldiHolder<BoostPythonconverter<std::vector<std::pair<int, int> >, kaldi::BasicPairVectorHolder<int>, kaldi::BasicPairVectorHolder<int> > >; std::string = std::basic_string<char>]’: /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:1797:3: warning: control reaches end of non-void function [-Wreturn-type] } ^ /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h: In member function ‘bool kaldi::SequentialTableReaderScriptImpl<Holder>::EnsureObjectLoaded() [with Holder = PythonToKaldiHolder<BoostPythonconverter<std::vector<std::pair<int, int> >, kaldi::BasicPairVectorHolder<int>, kaldi::BasicPairVectorHolder<int> > >]’: /home/user2/kaldi_ln/kaldi-master/src/util/kaldi-table-inl.h:348:3: warning: control reaches end of non-void function [-Wreturn-type] } ^ Makefile:34: recipe for target 'kaldi_io_internal.so' failed make[1]: *** [kaldi_io_internal.so] Error 1 make[1]: Leaving directory '/home/user2/kaldi_ln/kaldi-master/src/kaldi-python/kaldi-python' Makefile:12: recipe for target 'all' failed make: *** [all] Error 2

I wonder if you can give me some advices about how to fix it?

Best regards,
Iris

Daniel Povey

unread,
Sep 4, 2017, 2:12:41 AM9/4/17
to Iris Luo, kaldi-help, Ahilan Kanagasundram, Jan Chorowski
Avoid duplicate posts.
I don't recommend to use that code. Just copy to text using something like
copy-matrix scp:foo.scp ark,t:-
or whatever (read 'Kaldi I/O from a command perspective' to understand
this) and read the text from python.

Malo Grisard

unread,
May 16, 2018, 8:28:35 AM5/16/18
to kaldi-help
Hi all,

I used vesis's github https://github.com/vesis84/kaldi-io-for-python to extract bottleneck features from a trained nnet3 raw_dnn.
Basically my code does
- extract mfcc matrix for each utterance 
- extract bottleneck features for each utterance
- write bottleneck features in a "ark, scp" file structure 

MY PROBLEM :  kaldi_io.read_mat_ark('mfcc/raw_mfcc_train.52.ark') 
The mfcc's of my database are splitted in 70 ark files. the features extraction runs well until ark file 52 where I get this error :
 
"assert(format == 'CM ') # The formats CM2, CM3 are not supported... Format of header 'struct',"

Is it possible that ark files are not written in exactly the same way during steps/make_mfcc ? Is it possible that the header change ?

Thank you in advance for your answer
#----------------------------------code--------------------------------------------------
n_jobs=sys.argv[1]
mfcc_path = path+sys.argv[2] #'mfcc/ raw_mfcc_speechdat_all_only_Sx.' 
datadir=sys.argv[3] #train , speechdat_all_only_Sx , valid

dnn = nnet3read.nnet3read('/kaldi/egs/malo_lid/v1/exp/nnet3/final.txt', 'exp/nnet3/DNN_1024.h5', write_to_disk=False)

for i in range(1,int(n_jobs)+1):
ark_scp_output='ark:| copy-feats --compress=true ark:- ark,scp:/kaldi/egs/malo_lid/v1/bnf/' + datadir + '_feats_bnf.' + str(i)+'.ark,/kaldi/egs/malo_lid/v1/bnf/' + datadir + '_feats_bnf.'+str(i)+'.scp'
with kaldi_io.open_or_fd(ark_scp_output,'wb') as f:
mfcc2mat = { key:mat for key,mat in kaldi_io.read_mat_ark(mfcc_path +str(i)+'.ark') }
for utt,a in mfcc2mat.items():
   fea = nnet3_compute_bnf.splice_feats(np.array(a).T, w=21)
   # now we extract bottleneck features using the DNN parameters and the spliced 
   # features. 
   bnf = nnet3_compute_bnf.extract_bn_features(dnn, fea, nonlin='relu', renorm=True)
                   kaldi_io.write_mat(f, bnf.T, key=utt)
#----------------------------------code--------------------------------------------------

Daniel Povey

unread,
May 16, 2018, 1:06:39 PM5/16/18
to kaldi-help
You'd have to see what the 'format' variable is actually set to.
Anyway it seems to me that you can accomplish what you are trying to
do using the existing binaries.
Dan
> --
> Go to http://kaldi-asr.org/forums.html find out how to join
> ---
> You received this message because you are subscribed to the Google Groups
> "kaldi-help" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to kaldi-help+...@googlegroups.com.
> To post to this group, send email to kaldi...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/kaldi-help/b1e1ed4b-d444-40e8-b9aa-b70c7818b042%40googlegroups.com.

Malo Grisard

unread,
May 17, 2018, 3:49:12 AM5/17/18
to kaldi...@googlegroups.com
Hi Dan,

Thank you for your answer. 
I’ll try to figure out if the format can change between ark files.

Thank’s again,
Malo.



You received this message because you are subscribed to a topic in the Google Groups "kaldi-help" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/kaldi-help/hYfzRxlvw78/unsubscribe.
To unsubscribe from this group and all its topics, send an email to kaldi-help+...@googlegroups.com.

To post to this group, send email to kaldi...@googlegroups.com.

Daniel Povey

unread,
May 17, 2018, 3:56:15 PM5/17/18
to kaldi-help
It's more likely to be a corrupted file or a bug in the python reading
code; the format would be the same everywhere.
> https://groups.google.com/d/msgid/kaldi-help/FB3BD248-C270-480B-B909-FA3423F5CA99%40gmail.com.
Reply all
Reply to author
Forward
0 new messages