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

espeak-data/dictsource espeak-data/dictsource
espeak-data/phsource espeak-data/phsource
espeak-data/*_dict espeak-data/*_dict
espeak-data/mbrola_ph/*_phtrans
espeak-data/intonations espeak-data/intonations
espeak-data/phondata espeak-data/phondata
espeak-data/phondata-manifest espeak-data/phondata-manifest

+ 186
- 1
Makefile.am View File

all-local: \ all-local: \
espeak-data/phontab \ espeak-data/phontab \
docs/speak_lib.h \ docs/speak_lib.h \
dictionaries
dictionaries \
mbrola


uninstall-hook: uninstall-hook:
rm -rf $(DESTDIR)$(DATADIR) rm -rf $(DESTDIR)$(DATADIR)
espeak-data/zhy_dict: src/espeak phsource/phonemes.stamp dictsource/zhy_rules dictsource/zhy_extra espeak-data/zhy_dict: src/espeak phsource/phonemes.stamp dictsource/zhy_rules dictsource/zhy_extra
endif endif
cd dictsource && ESPEAK_DATA_PATH=$(PWD) LD_LIBRARY_PATH=../src:${LD_LIBRARY_PATH} ../src/espeak --compile=zhy && cd .. 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

voices = set() voices = set()
dictionaries = {} dictionaries = {}
phoneme_data = set() phoneme_data = set()
mbrola = set()


# Map voice names to dictionaries when these do not match. # Map voice names to dictionaries when these do not match.
special_voices = { special_voices = {
if filename.startswith('ph_'): if filename.startswith('ph_'):
phoneme_data.add(phondata_path) 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_voices('espeak-data/voices')
find_phoneme_data('phsource') find_phoneme_data('phsource')
find_mbrola_voices('phsource/mbrola')


for filename in os.listdir('dictsource'): for filename in os.listdir('dictsource'):
if filename.endswith('_rules') or filename.endswith('_list') or filename in ['bg_listx', 'it_listx']: if filename.endswith('_rules') or filename.endswith('_list') or filename in ['bg_listx', 'it_listx']:
f.write('endif\n') 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) 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: try:
filename = sys.argv[1] filename = sys.argv[1]
except: except:
f.write(prelude) f.write(prelude)
write_phoneme_data_rules(f) write_phoneme_data_rules(f)
write_dictionary_make_rules(f) write_dictionary_make_rules(f)
write_mbrola_make_rules(f)
else: else:
write_phoneme_data_rules(sys.stdout) write_phoneme_data_rules(sys.stdout)
write_dictionary_make_rules(sys.stdout) write_dictionary_make_rules(sys.stdout)
write_mbrola_make_rules(sys.stdout)

+ 11
- 3
src/compiledata.cpp View File

ReadPhondataManifest(); ReadPhondataManifest();
} // end of CompilePhonemeData } // end of CompilePhonemeData


#include <errno.h>



void CompileMbrola()
void CompileMbrola(const char *mbrola_file)
{//================= {//=================
char *p; char *p;
FILE *f_in; FILE *f_in;
int mbrola_ctrl = 20; // volume in 1/16 ths int mbrola_ctrl = 20; // volume in 1/16 ths
MBROLA_TAB data[N_PHONEME_TAB]; 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)); strcpy(buf,filepath.mb_str(wxConvLocal));
if((f_in = fopen(buf,"r")) == NULL) if((f_in = fopen(buf,"r")) == NULL)
{ {

+ 12
- 1
src/espeakedit.cpp View File

extern void init_z(); extern void init_z();
extern void CompilePhonemeData(void); extern void CompilePhonemeData(void);
extern void CompileSampleRate(void); extern void CompileSampleRate(void);
extern void CompileMbrola();
extern void CompileMbrola(const char *mbrola_file = NULL);
extern void CompileIntonation(); extern void CompileIntonation();
extern void InitSpectrumDisplay(); extern void InitSpectrumDisplay();
extern void InitProsodyDisplay(); extern void InitProsodyDisplay();
CompilePhonemeData(); CompilePhonemeData();
CompileIntonation(); 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); exit(0);
} }



Loading…
Cancel
Save