espeakedit, show path to phsource when compiling. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@319 d46cf337-b52f-0410-862d-fd96e6ae7743master
| concerto $alt2 $noun | concerto $alt2 $noun | ||||
| concordo $alt | concordo $alt | ||||
| conforto $alt $verb | conforto $alt $verb | ||||
| congelo $alt | |||||
| consolo $alt2 $noun | consolo $alt2 $noun | ||||
| controle $alt2 $noun | controle $alt2 $noun | ||||
| controlo $alt2 $noun | controlo $alt2 $noun | ||||
| hoje $alt2 | hoje $alt2 | ||||
| horrores $alt2 | horrores $alt2 | ||||
| ideia $alt | ideia $alt | ||||
| insonoro $alt | |||||
| interesse $alt2 $noun | interesse $alt2 $noun | ||||
| jogo $alt2 $noun | jogo $alt2 $noun | ||||
| joguete $alt2 | joguete $alt2 | ||||
| sexteto $alt2 | sexteto $alt2 | ||||
| ?1 senhora $alt2 | ?1 senhora $alt2 | ||||
| senhores $alt2 | senhores $alt2 | ||||
| singelo $alt | |||||
| sinopse $alt | sinopse $alt | ||||
| soco $alt2 | soco $alt2 | ||||
| soco $alt $verb | soco $alt $verb | ||||
| tumores $alt2 | tumores $alt2 | ||||
| valeta $alt2 | valeta $alt2 | ||||
| vanessa $alt2 | vanessa $alt2 | ||||
| velo $alt | |||||
| velozes $alt | velozes $alt | ||||
| verme $alt | verme $alt | ||||
| violeta $alt2 | violeta $alt2 |
| _perd) e (L05_ e | _perd) e (L05_ e | ||||
| _quis) e (L05_ E | _quis) e (L05_ E | ||||
| _soub) e (L05_ E | _soub) e (L05_ E | ||||
| diss) e (L06_ E / contra- | |||||
| diss) e (L06_ E // contra- | |||||
| tend) e (L06_ e // a- con- en- es- | tend) e (L06_ e // a- con- en- es- | ||||
| vend) e (L06_ e // re- | vend) e (L06_ e // re- | ||||
| _mord) e (L06_ e | _mord) e (L06_ e | ||||
| _rejuvenec) e (L07_ e | _rejuvenec) e (L07_ e | ||||
| _resolv) e (L07_ e | _resolv) e (L07_ e | ||||
| _suspend) e (L07_ e | _suspend) e (L07_ e | ||||
| abastec) e (L07_ e / re- | |||||
| abastec) e (L07_ e // re- | |||||
| conhec) e (L07_ e // & re- des- | conhec) e (L07_ e // & re- des- | ||||
| estabelec) e (L07_ e // re- | estabelec) e (L07_ e // re- | ||||
| favorec) e (L07_ e // des- | favorec) e (L07_ e // des- | ||||
| _g) e (rL04_ E | _g) e (rL04_ E | ||||
| qu) e (rL04_ E // re- | qu) e (rL04_ E // re- | ||||
| _op) e (rL04_ E | _op) e (rL04_ E | ||||
| gen) e (rL04_ E // de- re- | |||||
| _alt) e (rL04_ E | _alt) e (rL04_ E | ||||
| _sug) e (rL04_ E | _sug) e (rL04_ E | ||||
| _sup) e (rL04_ E | _sup) e (rL04_ E | ||||
| _ens) o (pL04_ O | _ens) o (pL04_ O | ||||
| _s) o (prL04_ O | _s) o (prL04_ O | ||||
| _) o (ptL04_ O | _) o (ptL04_ O | ||||
| _inod) o (rL03_ O | |||||
| _inson) o (rL03_ O | |||||
| _comem) o (rL04 O | |||||
| _remem) o (rL04_ O | |||||
| _enf) o (rquL02_ O | _enf) o (rquL02_ O | ||||
| c) o (rrL01_ o // escorra, incorra, corra, recorra | c) o (rrL01_ o // escorra, incorra, corra, recorra | ||||
| _m) o (rrL01_ o | _m) o (rrL01_ o |
| } | } | ||||
| sprintf(command,"sox \"%s%s.wav\" -r %d -c1 -t wav %s\n",path_source,fname2,samplerate_native, fname_temp); | sprintf(command,"sox \"%s%s.wav\" -r %d -c1 -t wav %s\n",path_source,fname2,samplerate_native, fname_temp); | ||||
| if(system(command) < 0) | |||||
| if(system(command) != 0) | |||||
| { | { | ||||
| failed = 1; | failed = 1; | ||||
| } | } | ||||
| make_envs(); | make_envs(); | ||||
| #endif | #endif | ||||
| wxLogStatus(_T("Compiling phoneme data: ")+wxString(path_source,wxConvLocal)); | |||||
| n_envelopes = 0; | n_envelopes = 0; | ||||
| error_count = 0; | error_count = 0; | ||||
| resample_count = 0; | resample_count = 0; | ||||
| memset(markers_used,0,sizeof(markers_used)); | |||||
| memset(markers_used,0,sizeof(markers_used)); | |||||
| f_errors = stderr; | f_errors = stderr; | ||||
| if(error_count > 0) | if(error_count > 0) | ||||
| { | { | ||||
| report += _T(" See file: 'phsource/error_log'."); | |||||
| report += _T(" See file: '")+wxString(path_source,wxConvLocal)+_T("phsource/error_log'."); | |||||
| wxLogError(report); | wxLogError(report); | ||||
| } | } | ||||
| wxLogStatus(report + report_dict); | wxLogStatus(report + report_dict); | ||||
| void CompileSampleRate() | void CompileSampleRate() | ||||
| { | { | ||||
| long value; | long value; | ||||
| value = wxGetNumberFromUser(_T("Compile phoneme data with a specified sample rate"), _T("Sample rate"), _T("Resample (needs sox)"), 22050, 5000, 48000); | |||||
| #ifndef PLATFORM_POSIX | |||||
| wxLogError(_T("Change Sample Rate needs the 'sox' program. It probably doesn't work on Windows")); | |||||
| #endif | |||||
| value = wxGetNumberFromUser(_T("Compile phoneme data with a specified sample rate"), _T("Sample rate"), _T("Resample (needs 'sox' program)"), 22050, 5000, 48000); | |||||
| if(value > 1000) | if(value > 1000) | ||||
| { | { |
| data_menu = new wxMenu; | data_menu = new wxMenu; | ||||
| data_menu->Append(MENU_COMPILE_DICT, _("Compile &dictionary")); | data_menu->Append(MENU_COMPILE_DICT, _("Compile &dictionary")); | ||||
| data_menu->Append(MENU_COMPILE_DICT_DEBUG, _("Compile dictionary (debu&g)")); | data_menu->Append(MENU_COMPILE_DICT_DEBUG, _("Compile dictionary (debu&g)")); | ||||
| data_menu->Append(MENU_COMPILE_PH, _("Compile &phoneme data")); | |||||
| data_menu->Append(MENU_COMPILE_PH2, _("Change sample &rate")); | |||||
| data_menu->Append(MENU_COMPILE_PH, _("Compile &phoneme data 22050Hz")); | |||||
| data_menu->Append(MENU_COMPILE_PH2, _("Compile at sample &rate")); | |||||
| data_menu->AppendSeparator(); | data_menu->AppendSeparator(); | ||||
| data_menu->Append(MENU_COMPILE_MBROLA, _("Compile &mbrola phonemes list...")); | data_menu->Append(MENU_COMPILE_MBROLA, _("Compile &mbrola phonemes list...")); | ||||
| data_menu->Append(MENU_COMPILE_INTONATION, _("Compile &intonation data")); | data_menu->Append(MENU_COMPILE_INTONATION, _("Compile &intonation data")); |
| #include "translate.h" | #include "translate.h" | ||||
| #include "wave.h" | #include "wave.h" | ||||
| const char *version_string = "1.46.52 16.Mar.13"; | |||||
| const char *version_string = "1.46.53 16.Mar.13"; | |||||
| const int version_phdata = 0x014640; | const int version_phdata = 0x014640; | ||||
| int option_device_number = -1; | int option_device_number = -1; |
| static const short stress_lengths_sk[8] = {190,190, 210,210, 0,0, 210,210}; | static const short stress_lengths_sk[8] = {190,190, 210,210, 0,0, 210,210}; | ||||
| static const short stress_lengths_ta[8] = {200, 200, 210, 210, 0, 0, 230, 230}; | static const short stress_lengths_ta[8] = {200, 200, 210, 210, 0, 0, 230, 230}; | ||||
| static const short stress_lengths_ta2[8] = {230, 230, 240, 240, 0, 0, 260, 260}; | |||||
| static const unsigned char stress_amps_ta[8] = {18,18, 18,18, 20,20, 22,22 }; | static const unsigned char stress_amps_ta[8] = {18,18, 18,18, 20,20, 22,22 }; | ||||
| // convert name string into a word of up to 4 characters, for the switch() | // convert name string into a word of up to 4 characters, for the switch() | ||||
| case L('m','r'): // Marathi | case L('m','r'): // Marathi | ||||
| case L('t','e'): // Telugu | case L('t','e'): // Telugu | ||||
| { | { | ||||
| SetupTranslator(tr,stress_lengths_ta,stress_amps_ta); | |||||
| SetupTranslator(tr,stress_lengths_ta2, stress_amps_ta); | |||||
| tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable | tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable | ||||
| tr->langopts.stress_rule = STRESSPOSN_1L; | tr->langopts.stress_rule = STRESSPOSN_1L; | ||||
| if(name2 == L('t','a')) | if(name2 == L('t','a')) | ||||
| { | { | ||||
| SetupTranslator(tr,stress_lengths_ta, NULL); | |||||
| tr->letter_bits_offset = OFFSET_TAMIL; | tr->letter_bits_offset = OFFSET_TAMIL; | ||||
| tr->langopts.numbers = NUM_OMIT_1_THOUSAND ; | tr->langopts.numbers = NUM_OMIT_1_THOUSAND ; | ||||
| tr->langopts.param[LOPT_WORD_MERGE] = 1; // don't break vowels betwen words | |||||
| } | } | ||||
| else | |||||
| if(name2 == L('m','r')) | if(name2 == L('m','r')) | ||||
| { | { | ||||
| tr->letter_bits_offset = OFFSET_DEVANAGARI; | tr->letter_bits_offset = OFFSET_DEVANAGARI; | ||||
| tr->letter_bits_offset = OFFSET_TELUGU; | tr->letter_bits_offset = OFFSET_TELUGU; | ||||
| tr->langopts.numbers = 0x1; | tr->langopts.numbers = 0x1; | ||||
| } | } | ||||
| tr->langopts.param[LOPT_WORD_MERGE] = 1; // don't break vowels betwen words | |||||
| SetIndicLetters(tr); // call this after setting OFFSET_ | SetIndicLetters(tr); // call this after setting OFFSET_ | ||||
| SetLetterBitsRange(tr,LETTERGP_B,0x4e,0x4e); // chillu-virama (unofficial) | |||||
| SetLetterBitsRange(tr,LETTERGP_B,0x4e,0x4e); // chillu-virama (unofficial) | |||||
| } | } | ||||
| break; | break; | ||||
| char prefix_chars[0x3f + 2]; | char prefix_chars[0x3f + 2]; | ||||
| int found=0; | int found=0; | ||||
| int end_flags; | int end_flags; | ||||
| char c_temp; // save a character byte while we temporarily replace it with space | |||||
| int c_temp; // save a character byte while we temporarily replace it with space | |||||
| int first_char; | int first_char; | ||||
| int last_char = 0; | int last_char = 0; | ||||
| int add_plural_suffix = 0; | int add_plural_suffix = 0; | ||||
| if((word_length == 1) && (wflags & FLAG_TRANSLATOR2)) | if((word_length == 1) && (wflags & FLAG_TRANSLATOR2)) | ||||
| { | { | ||||
| // retranslating a 1-character word using a different language, say its name | // retranslating a 1-character word using a different language, say its name | ||||
| spell_word = 1; | |||||
| utf8_in(&c_temp, wordx+1); // the next character | |||||
| if(!IsAlpha(c_temp) || (AlphabetFromChar(last_char) != AlphabetFromChar(c_temp))) | |||||
| spell_word = 1; | |||||
| } | } | ||||
| if(option_sayas == SAYAS_KEY) | if(option_sayas == SAYAS_KEY) |