Advertisement
Guest User

BUILD

a guest
Nov 1st, 2018
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.43 KB | None | 0 0
  1. # Description: Deepspeech native client library.
  2.  
  3. load("@org_tensorflow//tensorflow:tensorflow.bzl",
  4. "tf_cc_shared_object", "if_cuda")
  5.  
  6. genrule(
  7. name = "ds_git_version",
  8. outs = ["ds_version.h"],
  9. cmd = "$(location :ds_git_version.sh) >$@",
  10. tools = [":ds_git_version.sh"]
  11. )
  12.  
  13. KENLM_SOURCES = glob(["kenlm/lm/*.cc", "kenlm/util/*.cc", "kenlm/util/double-conversion/*.cc",
  14. "kenlm/lm/*.hh", "kenlm/util/*.hh", "kenlm/util/double-conversion/*.h"],
  15. exclude = ["kenlm/*/*test.cc", "kenlm/*/*main.cc"]) + glob(["boost_locale/**/*.hpp"])
  16.  
  17. KENLM_INCLUDES = [
  18. "kenlm",
  19. "boost_locale"
  20. ]
  21.  
  22. DECODER_SOURCES = glob([
  23. "ctcdecode/*.h",
  24. "ctcdecode/*.cpp",
  25. "ctcdecode/third_party/openfst-1.6.7/src/lib/*.cc"
  26. ]) + KENLM_SOURCES
  27.  
  28. DECODER_INCLUDES = [
  29. ".",
  30. "ctcdecode/third_party/openfst-1.6.7/src/include",
  31. "ctcdecode/third_party/ThreadPool"
  32. ] + KENLM_INCLUDES
  33.  
  34. LINUX_LINKOPTS = [
  35. "-ldl",
  36. "-pthread",
  37. "-Wl,-Bsymbolic",
  38. "-Wl,-Bsymbolic-functions",
  39. "-Wl,-export-dynamic"
  40. ]
  41.  
  42. tf_cc_shared_object(
  43. name = "libdeepspeech.so",
  44. srcs = ["deepspeech.cc",
  45. "deepspeech.h",
  46. "alphabet.h",
  47. "c_speech_features/c_speech_features.cpp",
  48. "kiss_fft130/kiss_fft.c",
  49. "kiss_fft130/tools/kiss_fftr.c",
  50. "c_speech_features/c_speech_features.h",
  51. "c_speech_features/c_speech_features_config.h",
  52. "kiss_fft130/kiss_fft.h",
  53. "kiss_fft130/_kiss_fft_guts.h",
  54. "kiss_fft130/tools/kiss_fftr.h",
  55. "ds_version.h"] +
  56. DECODER_SOURCES,
  57. # -Wno-sign-compare to silent a lot of warnings from tensorflow itself,
  58. # which makes it harder to see our own warnings
  59. #copts = ["-Wno-sign-compare", "-fvisibility=hidden"],
  60. linkopts = select({
  61. "//tensorflow:darwin": [],
  62. "//tensorflow:linux_x86_64": LINUX_LINKOPTS,
  63. "//tensorflow:rpi3": LINUX_LINKOPTS + ["-l:libstdc++.a"],
  64. "//tensorflow:rpi3-armv8": LINUX_LINKOPTS + ["-l:libstdc++.a"],
  65. "//tensorflow:windows": LINUX_LINKOPTS + ["-l:libstdc++.a"],
  66. "//tensorflow:windows_msvc": LINUX_LINKOPTS + ["-l:libstdc++.a"],
  67. }),
  68. deps = [
  69. "//tensorflow/core:core_cpu",
  70. "//tensorflow/core:direct_session",
  71. "//third_party/eigen3",
  72. #"//tensorflow/core:all_kernels",
  73. ### => Trying to be more fine-grained
  74. ### Use bin/ops_in_graph.py to list all the ops used by a frozen graph.
  75. ### CPU only build, libdeepspeech.so file size reduced by ~50%
  76. "//tensorflow/core/kernels:dense_update_ops", # Assign
  77. "//tensorflow/core/kernels:constant_op", # Const
  78. "//tensorflow/core/kernels:immutable_constant_op", # ImmutableConst
  79. "//tensorflow/core/kernels:identity_op", # Identity
  80. "//tensorflow/core/kernels:softmax_op", # Softmax
  81. "//tensorflow/core/kernels:transpose_op", # Transpose
  82. "//tensorflow/core/kernels:reshape_op", # Reshape
  83. "//tensorflow/core/kernels:shape_ops", # Shape
  84. "//tensorflow/core/kernels:concat_op", # ConcatV2
  85. "//tensorflow/core/kernels:split_op", # Split
  86. "//tensorflow/core/kernels:variable_ops", # VariableV2
  87. "//tensorflow/core/kernels:relu_op", # Relu
  88. "//tensorflow/core/kernels:bias_op", # BiasAdd
  89. "//tensorflow/core/kernels:math", # Range, MatMul
  90. "//tensorflow/core/kernels:control_flow_ops", # Enter
  91. "//tensorflow/core/kernels:tile_ops", # Tile
  92. "//tensorflow/core/kernels:gather_op", # Gather
  93. "//tensorflow/contrib/rnn:lstm_ops_kernels", # BlockLSTM
  94. "//tensorflow/core/kernels:random_ops", # RandomGammaGrad
  95. "//tensorflow/core/kernels:pack_op", # Pack
  96. "//tensorflow/core/kernels:gather_nd_op", # GatherNd
  97. #### Needed by production model produced without "--use_seq_length False"
  98. #"//tensorflow/core/kernels:logging_ops", # Assert
  99. #"//tensorflow/core/kernels:reverse_sequence_op", # ReverseSequence
  100. ] + if_cuda([
  101. "//tensorflow/core:core",
  102. ]),
  103. includes = ["c_speech_features", "kiss_fft130"] + DECODER_INCLUDES,
  104. defines = ["KENLM_MAX_ORDER=6"],
  105. )
  106.  
  107. tf_cc_shared_object(
  108. name = "libctc_decoder_with_kenlm.so",
  109. srcs = [
  110. "beam_search.cc",
  111. "beam_search.h",
  112. "alphabet.h",
  113. "trie_node.h"
  114. ] +
  115. KENLM_SOURCES,
  116. includes = KENLM_INCLUDES,
  117. copts = ["-std=c++11"],
  118. defines = ["KENLM_MAX_ORDER=6"],
  119. deps = ["//tensorflow/core:framework_headers_lib",
  120. "//tensorflow/core/util/ctc",
  121. "//third_party/eigen3",
  122. ],
  123. )
  124.  
  125. cc_binary(
  126. name = "generate_trie",
  127. srcs = [
  128. "generate_trie.cpp",
  129. "alphabet.h",
  130. ] + DECODER_SOURCES,
  131. includes = DECODER_INCLUDES,
  132. copts = ["-std=c++11"],
  133. linkopts = ["-lm", "-ldl", "-pthread"],
  134. defines = ["KENLM_MAX_ORDER=6"],
  135. )
  136.  
  137. cc_binary(
  138. name = "trie_load",
  139. srcs = [
  140. "trie_load.cc",
  141. "alphabet.h",
  142. ] + DECODER_SOURCES,
  143. includes = DECODER_INCLUDES,
  144. copts = ["-std=c++11"],
  145. linkopts = ["-lm", "-ldl", "-pthread"],
  146. defines = ["KENLM_MAX_ORDER=6"],
  147. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement