Skip to content
Snippets Groups Projects
Commit cde5f180 authored by tanel's avatar tanel
Browse files

cosmetic fixes

parent 45d19375
Branches
No related tags found
No related merge requests found
...@@ -25,10 +25,17 @@ cd src ...@@ -25,10 +25,17 @@ cd src
Compile, specifying Kaldi's root directory: Compile, specifying Kaldi's root directory:
make depend
KALDI_ROOT=/path/of/kaldi-trunk make KALDI_ROOT=/path/of/kaldi-trunk make
This should result in 'libgstkaldionline2.so'. This should result in 'libgstkaldionline2.so'.
Test id GStreamer can access the plugin:
GST_PLUGIN_PATH=. gst-inspect-1.0 kaldinnet2onlinedecoder
HOW TO USE IT HOW TO USE IT
------------- -------------
......
all: all:
KALDI_ROOT?=/home/tanel/tools/kaldi-online KALDI_ROOT?=~/tools/kaldi-online
ifeq ("$(wildcard $(KALDI_ROOT)/src/kaldi.mk)","")
$(error Cannot find Kaldi's makefile $(KALDI_ROOT)/src/kaldi.mk. \
Specify Kaldi's root directory using KALDI_ROOT when issuing make, e.g.: `KALDI_ROOT=~/tools/kaldi-trunk make` )
endif
include $(KALDI_ROOT)/src/kaldi.mk include $(KALDI_ROOT)/src/kaldi.mk
ifneq ($(KALDI_FLAVOR), dynamic) ifneq ($(KALDI_FLAVOR), dynamic)
......
/* /*
* GStreamer * GStreamer
* Copyright (C) 2005 Thomas Vander Stichele <thomas@apestaart.org> * Copyright 2014 Tanel Alumae <tanel.alumae@phon.ioc.ee>
* Copyright (C) 2005 Ronald S. Bultje <rbultje@ronald.bitfreak.net> * Copyright 2014 Johns Hopkins University (author: Daniel Povey)
* Copyright (C) 2014 Tanel Alumae <<user@hostname.org>>
* *
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
* *
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
* *
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * Licensed under the Apache License, Version 2.0 (the "License");
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * you may not use this file except in compliance with the License.
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * You may obtain a copy of the License at
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
* *
* Alternatively, the contents of this file may be used under the * http://www.apache.org/licenses/LICENSE-2.0
* GNU Lesser General Public License Version 2.1 (the "LGPL"), in
* which case the following provisions apply instead of the ones
* mentioned above:
* *
* This library is free software; you can redistribute it and/or * THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* modify it under the terms of the GNU Library General Public * KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
* License as published by the Free Software Foundation; either * WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
* version 2 of the License, or (at your option) any later version. * MERCHANTABLITY OR NON-INFRINGEMENT.
* * See the Apache 2 License for the specific language governing permissions and
* This library is distributed in the hope that it will be useful, * limitations under the License.
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/ */
/** /**
* SECTION:element-kaldinnet2onlinedecoder * SECTION:element-kaldinnet2onlinedecoder
* *
* FIXME:Describe kaldinnet2onlinedecoder here. * Converts speech to text using Kaldi's SingleUtteranceNnet2Decoder.
* *
* <refsect2>
* <title>Example launch line</title> * <title>Example launch line</title>
* |[ * |[
* gst-launch -v -m fakesrc ! kaldinnet2onlinedecoder ! fakesink silent=TRUE * GST_PLUGIN_PATH=. gst-launch-1.0 --gst-debug="kaldinnet2onlinedecoder:5" -q \
* filesrc location=123_456.wav ! decodebin ! audioconvert ! audioresample ! \
* kaldinnet2onlinedecoder model=nnet2_online_ivector_online/final.mdl fst=tri3b/graph/HCLG.fst word-syms=tri3b/graph/words.txt \
* feature-type=mfcc mfcc-config=nnet2_online_ivector_online/conf/mfcc.conf \
* ivector-extraction-config=ivector_extractor.conf max-active=7000 beam=11.0 lattice-beam=5.0 \
* do-endpointing=true endpoint-silence-phones="1:2:3:4:5" ! filesink location=tmp.txt
* ]| * ]|
* </refsect2> * </refsect2>
*/ */
...@@ -766,11 +746,22 @@ static void gst_kaldinnet2onlinedecoder_finalize(GObject * object) { ...@@ -766,11 +746,22 @@ static void gst_kaldinnet2onlinedecoder_finalize(GObject * object) {
delete filter->endpoint_config; delete filter->endpoint_config;
delete filter->feature_config; delete filter->feature_config;
delete filter->nnet2_decoding_config; delete filter->nnet2_decoding_config;
if (filter->simple_options) {
delete filter->simple_options; delete filter->simple_options;
filter->simple_options = NULL; if (filter->feature_info) {
delete filter->feature_info;
}
if (filter->trans_model) {
delete filter->trans_model;
}
if (filter->nnet) {
delete filter->nnet;
}
if (filter->decode_fst) {
delete filter->decode_fst;
}
if (filter->word_syms) {
delete filter->word_syms;
} }
G_OBJECT_CLASS(parent_class)->finalize(object); G_OBJECT_CLASS(parent_class)->finalize(object);
} }
...@@ -799,16 +790,19 @@ static gboolean kaldinnet2onlinedecoder_init( ...@@ -799,16 +790,19 @@ static gboolean kaldinnet2onlinedecoder_init(
* compile this code. GST_PLUGIN_DEFINE needs PACKAGE to be defined. * compile this code. GST_PLUGIN_DEFINE needs PACKAGE to be defined.
*/ */
#ifndef PACKAGE #ifndef PACKAGE
#define PACKAGE "myfirstkaldinnet2onlinedecoder" #define PACKAGE "Kaldi"
#endif #endif
/* gstreamer looks for this structure to register kaldinnet2onlinedecoders /* gstreamer looks for this structure to register kaldinnet2onlinedecoders
* *
* exchange the string 'Template kaldinnet2onlinedecoder' with your kaldinnet2onlinedecoder description * exchange the string 'Template kaldinnet2onlinedecoder' with your kaldinnet2onlinedecoder description
*
* License is specified as "unknown" because gstreamer doesn't recognize "Apache" as
* a license and blacklists the module :S
*/ */
GST_PLUGIN_DEFINE(GST_VERSION_MAJOR, GST_VERSION_MINOR, kaldinnet2onlinedecoder, GST_PLUGIN_DEFINE(GST_VERSION_MAJOR, GST_VERSION_MINOR, kaldinnet2onlinedecoder,
"Template kaldinnet2onlinedecoder", "kaldinnet2onlinedecoder",
kaldinnet2onlinedecoder_init, VERSION, "LGPL", "GStreamer", kaldinnet2onlinedecoder_init, VERSION, "unknown", "GStreamer",
"http://gstreamer.net/") "http://gstreamer.net/")
} }
...@@ -102,7 +102,6 @@ struct _Gstkaldinnet2onlinedecoder ...@@ -102,7 +102,6 @@ struct _Gstkaldinnet2onlinedecoder
nnet2::AmNnet *nnet; nnet2::AmNnet *nnet;
fst::Fst<fst::StdArc> *decode_fst; fst::Fst<fst::StdArc> *decode_fst;
fst::SymbolTable *word_syms; fst::SymbolTable *word_syms;
//OnlineNnet2FeaturePipeline *feature_pipeline;
}; };
struct _Gstkaldinnet2onlinedecoderClass struct _Gstkaldinnet2onlinedecoderClass
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment