From 753df1df40256a75c643f4fbfde408949785f415 Mon Sep 17 00:00:00 2001 From: "Reece H. Dunn" Date: Mon, 18 Mar 2013 12:22:05 +0000 Subject: [PATCH] mkdictlist: only generate rules for building dictionaries that have corresponding voices --- Makefile.am | 33 --------------------------------- mkdictlist | 27 ++++++++++++++++++++++++--- 2 files changed, 24 insertions(+), 36 deletions(-) diff --git a/Makefile.am b/Makefile.am index cfc97d0c..23907a47 100644 --- a/Makefile.am +++ b/Makefile.am @@ -148,7 +148,6 @@ dictionaries: \ espeak-data/fr_dict \ espeak-data/ga_dict \ espeak-data/grc_dict \ - espeak-data/hbs_dict \ espeak-data/hi_dict \ espeak-data/ht_dict \ espeak-data/hu_dict \ @@ -169,13 +168,11 @@ dictionaries: \ espeak-data/mk_dict \ espeak-data/ml_dict \ espeak-data/mt_dict \ - espeak-data/nci_dict \ espeak-data/ne_dict \ espeak-data/nl_dict \ espeak-data/no_dict \ espeak-data/nso_dict \ espeak-data/pa_dict \ - espeak-data/pap_dict \ espeak-data/pl_dict \ espeak-data/prs_dict \ espeak-data/pt_dict \ @@ -235,18 +232,6 @@ dictsource/bg_extra: espeak-data/bg_dict: src/espeak espeak-data/phontab dictsource/bg_list dictsource/bg_listx dictsource/bg_rules dictsource/bg_extra cd dictsource && ../src/espeak --compile=bg && cd .. -bn: espeak-data/bn_dict -dictsource/bn_extra: - touch dictsource/bn_extra -espeak-data/bn_dict: src/espeak espeak-data/phontab dictsource/bn_list dictsource/bn_rules dictsource/bn_extra - cd dictsource && ../src/espeak --compile=bn && cd .. - -bo: espeak-data/bo_dict -dictsource/bo_extra: - touch dictsource/bo_extra -espeak-data/bo_dict: src/espeak espeak-data/phontab dictsource/bo_rules dictsource/bo_extra - cd dictsource && ../src/espeak --compile=bo && cd .. - ca: espeak-data/ca_dict dictsource/ca_extra: touch dictsource/ca_extra @@ -343,12 +328,6 @@ dictsource/grc_extra: espeak-data/grc_dict: src/espeak espeak-data/phontab dictsource/grc_list dictsource/grc_rules dictsource/grc_extra cd dictsource && ../src/espeak --compile=grc && cd .. -hbs: espeak-data/hbs_dict -dictsource/hbs_extra: - touch dictsource/hbs_extra -espeak-data/hbs_dict: src/espeak espeak-data/phontab dictsource/hbs_list dictsource/hbs_rules dictsource/hbs_extra - cd dictsource && ../src/espeak --compile=hbs && cd .. - hi: espeak-data/hi_dict dictsource/hi_extra: touch dictsource/hi_extra @@ -469,12 +448,6 @@ dictsource/mt_extra: espeak-data/mt_dict: src/espeak espeak-data/phontab dictsource/mt_list dictsource/mt_rules dictsource/mt_extra cd dictsource && ../src/espeak --compile=mt && cd .. -nci: espeak-data/nci_dict -dictsource/nci_extra: - touch dictsource/nci_extra -espeak-data/nci_dict: src/espeak espeak-data/phontab dictsource/nci_list dictsource/nci_rules dictsource/nci_extra - cd dictsource && ../src/espeak --compile=nci && cd .. - ne: espeak-data/ne_dict dictsource/ne_extra: touch dictsource/ne_extra @@ -505,12 +478,6 @@ dictsource/pa_extra: espeak-data/pa_dict: src/espeak espeak-data/phontab dictsource/pa_list dictsource/pa_rules dictsource/pa_extra cd dictsource && ../src/espeak --compile=pa && cd .. -pap: espeak-data/pap_dict -dictsource/pap_extra: - touch dictsource/pap_extra -espeak-data/pap_dict: src/espeak espeak-data/phontab dictsource/pap_list dictsource/pap_rules dictsource/pap_extra - cd dictsource && ../src/espeak --compile=pap && cd .. - pl: espeak-data/pl_dict dictsource/pl_extra: touch dictsource/pl_extra diff --git a/mkdictlist b/mkdictlist index 2b7a1403..57ecdac3 100755 --- a/mkdictlist +++ b/mkdictlist @@ -8,14 +8,35 @@ import sys import os +voices = set() dictionaries = {} +# Map voice names to dictionaries when these do not match. +special_voices = { + 'zh-yue': 'zhy', +} + +def find_voices(path): + for filename in os.listdir(path): + voice_path = os.path.join(path, filename) + if os.path.isdir(voice_path): + if not filename in ['!v', 'mb']: + find_voices(voice_path) + else: + if filename in special_voices.keys(): + voices.add(special_voices[filename]) + else: + voices.add(filename) + +find_voices('espeak-data/voices') + for filename in os.listdir('dictsource'): if filename.endswith('_rules') or filename.endswith('_list') or filename.endswith('_listx'): dic, cat = filename.split('_') - if not dic in dictionaries.keys(): - dictionaries[dic] = [] - dictionaries[dic].append('dictsource/%s' % filename) + if dic in voices: + if not dic in dictionaries.keys(): + dictionaries[dic] = [] + dictionaries[dic].append('dictsource/%s' % filename) print '##### dictionaries:' print