parent
6af68efa00
commit
ff401732a3
|
@ -27,6 +27,7 @@ from util.config import Config, initialize_globals
|
||||||
from util.feeding import create_dataset, samples_to_mfccs, audiofile_to_features
|
from util.feeding import create_dataset, samples_to_mfccs, audiofile_to_features
|
||||||
from util.flags import create_flags, FLAGS
|
from util.flags import create_flags, FLAGS
|
||||||
from util.logging import log_info, log_error, log_debug, log_progress, create_progressbar
|
from util.logging import log_info, log_error, log_debug, log_progress, create_progressbar
|
||||||
|
from util.helpers import check_ctcdecoder_version; check_ctcdecoder_version()
|
||||||
|
|
||||||
|
|
||||||
# Graph Creation
|
# Graph Creation
|
||||||
|
|
|
@ -22,6 +22,7 @@ from util.evaluate_tools import calculate_report
|
||||||
from util.feeding import create_dataset
|
from util.feeding import create_dataset
|
||||||
from util.flags import create_flags, FLAGS
|
from util.flags import create_flags, FLAGS
|
||||||
from util.logging import log_error, log_progress, create_progressbar
|
from util.logging import log_error, log_progress, create_progressbar
|
||||||
|
from util.helpers import check_ctcdecoder_version; check_ctcdecoder_version()
|
||||||
|
|
||||||
|
|
||||||
def sparse_tensor_value_to_texts(value, alphabet):
|
def sparse_tensor_value_to_texts(value, alphabet):
|
||||||
|
|
|
@ -18,9 +18,12 @@ set -ex
|
||||||
tf_git_rev=$(git describe --long --tags)
|
tf_git_rev=$(git describe --long --tags)
|
||||||
echo "STABLE_TF_GIT_VERSION ${tf_git_rev}"
|
echo "STABLE_TF_GIT_VERSION ${tf_git_rev}"
|
||||||
|
|
||||||
pushd native_client
|
# use this trick to be able to use the script from anywhere
|
||||||
|
pushd $(dirname "$0")
|
||||||
ds_git_rev=$(git describe --long --tags)
|
ds_git_rev=$(git describe --long --tags)
|
||||||
echo "STABLE_DS_GIT_VERSION ${ds_git_rev}"
|
echo "STABLE_DS_GIT_VERSION ${ds_git_rev}"
|
||||||
|
ds_version=$(cat ../VERSION)
|
||||||
|
echo "STABLE_DS_VERSION ${ds_version}"
|
||||||
ds_graph_version=$(cat ../GRAPH_VERSION)
|
ds_graph_version=$(cat ../GRAPH_VERSION)
|
||||||
echo "STABLE_DS_GRAPH_VERSION ${ds_graph_version}"
|
echo "STABLE_DS_GRAPH_VERSION ${ds_graph_version}"
|
||||||
popd
|
popd
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.PHONY: bindings clean
|
.PHONY: bindings clean workspace_status.cc
|
||||||
|
|
||||||
include ../definitions.mk
|
include ../definitions.mk
|
||||||
|
|
||||||
|
@ -23,15 +23,22 @@ clean-keep-common:
|
||||||
|
|
||||||
clean: clean-keep-common
|
clean: clean-keep-common
|
||||||
rm -f common.a
|
rm -f common.a
|
||||||
|
rm workspace_status.cc
|
||||||
|
rm -fr bazel-out/
|
||||||
|
|
||||||
bindings: clean-keep-common
|
workspace_status.cc:
|
||||||
|
mkdir -p bazel-out/ && \
|
||||||
|
../bazel_workspace_status_cmd.sh > bazel-out/stable-status.txt && \
|
||||||
|
../gen_workspace_status.sh > $@
|
||||||
|
|
||||||
|
bindings: clean-keep-common workspace_status.cc
|
||||||
pip install --quiet $(PYTHON_PACKAGES) wheel==0.33.6 setuptools==39.1.0
|
pip install --quiet $(PYTHON_PACKAGES) wheel==0.33.6 setuptools==39.1.0
|
||||||
AS=$(AS) CC=$(CC) CXX=$(CXX) LD=$(LD) CFLAGS="$(CFLAGS) $(CXXFLAGS)" LDFLAGS="$(LDFLAGS_NEEDED)" $(PYTHON_PATH) $(NUMPY_INCLUDE) python ./setup.py build_ext --num_processes $(NUM_PROCESSES) $(PYTHON_PLATFORM_NAME) $(SETUP_FLAGS)
|
AS=$(AS) CC=$(CC) CXX=$(CXX) LD=$(LD) CFLAGS="$(CFLAGS) $(CXXFLAGS)" LDFLAGS="$(LDFLAGS_NEEDED)" $(PYTHON_PATH) $(NUMPY_INCLUDE) python ./setup.py build_ext --num_processes $(NUM_PROCESSES) $(PYTHON_PLATFORM_NAME) $(SETUP_FLAGS)
|
||||||
find temp_build -type f -name "*.o" -delete
|
find temp_build -type f -name "*.o" -delete
|
||||||
AS=$(AS) CC=$(CC) CXX=$(CXX) LD=$(LD) CFLAGS="$(CFLAGS) $(CXXFLAGS)" LDFLAGS="$(LDFLAGS_NEEDED)" $(PYTHON_PATH) $(NUMPY_INCLUDE) python ./setup.py bdist_wheel $(PYTHON_PLATFORM_NAME) $(SETUP_FLAGS)
|
AS=$(AS) CC=$(CC) CXX=$(CXX) LD=$(LD) CFLAGS="$(CFLAGS) $(CXXFLAGS)" LDFLAGS="$(LDFLAGS_NEEDED)" $(PYTHON_PATH) $(NUMPY_INCLUDE) python ./setup.py bdist_wheel $(PYTHON_PLATFORM_NAME) $(SETUP_FLAGS)
|
||||||
rm -rf temp_build
|
rm -rf temp_build
|
||||||
|
|
||||||
bindings-debug: clean-keep-common
|
bindings-debug: clean-keep-common workspace_status.cc
|
||||||
pip install --quiet $(PYTHON_PACKAGES) wheel==0.33.6 setuptools==39.1.0
|
pip install --quiet $(PYTHON_PACKAGES) wheel==0.33.6 setuptools==39.1.0
|
||||||
AS=$(AS) CC=$(CC) CXX=$(CXX) LD=$(LD) CFLAGS="$(CFLAGS) $(CXXFLAGS) -DDEBUG" LDFLAGS="$(LDFLAGS_NEEDED)" $(PYTHON_PATH) $(NUMPY_INCLUDE) python ./setup.py build_ext --debug --num_processes $(NUM_PROCESSES) $(PYTHON_PLATFORM_NAME) $(SETUP_FLAGS)
|
AS=$(AS) CC=$(CC) CXX=$(CXX) LD=$(LD) CFLAGS="$(CFLAGS) $(CXXFLAGS) -DDEBUG" LDFLAGS="$(LDFLAGS_NEEDED)" $(PYTHON_PATH) $(NUMPY_INCLUDE) python ./setup.py build_ext --debug --num_processes $(NUM_PROCESSES) $(PYTHON_PLATFORM_NAME) $(SETUP_FLAGS)
|
||||||
$(GENERATE_DEBUG_SYMS)
|
$(GENERATE_DEBUG_SYMS)
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
from __future__ import absolute_import, division, print_function
|
from __future__ import absolute_import, division, print_function
|
||||||
|
|
||||||
from . import swigwrapper
|
from . import swigwrapper # pylint: disable=import-self
|
||||||
|
|
||||||
|
__version__ = swigwrapper.__version__
|
||||||
|
|
||||||
class Scorer(swigwrapper.Scorer):
|
class Scorer(swigwrapper.Scorer):
|
||||||
"""Wrapper for Scorer.
|
"""Wrapper for Scorer.
|
||||||
|
|
|
@ -60,7 +60,8 @@ decoder_module = Extension(
|
||||||
'ctc_beam_search_decoder.cpp',
|
'ctc_beam_search_decoder.cpp',
|
||||||
'scorer.cpp',
|
'scorer.cpp',
|
||||||
'path_trie.cpp',
|
'path_trie.cpp',
|
||||||
'decoder_utils.cpp'],
|
'decoder_utils.cpp',
|
||||||
|
'workspace_status.cc'],
|
||||||
swig_opts=['-c++', '-extranative'],
|
swig_opts=['-c++', '-extranative'],
|
||||||
language='c++',
|
language='c++',
|
||||||
include_dirs=INCLUDES + [numpy_include],
|
include_dirs=INCLUDES + [numpy_include],
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
#include "ctc_beam_search_decoder.h"
|
#include "ctc_beam_search_decoder.h"
|
||||||
#define SWIG_FILE_WITH_INIT
|
#define SWIG_FILE_WITH_INIT
|
||||||
#define SWIG_PYTHON_STRICT_BYTE_CHAR
|
#define SWIG_PYTHON_STRICT_BYTE_CHAR
|
||||||
|
#include "workspace_status.h"
|
||||||
%}
|
%}
|
||||||
|
|
||||||
%include "pyabc.i"
|
%include "pyabc.i"
|
||||||
|
@ -27,6 +28,9 @@ import_array();
|
||||||
%include "scorer.h"
|
%include "scorer.h"
|
||||||
%include "ctc_beam_search_decoder.h"
|
%include "ctc_beam_search_decoder.h"
|
||||||
|
|
||||||
|
%constant const char* __version__ = ds_version();
|
||||||
|
%constant const char* __git_version__ = ds_git_version();
|
||||||
|
|
||||||
%template(IntVector) std::vector<int>;
|
%template(IntVector) std::vector<int>;
|
||||||
%template(OutputVector) std::vector<Output>;
|
%template(OutputVector) std::vector<Output>;
|
||||||
%template(OutputVectorVector) std::vector<std::vector<Output>>;
|
%template(OutputVectorVector) std::vector<std::vector<Output>>;
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
set -x
|
set -x
|
||||||
|
|
||||||
tf_git_version=$(grep "STABLE_TF_GIT_VERSION" "bazel-out/stable-status.txt" | cut -d' ' -f2)
|
tf_git_version=$(grep "STABLE_TF_GIT_VERSION" "bazel-out/stable-status.txt" | cut -d' ' -f2)
|
||||||
|
ds_version=$(grep "STABLE_DS_VERSION" "bazel-out/stable-status.txt" | cut -d' ' -f2)
|
||||||
ds_git_version=$(grep "STABLE_DS_GIT_VERSION" "bazel-out/stable-status.txt" | cut -d' ' -f2)
|
ds_git_version=$(grep "STABLE_DS_GIT_VERSION" "bazel-out/stable-status.txt" | cut -d' ' -f2)
|
||||||
ds_graph_version=$(grep "STABLE_DS_GRAPH_VERSION" "bazel-out/stable-status.txt" | cut -d' ' -f2)
|
ds_graph_version=$(grep "STABLE_DS_GRAPH_VERSION" "bazel-out/stable-status.txt" | cut -d' ' -f2)
|
||||||
|
|
||||||
|
@ -10,6 +11,9 @@ cat <<EOF
|
||||||
const char *tf_local_git_version() {
|
const char *tf_local_git_version() {
|
||||||
return "${tf_git_version}";
|
return "${tf_git_version}";
|
||||||
}
|
}
|
||||||
|
const char *ds_version() {
|
||||||
|
return "${ds_version}";
|
||||||
|
}
|
||||||
const char *ds_git_version() {
|
const char *ds_git_version() {
|
||||||
return "${ds_git_version}";
|
return "${ds_git_version}";
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
#define WORKSPACE_STATUS_H
|
#define WORKSPACE_STATUS_H
|
||||||
|
|
||||||
const char *tf_local_git_version();
|
const char *tf_local_git_version();
|
||||||
|
const char *ds_version();
|
||||||
const char *ds_git_version();
|
const char *ds_git_version();
|
||||||
const int ds_graph_version();
|
const int ds_graph_version();
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@ six
|
||||||
pyxdg
|
pyxdg
|
||||||
attrdict
|
attrdict
|
||||||
absl-py
|
absl-py
|
||||||
|
semver
|
||||||
|
|
||||||
# Requirements for building native_client files
|
# Requirements for building native_client files
|
||||||
setuptools
|
setuptools
|
||||||
|
|
|
@ -7,3 +7,28 @@ def secs_to_hours(secs):
|
||||||
hours, remainder = divmod(secs, 3600)
|
hours, remainder = divmod(secs, 3600)
|
||||||
minutes, seconds = divmod(remainder, 60)
|
minutes, seconds = divmod(remainder, 60)
|
||||||
return '%d:%02d:%02d' % (hours, minutes, seconds)
|
return '%d:%02d:%02d' % (hours, minutes, seconds)
|
||||||
|
|
||||||
|
# pylint: disable=import-outside-toplevel
|
||||||
|
def check_ctcdecoder_version():
|
||||||
|
import sys
|
||||||
|
import os
|
||||||
|
import semver
|
||||||
|
|
||||||
|
ds_version_s = open(os.path.join(os.path.dirname(__file__), '../VERSION')).read().strip()
|
||||||
|
|
||||||
|
try:
|
||||||
|
from ds_ctcdecoder import __version__ as decoder_version
|
||||||
|
except ImportError as e:
|
||||||
|
if e.msg.find('__version__') > 0:
|
||||||
|
print("DeepSpeech version ({ds_version}) requires CTC decoder to expose __version__. Please upgrade the ds_ctcdecoder package to version {ds_version}".format(ds_version=ds_version_s))
|
||||||
|
sys.exit(1)
|
||||||
|
raise e
|
||||||
|
|
||||||
|
decoder_version_s = decoder_version.decode()
|
||||||
|
|
||||||
|
rv = semver.compare(ds_version_s, decoder_version_s)
|
||||||
|
if rv != 0:
|
||||||
|
print("DeepSpeech version ({}) and CTC decoder version ({}) do not match. Please ensure matching versions are in use.".format(ds_version_s, decoder_version_s))
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
return rv
|
||||||
|
|
Loading…
Reference in New Issue