/py-kaldi-asr

Some simple wrappers around kaldi-asr intended to make using kaldi's (online) decoders as convenient as possible.

Primary LanguageC++Apache License 2.0Apache-2.0

py-kaldi-asr

Some simple wrappers around kaldi-asr intended to make using kaldi's online nnet3-chain decoders as convenient as possible. Kaldi's online GMM decoders are also supported.

Target audience are developers who would like to use kaldi-asr as-is for speech recognition in their application on GNU/Linux operating systems.

Constructive comments, patches and pull-requests are very welcome.

Getting Started

We recommend using pre-trained modules from the zamia-speech project to get started. There you will also find a tutorial complete with links to pre-built binary packages to get you up and running with free and open source speech recognition in a matter of minutes:

Zamia Speech Tutorial

Example Code

Simple wav file decoding:

from kaldiasr.nnet3 import KaldiNNet3OnlineModel, KaldiNNet3OnlineDecoder

MODELDIR    = 'data/models/kaldi-generic-en-tdnn_sp-latest'
WAVFILE     = 'data/dw961.wav'

kaldi_model = KaldiNNet3OnlineModel (MODELDIR)
decoder     = KaldiNNet3OnlineDecoder (kaldi_model)

if decoder.decode_wav_file(WAVFILE):

    s, l = decoder.get_decoded_string()

    print
    print u"*****************************************************************"
    print u"**", WAVFILE
    print u"**", s
    print u"** %s likelihood:" % MODELDIR, l
    print u"*****************************************************************"
    print

else:

    print "***ERROR: decoding of %s failed." % WAVFILE

Please check the examples directory for more example code.

Requirements

Setup Notes

Source

At the time of this writing kaldi-asr does not seem to have an official way to install it on a system.

So, for now we will rely on pkg-config to provide LIBS and CFLAGS for compilation: Create a file called kaldi-asr.pc somewhere in your PKG_CONFIG_PATH that provides this information - here is what such a file could look like (details depend on your OS environment):

kaldi_root=/opt/kaldi

Name: kaldi-asr
Description: kaldi-asr speech recognition toolkit
Version: 5.2
Requires: atlas
Libs: -L${kaldi_root}/tools/openfst/lib -L${kaldi_root}/src/lib -lkaldi-decoder -lkaldi-lat -lkaldi-fstext -lkaldi-hmm -lkaldi-feat -lkaldi-transform -lkaldi-gmm -lkaldi-tree -lkaldi-util -lkaldi-matrix -lkaldi-base -lkaldi-nnet3 -lkaldi-online2 -lkaldi-cudamatrix -lkaldi-ivector -lfst
Cflags: -I${kaldi_root}/src  -I${kaldi_root}/tools/openfst/include

make sure kaldi_root points to wherever your kaldi checkout lives in your filesystem.

ATLAS

You may need to install ATLAS headers even if you didn't need them to compile Kaldi.

$ sudo apt install libatlas-dev

License

My own code is Apache licensed unless otherwise noted in the script's copyright headers.

Some scripts and files are based on works of others, in those cases it is my intention to keep the original license intact. Please make sure to check the copyright headers inside for more information.

Author

Guenter Bartsch guenter@zamia.org
Kaldi 5.1 adaptation contributed by mariasmo https://github.com/mariasmo
Kaldi GMM model support contributed by David Zurow https://github.com/daanzu
Python > 3.5 support contributed by Jakob Kruse https://github.com/jakob1111996