1 2 LOCAL_PATH:= $(call my-dir) 3 ######################################## 4 5 copy_from := \ 6 baseline11k.par \ 7 baseline8k.par \ 8 baseline.par \ 9 dictionary/basic.ok \ 10 dictionary/enroll.ok \ 11 dictionary/cmu6plus.ok.zip \ 12 g2p/en-US-ttp.data \ 13 models/generic.swiarb \ 14 models/generic11.lda \ 15 models/generic11_f.swimdl \ 16 models/generic11_m.swimdl \ 17 models/generic8.lda \ 18 models/generic8_f.swimdl \ 19 models/generic8_m.swimdl \ 20 21 copy_to := $(addprefix $(TARGET_OUT)/usr/srec/config/en.us/,$(copy_from)) 22 23 $(copy_to) : $(TARGET_OUT)/usr/srec/config/en.us/% : $(LOCAL_PATH)/% | $(ACP) 24 $(transform-prebuilt-to-target) 25 26 # ALL_PREBUILT is deprecated. Moved to config.mk 27 # ALL_PREBUILT += $(copy_to) 28 29 30 # define paths to some grammar tools 31 GRXML=$(HOST_OUT_EXECUTABLES)/grxmlcompile 32 MAKE_G2G=$(HOST_OUT_EXECUTABLES)/make_g2g 33 DEFAULT_PAR=$(ASR_ROOT_DIR)/config/en.us/baseline11k.par 34 G2G_INSTALL_PATH=$(TARGET_OUT)/usr/srec/config/en.us/grammars 35 36 srec_grammars : \ 37 $(G2G_INSTALL_PATH)/enroll.g2g \ 38 $(G2G_INSTALL_PATH)/bothtags5.g2g \ 39 $(G2G_INSTALL_PATH)/dynamic-test.g2g \ 40 $(G2G_INSTALL_PATH)/digits.g2g \ 41 $(G2G_INSTALL_PATH)/boolean.g2g \ 42 $(G2G_INSTALL_PATH)/homonym_test1.g2g \ 43 $(G2G_INSTALL_PATH)/homonym_test2.g2g \ 44 $(G2G_INSTALL_PATH)/homonym_test3.g2g \ 45 $(G2G_INSTALL_PATH)/homonym_test4.g2g \ 46 $(G2G_INSTALL_PATH)/ipaq_commands.g2g \ 47 $(G2G_INSTALL_PATH)/lookup.g2g \ 48 49 # ALL_PREBUILT is deprecated. Moved to config.mk 50 # ALL_PREBUILT += $(G2G_INSTALL_PATH)/VoiceDialer.g2g \ 51 # $(G2G_INSTALL_PATH)/boolean.g2g \ 52 # $(G2G_INSTALL_PATH)/phone_type_choice.g2g 53 54 #--------------------------------------------------------------------------------- 55 # Explicit rules. 56 # Those without explicit rules are subject to the rule at the end of this makefile 57 #--------------------------------------------------------------------------------- 58 59 # This needs an explicit rule to specify the vocabulary (dictionary) 60 $(G2G_INSTALL_PATH)/enroll.g2g: $(LOCAL_PATH)/grammars/enroll.grxml $(GRXML) $(MAKE_G2G) $(DEFAULT_PAR) $(LOCAL_PATH)/dictionary/enroll.ok 61 mkdir -p $(G2G_INSTALL_PATH) 62 $(GRXML) -par $(DEFAULT_PAR) -grxml $< -vocab dictionary/enroll.ok -outdir $(G2G_INSTALL_PATH) 63 $(MAKE_G2G) -base $(G2G_INSTALL_PATH)/enroll,addWords=0 -out $@ 64 (cd $(G2G_INSTALL_PATH); rm -f $*.Grev2.det.txt $*.map $*.omap $*.P.txt $*.params $*.PCLG.txt $*.script) 65 66 67 #--------------------------------------------------------------------------------- 68 # Those without explicit rules are subject to the rule below 69 #--------------------------------------------------------------------------------- 70 71 $(G2G_INSTALL_PATH)/%.g2g: $(LOCAL_PATH)/grammars/%.grxml $(GRXML) $(MAKE_G2G) $(DEFAULT_PAR) $(LOCAL_PATH)/dictionary/cmu6plus.ok.zip 72 mkdir -p $(G2G_INSTALL_PATH) 73 $(GRXML) -par $(DEFAULT_PAR) -grxml $< -outdir $(G2G_INSTALL_PATH) 74 $(MAKE_G2G) -base $(G2G_INSTALL_PATH)/$*,addWords=0 -out $@ 75 (cd $(G2G_INSTALL_PATH); rm -f $*.Grev2.det.txt $*.map $*.omap $*.P.txt $*.params $*.PCLG.txt $*.script) 76 77 #----------------------------------------------------------------- 78 # this rule generates cmu6plus.ok.zip, which is built manually and checked in. 79 # the grxml compiler expects this (and other) data files to be here. 80 # $ g4 edit external/srec/config/en.us/dictionary/cmu6plus.ok.zip 81 # $ make cmu6plus.ok.zip 82 # 83 # To make the resulting zip as small as possible, install advzip from 84 # the advancecomp suite of compression utilities. (On ubuntu, 85 # "apt-get install advancecomp".) It makes the output about 10% smaller. 86 # This make rule will fall back to 'zip' if 'advzip' is not 87 # available. 88 #----------------------------------------------------------------- 89 90 CMU2NUANCE=$(HOST_OUT_EXECUTABLES)/cmu2nuance 91 DICT_DIR=$(ASR_ROOT_DIR)/config/en.us/dictionary 92 93 cmu6plus.ok.zip: $(CMU2NUANCE) $(DICT_DIR)/c0.6 $(DICT_DIR)/numbers.ok $(DICT_DIR)/fixit.ok $(DICT_DIR)/enroll.ok 94 $(CMU2NUANCE) < $(DICT_DIR)/c0.6 > $(DICT_DIR)/c0.6.ok 95 sort -u $(DICT_DIR)/c0.6.ok $(DICT_DIR)/numbers.ok $(DICT_DIR)/fixit.ok $(DICT_DIR)/enroll.ok > $(DICT_DIR)/cmu6plus.ok 96 $(hide) (cd $(DICT_DIR)/ && advzip -a -4 cmu6plus.ok.zip cmu6plus.ok || \ 97 (zip cmu6plus.ok.zip cmu6plus.ok && \ 98 echo -e "\n+++ advzip not installed; fell back to zip\n cmu6plus.ok.zip (`du -h cmu6plus.ok.zip | cut -f 1`) could be ~10% smaller with advzip\n")) 99 100 101 #----------------------------------------------------------------- 102 # build cmu2nuance dictionary conversion program, to prevent bitrot 103 #----------------------------------------------------------------- 104 include $(CLEAR_VARS) 105 LOCAL_SRC_FILES := dictionary/cmu2nuance.cpp 106 LOCAL_MODULE := cmu2nuance 107 LOCAL_MODULE_TAGS := optional 108 LOCAL_32_BIT_ONLY := true 109 110 include $(BUILD_HOST_EXECUTABLE) 111