Browse Source

autotools: support building the mbrola phtrans files

master
Reece H. Dunn 11 years ago
parent
commit
55b2e01a6c
43 changed files with 233 additions and 5 deletions
  1. 1
    0
      .gitignore
  2. 186
    1
      Makefile.am
  3. BIN
      espeak-data/mbrola_ph/af1_phtrans
  4. BIN
      espeak-data/mbrola_ph/ca1_phtrans
  5. BIN
      espeak-data/mbrola_ph/cr1_phtrans
  6. BIN
      espeak-data/mbrola_ph/cs_phtrans
  7. BIN
      espeak-data/mbrola_ph/de2_phtrans
  8. BIN
      espeak-data/mbrola_ph/de4_phtrans
  9. BIN
      espeak-data/mbrola_ph/de6_phtrans
  10. BIN
      espeak-data/mbrola_ph/ee1_phtrans
  11. BIN
      espeak-data/mbrola_ph/en1_phtrans
  12. BIN
      espeak-data/mbrola_ph/es_phtrans
  13. BIN
      espeak-data/mbrola_ph/fr1_phtrans
  14. BIN
      espeak-data/mbrola_ph/gr2_phtrans
  15. BIN
      espeak-data/mbrola_ph/grc-de6_phtrans
  16. BIN
      espeak-data/mbrola_ph/hn1_phtrans
  17. BIN
      espeak-data/mbrola_ph/hu1_phtrans
  18. BIN
      espeak-data/mbrola_ph/ic1_phtrans
  19. BIN
      espeak-data/mbrola_ph/id1_phtrans
  20. BIN
      espeak-data/mbrola_ph/in1_phtrans
  21. BIN
      espeak-data/mbrola_ph/ir1_phtrans
  22. BIN
      espeak-data/mbrola_ph/it3_phtrans
  23. BIN
      espeak-data/mbrola_ph/la1_phtrans
  24. BIN
      espeak-data/mbrola_ph/lt1_phtrans
  25. BIN
      espeak-data/mbrola_ph/lt2_phtrans
  26. BIN
      espeak-data/mbrola_ph/mx1_phtrans
  27. BIN
      espeak-data/mbrola_ph/mx2_phtrans
  28. BIN
      espeak-data/mbrola_ph/nl_phtrans
  29. BIN
      espeak-data/mbrola_ph/pl1_phtrans
  30. BIN
      espeak-data/mbrola_ph/pt1_phtrans
  31. BIN
      espeak-data/mbrola_ph/pt_phtrans
  32. BIN
      espeak-data/mbrola_ph/ptbr4_phtrans
  33. BIN
      espeak-data/mbrola_ph/ptbr_phtrans
  34. BIN
      espeak-data/mbrola_ph/ro1_phtrans
  35. BIN
      espeak-data/mbrola_ph/sv2_phtrans
  36. BIN
      espeak-data/mbrola_ph/sv_phtrans
  37. BIN
      espeak-data/mbrola_ph/tr1_phtrans
  38. BIN
      espeak-data/mbrola_ph/us3_phtrans
  39. BIN
      espeak-data/mbrola_ph/us_phtrans
  40. BIN
      espeak-data/mbrola_ph/vz_phtrans
  41. 23
    0
      mkdictlist
  42. 11
    3
      src/compiledata.cpp
  43. 12
    1
      src/espeakedit.cpp

+ 1
- 0
.gitignore View File

@@ -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

+ 186
- 1
Makefile.am View File

@@ -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}/$<

BIN
espeak-data/mbrola_ph/af1_phtrans View File


BIN
espeak-data/mbrola_ph/ca1_phtrans View File


BIN
espeak-data/mbrola_ph/cr1_phtrans View File


BIN
espeak-data/mbrola_ph/cs_phtrans View File


BIN
espeak-data/mbrola_ph/de2_phtrans View File


BIN
espeak-data/mbrola_ph/de4_phtrans View File


BIN
espeak-data/mbrola_ph/de6_phtrans View File


BIN
espeak-data/mbrola_ph/ee1_phtrans View File


BIN
espeak-data/mbrola_ph/en1_phtrans View File


BIN
espeak-data/mbrola_ph/es_phtrans View File


BIN
espeak-data/mbrola_ph/fr1_phtrans View File


BIN
espeak-data/mbrola_ph/gr2_phtrans View File


BIN
espeak-data/mbrola_ph/grc-de6_phtrans View File


BIN
espeak-data/mbrola_ph/hn1_phtrans View File


BIN
espeak-data/mbrola_ph/hu1_phtrans View File


BIN
espeak-data/mbrola_ph/ic1_phtrans View File


BIN
espeak-data/mbrola_ph/id1_phtrans View File


BIN
espeak-data/mbrola_ph/in1_phtrans View File


BIN
espeak-data/mbrola_ph/ir1_phtrans View File


BIN
espeak-data/mbrola_ph/it3_phtrans View File


BIN
espeak-data/mbrola_ph/la1_phtrans View File


BIN
espeak-data/mbrola_ph/lt1_phtrans View File


BIN
espeak-data/mbrola_ph/lt2_phtrans View File


BIN
espeak-data/mbrola_ph/mx1_phtrans View File


BIN
espeak-data/mbrola_ph/mx2_phtrans View File


BIN
espeak-data/mbrola_ph/nl_phtrans View File


BIN
espeak-data/mbrola_ph/pl1_phtrans View File


BIN
espeak-data/mbrola_ph/pt1_phtrans View File


BIN
espeak-data/mbrola_ph/pt_phtrans View File


BIN
espeak-data/mbrola_ph/ptbr4_phtrans View File


BIN
espeak-data/mbrola_ph/ptbr_phtrans View File


BIN
espeak-data/mbrola_ph/ro1_phtrans View File


BIN
espeak-data/mbrola_ph/sv2_phtrans View File


BIN
espeak-data/mbrola_ph/sv_phtrans View File


BIN
espeak-data/mbrola_ph/tr1_phtrans View File


BIN
espeak-data/mbrola_ph/us3_phtrans View File


BIN
espeak-data/mbrola_ph/us_phtrans View File


BIN
espeak-data/mbrola_ph/vz_phtrans View File


+ 23
- 0
mkdictlist View File

@@ -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)

+ 11
- 3
src/compiledata.cpp View File

@@ -3747,9 +3747,9 @@ fprintf(f_errors,"\nRefs %d, Reused %d\n",count_references,duplicate_references
ReadPhondataManifest();
} // end of CompilePhonemeData

#include <errno.h>


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)
{

+ 12
- 1
src/espeakedit.cpp View File

@@ -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);
}


Loading…
Cancel
Save