diff --git a/.gitignore b/.gitignore index 1821cdad..530a9191 100644 --- a/.gitignore +++ b/.gitignore @@ -76,6 +76,7 @@ espeak-data/config espeak-data/dictsource espeak-data/phsource espeak-data/*_dict +espeak-data/mbrola_ph/*_phtrans espeak-data/intonations espeak-data/phondata espeak-data/phondata-manifest diff --git a/Makefile.am b/Makefile.am index 44027410..cb597c9c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -33,7 +33,8 @@ EXTRA_DIST += ChangeLog all-local: \ espeak-data/phontab \ docs/speak_lib.h \ - dictionaries + dictionaries \ + mbrola uninstall-hook: rm -rf $(DESTDIR)$(DATADIR) @@ -797,3 +798,187 @@ else espeak-data/zhy_dict: src/espeak phsource/phonemes.stamp dictsource/zhy_rules dictsource/zhy_extra endif cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=zhy && cd .. + +##### mbrola: + +mbrola: \ + espeak-data/mbrola_ph/af1_phtrans \ + espeak-data/mbrola_ph/cr1_phtrans \ + espeak-data/mbrola_ph/cs_phtrans \ + espeak-data/mbrola_ph/de2_phtrans \ + espeak-data/mbrola_ph/de4_phtrans \ + espeak-data/mbrola_ph/de6_phtrans \ + espeak-data/mbrola_ph/ee1_phtrans \ + espeak-data/mbrola_ph/en1_phtrans \ + espeak-data/mbrola_ph/es_phtrans \ + espeak-data/mbrola_ph/fr1_phtrans \ + espeak-data/mbrola_ph/gr2_phtrans \ + espeak-data/mbrola_ph/grc-de6_phtrans \ + espeak-data/mbrola_ph/hn1_phtrans \ + espeak-data/mbrola_ph/hu1_phtrans \ + espeak-data/mbrola_ph/ic1_phtrans \ + espeak-data/mbrola_ph/id1_phtrans \ + espeak-data/mbrola_ph/in1_phtrans \ + espeak-data/mbrola_ph/ir1_phtrans \ + espeak-data/mbrola_ph/it3_phtrans \ + espeak-data/mbrola_ph/la1_phtrans \ + espeak-data/mbrola_ph/lt1_phtrans \ + espeak-data/mbrola_ph/lt2_phtrans \ + espeak-data/mbrola_ph/mx1_phtrans \ + espeak-data/mbrola_ph/mx2_phtrans \ + espeak-data/mbrola_ph/nl_phtrans \ + espeak-data/mbrola_ph/pl1_phtrans \ + espeak-data/mbrola_ph/pt1_phtrans \ + espeak-data/mbrola_ph/ptbr_phtrans \ + espeak-data/mbrola_ph/ptbr4_phtrans \ + espeak-data/mbrola_ph/ro1_phtrans \ + espeak-data/mbrola_ph/sv_phtrans \ + espeak-data/mbrola_ph/sv2_phtrans \ + espeak-data/mbrola_ph/tr1_phtrans \ + espeak-data/mbrola_ph/us_phtrans \ + espeak-data/mbrola_ph/us3_phtrans \ + espeak-data/mbrola_ph/vz_phtrans + +espeak-data/mbrola_ph/af1_phtrans: phsource/mbrola/af1 src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/cr1_phtrans: phsource/mbrola/cr1 src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/cs_phtrans: phsource/mbrola/cs src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/de2_phtrans: phsource/mbrola/de2 src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/de4_phtrans: phsource/mbrola/de4 src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/de6_phtrans: phsource/mbrola/de6 src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/ee1_phtrans: phsource/mbrola/ee1 src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/en1_phtrans: phsource/mbrola/en1 src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/es_phtrans: phsource/mbrola/es src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/fr1_phtrans: phsource/mbrola/fr1 src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/gr2_phtrans: phsource/mbrola/gr2 src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/grc-de6_phtrans: phsource/mbrola/grc-de6 src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/hn1_phtrans: phsource/mbrola/hn1 src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/hu1_phtrans: phsource/mbrola/hu1 src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/ic1_phtrans: phsource/mbrola/ic1 src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/id1_phtrans: phsource/mbrola/id1 src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/in1_phtrans: phsource/mbrola/in1 src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/ir1_phtrans: phsource/mbrola/ir1 src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/it3_phtrans: phsource/mbrola/it3 src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/la1_phtrans: phsource/mbrola/la1 src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/lt1_phtrans: phsource/mbrola/lt1 src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/lt2_phtrans: phsource/mbrola/lt2 src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/mx1_phtrans: phsource/mbrola/mx1 src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/mx2_phtrans: phsource/mbrola/mx2 src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/nl_phtrans: phsource/mbrola/nl src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/pl1_phtrans: phsource/mbrola/pl1 src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/pt1_phtrans: phsource/mbrola/pt1 src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/ptbr_phtrans: phsource/mbrola/ptbr src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/ptbr4_phtrans: phsource/mbrola/ptbr4 src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/ro1_phtrans: phsource/mbrola/ro1 src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/sv_phtrans: phsource/mbrola/sv src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/sv2_phtrans: phsource/mbrola/sv2 src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/tr1_phtrans: phsource/mbrola/tr1 src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/us_phtrans: phsource/mbrola/us src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/us3_phtrans: phsource/mbrola/us3 src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< + +espeak-data/mbrola_ph/vz_phtrans: phsource/mbrola/vz src/espeakedit + mkdir -p espeak-data/mbrola_ph + ESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$< diff --git a/espeak-data/mbrola_ph/af1_phtrans b/espeak-data/mbrola_ph/af1_phtrans deleted file mode 100644 index a87ec4cc..00000000 Binary files a/espeak-data/mbrola_ph/af1_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/ca1_phtrans b/espeak-data/mbrola_ph/ca1_phtrans deleted file mode 100644 index 4fe4188e..00000000 Binary files a/espeak-data/mbrola_ph/ca1_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/cr1_phtrans b/espeak-data/mbrola_ph/cr1_phtrans deleted file mode 100644 index 064669ea..00000000 Binary files a/espeak-data/mbrola_ph/cr1_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/cs_phtrans b/espeak-data/mbrola_ph/cs_phtrans deleted file mode 100644 index 85ebb03e..00000000 Binary files a/espeak-data/mbrola_ph/cs_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/de2_phtrans b/espeak-data/mbrola_ph/de2_phtrans deleted file mode 100644 index 804a0d40..00000000 Binary files a/espeak-data/mbrola_ph/de2_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/de4_phtrans b/espeak-data/mbrola_ph/de4_phtrans deleted file mode 100644 index e626a582..00000000 Binary files a/espeak-data/mbrola_ph/de4_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/de6_phtrans b/espeak-data/mbrola_ph/de6_phtrans deleted file mode 100644 index f82c1e3b..00000000 Binary files a/espeak-data/mbrola_ph/de6_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/ee1_phtrans b/espeak-data/mbrola_ph/ee1_phtrans deleted file mode 100644 index 32c569a2..00000000 Binary files a/espeak-data/mbrola_ph/ee1_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/en1_phtrans b/espeak-data/mbrola_ph/en1_phtrans deleted file mode 100644 index c32db396..00000000 Binary files a/espeak-data/mbrola_ph/en1_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/es_phtrans b/espeak-data/mbrola_ph/es_phtrans deleted file mode 100644 index 958799c6..00000000 Binary files a/espeak-data/mbrola_ph/es_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/fr1_phtrans b/espeak-data/mbrola_ph/fr1_phtrans deleted file mode 100644 index dc0fcef7..00000000 Binary files a/espeak-data/mbrola_ph/fr1_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/gr2_phtrans b/espeak-data/mbrola_ph/gr2_phtrans deleted file mode 100644 index e7dca3af..00000000 Binary files a/espeak-data/mbrola_ph/gr2_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/grc-de6_phtrans b/espeak-data/mbrola_ph/grc-de6_phtrans deleted file mode 100644 index e41d3105..00000000 Binary files a/espeak-data/mbrola_ph/grc-de6_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/hn1_phtrans b/espeak-data/mbrola_ph/hn1_phtrans deleted file mode 100644 index b2560ce7..00000000 Binary files a/espeak-data/mbrola_ph/hn1_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/hu1_phtrans b/espeak-data/mbrola_ph/hu1_phtrans deleted file mode 100644 index eb661d3a..00000000 Binary files a/espeak-data/mbrola_ph/hu1_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/ic1_phtrans b/espeak-data/mbrola_ph/ic1_phtrans deleted file mode 100644 index 978ec49e..00000000 Binary files a/espeak-data/mbrola_ph/ic1_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/id1_phtrans b/espeak-data/mbrola_ph/id1_phtrans deleted file mode 100644 index bd4b90cb..00000000 Binary files a/espeak-data/mbrola_ph/id1_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/in1_phtrans b/espeak-data/mbrola_ph/in1_phtrans deleted file mode 100644 index cf1c5895..00000000 Binary files a/espeak-data/mbrola_ph/in1_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/ir1_phtrans b/espeak-data/mbrola_ph/ir1_phtrans deleted file mode 100644 index 671873e7..00000000 Binary files a/espeak-data/mbrola_ph/ir1_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/it3_phtrans b/espeak-data/mbrola_ph/it3_phtrans deleted file mode 100644 index c9174cf0..00000000 Binary files a/espeak-data/mbrola_ph/it3_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/la1_phtrans b/espeak-data/mbrola_ph/la1_phtrans deleted file mode 100644 index 1f2eb929..00000000 Binary files a/espeak-data/mbrola_ph/la1_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/lt1_phtrans b/espeak-data/mbrola_ph/lt1_phtrans deleted file mode 100644 index 1066dfbc..00000000 Binary files a/espeak-data/mbrola_ph/lt1_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/lt2_phtrans b/espeak-data/mbrola_ph/lt2_phtrans deleted file mode 100644 index 1066dfbc..00000000 Binary files a/espeak-data/mbrola_ph/lt2_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/mx1_phtrans b/espeak-data/mbrola_ph/mx1_phtrans deleted file mode 100644 index 3b3e6f37..00000000 Binary files a/espeak-data/mbrola_ph/mx1_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/mx2_phtrans b/espeak-data/mbrola_ph/mx2_phtrans deleted file mode 100644 index a9bbb0f6..00000000 Binary files a/espeak-data/mbrola_ph/mx2_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/nl_phtrans b/espeak-data/mbrola_ph/nl_phtrans deleted file mode 100644 index 1edb05ae..00000000 Binary files a/espeak-data/mbrola_ph/nl_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/pl1_phtrans b/espeak-data/mbrola_ph/pl1_phtrans deleted file mode 100644 index 5c3583da..00000000 Binary files a/espeak-data/mbrola_ph/pl1_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/pt1_phtrans b/espeak-data/mbrola_ph/pt1_phtrans deleted file mode 100644 index f101c661..00000000 Binary files a/espeak-data/mbrola_ph/pt1_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/pt_phtrans b/espeak-data/mbrola_ph/pt_phtrans deleted file mode 100644 index 9de1630d..00000000 Binary files a/espeak-data/mbrola_ph/pt_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/ptbr4_phtrans b/espeak-data/mbrola_ph/ptbr4_phtrans deleted file mode 100644 index 25bfdbf4..00000000 Binary files a/espeak-data/mbrola_ph/ptbr4_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/ptbr_phtrans b/espeak-data/mbrola_ph/ptbr_phtrans deleted file mode 100644 index f11ad870..00000000 Binary files a/espeak-data/mbrola_ph/ptbr_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/ro1_phtrans b/espeak-data/mbrola_ph/ro1_phtrans deleted file mode 100644 index 4dec1599..00000000 Binary files a/espeak-data/mbrola_ph/ro1_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/sv2_phtrans b/espeak-data/mbrola_ph/sv2_phtrans deleted file mode 100644 index 805608fb..00000000 Binary files a/espeak-data/mbrola_ph/sv2_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/sv_phtrans b/espeak-data/mbrola_ph/sv_phtrans deleted file mode 100644 index fcd75c4d..00000000 Binary files a/espeak-data/mbrola_ph/sv_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/tr1_phtrans b/espeak-data/mbrola_ph/tr1_phtrans deleted file mode 100644 index 0d6fa2a9..00000000 Binary files a/espeak-data/mbrola_ph/tr1_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/us3_phtrans b/espeak-data/mbrola_ph/us3_phtrans deleted file mode 100644 index 94b775bf..00000000 Binary files a/espeak-data/mbrola_ph/us3_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/us_phtrans b/espeak-data/mbrola_ph/us_phtrans deleted file mode 100644 index 405243a9..00000000 Binary files a/espeak-data/mbrola_ph/us_phtrans and /dev/null differ diff --git a/espeak-data/mbrola_ph/vz_phtrans b/espeak-data/mbrola_ph/vz_phtrans deleted file mode 100644 index 0df524f0..00000000 Binary files a/espeak-data/mbrola_ph/vz_phtrans and /dev/null differ diff --git a/mkdictlist b/mkdictlist index 477582a1..6c51bd47 100755 --- a/mkdictlist +++ b/mkdictlist @@ -11,6 +11,7 @@ import os voices = set() dictionaries = {} phoneme_data = set() +mbrola = set() # Map voice names to dictionaries when these do not match. special_voices = { @@ -46,8 +47,13 @@ def find_phoneme_data(path): if filename.startswith('ph_'): phoneme_data.add(phondata_path) +def find_mbrola_voices(path): + for filename in os.listdir(path): + mbrola.add(filename) + find_voices('espeak-data/voices') find_phoneme_data('phsource') +find_mbrola_voices('phsource/mbrola') for filename in os.listdir('dictsource'): if filename.endswith('_rules') or filename.endswith('_list') or filename in ['bg_listx', 'it_listx']: @@ -101,6 +107,21 @@ def write_dictionary_make_rules(f): f.write('endif\n') f.write('\tcd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=%s && cd ..\n' % name) +def write_mbrola_make_rules(f): + f.write('\n##### mbrola:\n') + f.write('\n') + f.write('mbrola: \\\n') + for n, name in enumerate(sorted(mbrola)): + if n == len(mbrola) - 1: + f.write('\tespeak-data/mbrola_ph/%s_phtrans\n' % name) + else: + f.write('\tespeak-data/mbrola_ph/%s_phtrans \\\n' % name) + for name in sorted(mbrola): + f.write('\n') + f.write('espeak-data/mbrola_ph/%s_phtrans: phsource/mbrola/%s src/espeakedit\n' % (name, name)) + f.write('\tmkdir -p espeak-data/mbrola_ph\n') + f.write('\tESPEAK_DATA_PATH=$(PWD) src/espeakedit --compile-mbrola ${PWD}/$<\n') + try: filename = sys.argv[1] except: @@ -113,6 +134,8 @@ if filename: f.write(prelude) write_phoneme_data_rules(f) write_dictionary_make_rules(f) + write_mbrola_make_rules(f) else: write_phoneme_data_rules(sys.stdout) write_dictionary_make_rules(sys.stdout) + write_mbrola_make_rules(sys.stdout) diff --git a/src/compiledata.cpp b/src/compiledata.cpp index b137f7a1..9aa52be2 100644 --- a/src/compiledata.cpp +++ b/src/compiledata.cpp @@ -3747,9 +3747,9 @@ fprintf(f_errors,"\nRefs %d, Reused %d\n",count_references,duplicate_references ReadPhondataManifest(); } // end of CompilePhonemeData +#include - -void CompileMbrola() +void CompileMbrola(const char *mbrola_file) {//================= char *p; FILE *f_in; @@ -3769,7 +3769,15 @@ void CompileMbrola() int mbrola_ctrl = 20; // volume in 1/16 ths MBROLA_TAB data[N_PHONEME_TAB]; - wxString filepath = wxFileSelector(_T("Read Mbrola phonemes file"),path_phsource+_T("/mbrola"),_T(""),_T(""),_T("*"),wxOPEN); + wxString filepath; + if (mbrola_file == NULL) + { + filepath = wxFileSelector(_T("Read Mbrola phonemes file"),path_phsource+_T("/mbrola"),_T(""),_T(""),_T("*"),wxOPEN); + } + else + { + filepath = mbrola_file; + } strcpy(buf,filepath.mb_str(wxConvLocal)); if((f_in = fopen(buf,"r")) == NULL) { diff --git a/src/espeakedit.cpp b/src/espeakedit.cpp index dd0256d5..34fa3cf8 100644 --- a/src/espeakedit.cpp +++ b/src/espeakedit.cpp @@ -63,7 +63,7 @@ extern void DictionarySort(const char *dictname); extern void init_z(); extern void CompilePhonemeData(void); extern void CompileSampleRate(void); -extern void CompileMbrola(); +extern void CompileMbrola(const char *mbrola_file = NULL); extern void CompileIntonation(); extern void InitSpectrumDisplay(); extern void InitProsodyDisplay(); @@ -148,6 +148,17 @@ if(argc > 1) CompilePhonemeData(); CompileIntonation(); } + else if(argc > 2 && strcmp(param,"--compile-mbrola")==0) + { + samplerate_native = samplerate = 22050; + LoadPhData(NULL); + if(LoadVoice("", 0) == NULL) + { + fprintf(stderr, "Failed to load default voice\n"); + exit(1); + } + CompileMbrola(argv[2]); + } exit(0); }