mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-11-07 07:23:52 +00:00
autotools: support building the mbrola phtrans files
This commit is contained in:
@@ -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
@@ -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}/$<
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+23
@@ -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
@@ -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
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user