From bf2365e7cbcb54bc06baaae5c6d3fef7236626c4 Mon Sep 17 00:00:00 2001 From: Pete Warden Date: Wed, 16 Aug 2017 15:16:54 -0700 Subject: Android demo app for speech recognition PiperOrigin-RevId: 165504820 --- tensorflow/contrib/makefile/Makefile | 17 +++++++++++++++-- tensorflow/contrib/makefile/download_dependencies.sh | 2 ++ tensorflow/contrib/makefile/tf_op_files.txt | 8 ++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) (limited to 'tensorflow/contrib/makefile') diff --git a/tensorflow/contrib/makefile/Makefile b/tensorflow/contrib/makefile/Makefile index 2e45ddad54..8d200e4c0a 100644 --- a/tensorflow/contrib/makefile/Makefile +++ b/tensorflow/contrib/makefile/Makefile @@ -74,6 +74,7 @@ HOST_INCLUDES := \ -I$(MAKEFILE_DIR)/downloads/ \ -I$(MAKEFILE_DIR)/downloads/eigen \ -I$(MAKEFILE_DIR)/downloads/gemmlowp \ + -I$(MAKEFILE_DIR)/downloads/fft2d \ -I$(HOST_GENDIR) ifeq ($(HAS_GEN_HOST_PROTOC),true) HOST_INCLUDES += -I$(MAKEFILE_DIR)/gen/protobuf-host/include @@ -153,6 +154,7 @@ INCLUDES := \ -I$(MAKEFILE_DIR)/downloads/ \ -I$(MAKEFILE_DIR)/downloads/eigen \ -I$(MAKEFILE_DIR)/downloads/gemmlowp \ +-I$(MAKEFILE_DIR)/downloads/fft2d \ -I$(PROTOGENDIR) \ -I$(PBTGENDIR) ifeq ($(HAS_GEN_HOST_PROTOC),true) @@ -233,6 +235,7 @@ ifeq ($(TARGET),ANDROID) $(error "NDK_ROOT is not defined.") endif CXX := $(CC_PREFIX) $(NDK_ROOT)/toolchains/arm-linux-androideabi-4.9/prebuilt/$(OS_PATH)-x86_64/bin/arm-linux-androideabi-g++ + CC := $(CC_PREFIX) $(NDK_ROOT)/toolchains/arm-linux-androideabi-4.9/prebuilt/$(OS_PATH)-x86_64/bin/arm-linux-androideabi-gcc CXXFLAGS +=\ --sysroot $(NDK_ROOT)/platforms/android-21/arch-arm \ -Wno-narrowing \ @@ -240,7 +243,6 @@ ifeq ($(TARGET),ANDROID) -mfloat-abi=softfp \ -mfpu=neon \ -fPIE - INCLUDES = \ -I$(NDK_ROOT)/sources/android/support/include \ -I$(NDK_ROOT)/sources/cxx-stl/gnu-libstdc++/4.9/include \ @@ -249,6 +251,7 @@ ifeq ($(TARGET),ANDROID) -I$(MAKEFILE_DIR)/downloads/ \ -I$(MAKEFILE_DIR)/downloads/eigen \ -I$(MAKEFILE_DIR)/downloads/gemmlowp \ +-I$(MAKEFILE_DIR)/downloads/fft2d \ -I$(MAKEFILE_DIR)/gen/protobuf/include \ -I$(PROTOGENDIR) \ -I$(PBTGENDIR) @@ -501,6 +504,7 @@ $(wildcard tensorflow/core/grappler/clusters/single_machine.*) TF_CC_SRCS := $(filter-out $(CORE_CC_EXCLUDE_SRCS), $(CORE_CC_ALL_SRCS)) # Add in any extra files that don't fit the patterns easily TF_CC_SRCS += tensorflow/core/platform/default/gpu_tracer.cc +TF_CC_SRCS += tensorflow/contrib/makefile/downloads/fft2d/fftsg.c # Also include the op and kernel definitions. TF_CC_SRCS += $(shell cat $(MAKEFILE_DIR)/tf_op_files.txt) PBT_CC_SRCS := $(shell cat $(MAKEFILE_DIR)/tf_pb_text_files.txt) @@ -523,7 +527,8 @@ tensorflow/core/kernels/hexagon/hexagon_remote_fused_graph_executor_build.cc endif # File names of the intermediate files target compilation generates. -TF_CC_OBJS := $(addprefix $(OBJDIR), $(TF_CC_SRCS:.cc=.o)) +TF_CC_OBJS := $(addprefix $(OBJDIR), \ +$(patsubst %.cc,%.o,$(patsubst %.c,%.o,$(TF_CC_SRCS)))) PBT_GEN_FILES := $(addprefix $(PBTGENDIR), $(PBT_CC_SRCS)) PBT_OBJS := $(addprefix $(OBJDIR), $(PBT_CC_SRCS:.cc=.o)) PROTO_CC_SRCS := $(addprefix $(PROTOGENDIR), $(PROTO_SRCS:.proto=.pb.cc)) @@ -561,6 +566,14 @@ $(OBJDIR)%.o: %.cc | $(PBT_GEN_FILES) $(CXX) $(CXXFLAGS) $(DEPFLAGS) $(INCLUDES) -c $< -o $@ @mv -f $(DEPDIR)/$*.Td $(DEPDIR)/$*.d +# Matches on plain C files. +$(OBJDIR)%.o: %.c + @mkdir -p $(dir $@) + @mkdir -p $(dir $(DEPDIR)$*) + $(CXX) $(patsubst --std=c++11,--std=c99, $(CXXFLAGS)) -x c $(DEPFLAGS) \ +$(INCLUDES) -c $< -o $@ + @mv -f $(DEPDIR)/$*.Td $(DEPDIR)/$*.d + # Compiles C++ source files that have been generated by protoc. $(OBJDIR)%.pb.o: $(PROTOGENDIR)%.pb.cc @mkdir -p $(dir $@) diff --git a/tensorflow/contrib/makefile/download_dependencies.sh b/tensorflow/contrib/makefile/download_dependencies.sh index f123111df8..bc766c9e06 100755 --- a/tensorflow/contrib/makefile/download_dependencies.sh +++ b/tensorflow/contrib/makefile/download_dependencies.sh @@ -24,6 +24,7 @@ GEMMLOWP_URL="$(grep -o 'http.*github.com/google/gemmlowp/.*tar\.gz' "${BZL_FILE GOOGLETEST_URL="https://github.com/google/googletest/archive/release-1.8.0.tar.gz" PROTOBUF_URL="$(grep -o 'http.*github.com/google/protobuf/.*tar\.gz' "${BZL_FILE_PATH}" | grep -v bazel-mirror | head -n1)" RE2_URL="$(grep -o 'http.*github.com/google/re2/.*tar\.gz' "${BZL_FILE_PATH}" | grep -v bazel-mirror | head -n1)" +FFT2D_URL="$(grep -o 'http.*fft\.tgz' "${BZL_FILE_PATH}" | grep -v bazel-mirror | head -n1)" # TODO(petewarden): Some new code in Eigen triggers a clang bug with iOS arm64, # so work around it by patching the source. @@ -58,6 +59,7 @@ download_and_extract "${GEMMLOWP_URL}" "${DOWNLOADS_DIR}/gemmlowp" download_and_extract "${GOOGLETEST_URL}" "${DOWNLOADS_DIR}/googletest" download_and_extract "${PROTOBUF_URL}" "${DOWNLOADS_DIR}/protobuf" download_and_extract "${RE2_URL}" "${DOWNLOADS_DIR}/re2" +download_and_extract "${FFT2D_URL}" "${DOWNLOADS_DIR}/fft2d" replace_by_sed 's#static uint32x4_t p4ui_CONJ_XOR = vld1q_u32( conj_XOR_DATA );#static uint32x4_t p4ui_CONJ_XOR; // = vld1q_u32( conj_XOR_DATA ); - Removed by script#' \ "${DOWNLOADS_DIR}/eigen/Eigen/src/Core/arch/NEON/Complex.h" diff --git a/tensorflow/contrib/makefile/tf_op_files.txt b/tensorflow/contrib/makefile/tf_op_files.txt index 9132a4344b..a7f2be9790 100644 --- a/tensorflow/contrib/makefile/tf_op_files.txt +++ b/tensorflow/contrib/makefile/tf_op_files.txt @@ -38,6 +38,8 @@ tensorflow/core/kernels/stack_ops.cc tensorflow/core/kernels/split_op.cc tensorflow/core/kernels/split_v_op.cc tensorflow/core/kernels/split_lib_cpu.cc +tensorflow/core/kernels/spectrogram_op.cc +tensorflow/core/kernels/spectrogram.cc tensorflow/core/kernels/sparse_to_dense_op.cc tensorflow/core/kernels/sparse_matmul_op.cc tensorflow/core/kernels/softsign_op.cc @@ -100,6 +102,10 @@ tensorflow/core/kernels/mirror_pad_op_cpu_impl_2.cc tensorflow/core/kernels/mirror_pad_op_cpu_impl_3.cc tensorflow/core/kernels/mirror_pad_op_cpu_impl_4.cc tensorflow/core/kernels/mirror_pad_op_cpu_impl_5.cc +tensorflow/core/kernels/mfcc_op.cc +tensorflow/core/kernels/mfcc_mel_filterbank.cc +tensorflow/core/kernels/mfcc_dct.cc +tensorflow/core/kernels/mfcc.cc tensorflow/core/kernels/maxpooling_op.cc tensorflow/core/kernels/matmul_op.cc tensorflow/core/kernels/lrn_op.cc @@ -117,6 +123,7 @@ tensorflow/core/kernels/fill_functor.cc tensorflow/core/kernels/fifo_queue.cc tensorflow/core/kernels/fake_quant_ops.cc tensorflow/core/kernels/example_parsing_ops.cc +tensorflow/core/kernels/encode_wav_op.cc tensorflow/core/kernels/dynamic_stitch_op.cc tensorflow/core/kernels/dynamic_partition_op.cc tensorflow/core/kernels/decode_bmp_op.cc @@ -124,6 +131,7 @@ tensorflow/core/kernels/depthtospace_op.cc tensorflow/core/kernels/spacetodepth_op.cc tensorflow/core/kernels/dense_update_ops.cc tensorflow/core/kernels/deep_conv2d.cc +tensorflow/core/kernels/decode_wav_op.cc tensorflow/core/kernels/xsmm_conv2d.cc tensorflow/core/kernels/cwise_ops_common.cc tensorflow/core/kernels/cwise_op_tanh.cc -- cgit v1.2.3