[1.25.02] Added translation for mbrola "gr2" Greek voice.

Filtered ustop/t_short.wav to remove high frequencies.
Reduced formant glide for phoneme [c].


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@18 d46cf337-b52f-0410-862d-fd96e6ae7743
This commit is contained in:
jonsd
2007-05-21 17:10:30 +00:00
parent 85fe415375
commit 8a6e17ac7c
19 changed files with 227 additions and 38 deletions
+1 -1
View File
@@ -35,7 +35,7 @@
#include "translate.h"
#include "wave.h"
const char *version_string = "1.25.01 20.May.07";
const char *version_string = "1.25.02 21.May.07";
const int version_phdata = 0x012501;
int option_device_number = -1;
+7
View File
@@ -1153,6 +1153,13 @@ int Generate(PHONEME_LIST *phoneme_list, int *n_ph, int resume)
DoSpect(p->ph,phoneme_tab[phonSCHWA],next->ph,1,p,0);
}
}
else
{
if(p->synthflags & SFLAG_LENGTHEN)
{
DoPause(50);
}
}
if(pre_voiced)
{
+3 -1
View File
@@ -122,6 +122,7 @@ Translator *SelectTranslator(const char *name)
// character codes offset by 0x380
static const char el_vowels[] = {0x10,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x35,0x37,0x39,0x3f,0x45,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0};
static const char el_fvowels[] = {0x2d,0x2e,0x2f,0x35,0x37,0x39,0x45,0x4d,0};
static const char el_voiceless[]= {0x38,0x3a,0x3f,0x40,0x42,0x43,0x44,0x46,0x47,0};
static const char el_consonants[]={0x32,0x33,0x34,0x36,0x38,0x3a,0x3b,0x3c,0x3d,0x3e,0x40,0x41,0x42,0x43,0x44,0x46,0x47,0x48,0};
static const wchar_t el_char_apostrophe[] = {0x3c3,0}; // σ
@@ -137,6 +138,7 @@ Translator *SelectTranslator(const char *name)
SetLetterBits(tr,LETTERGP_A,el_vowels);
SetLetterBits(tr,LETTERGP_B,el_voiceless);
SetLetterBits(tr,LETTERGP_C,el_consonants);
SetLetterBits(tr,LETTERGP_Y,el_fvowels); // front vowels: ε η ι υ
tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable
tr->langopts.stress_rule = 2;
@@ -321,7 +323,7 @@ Translator *SelectTranslator(const char *name)
tr->langopts.stress_rule = 0;
tr->langopts.stress_flags = 0x56; // move secondary stress from light to a following heavy syllable
tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x4;
tr->langopts.param[LOPT_REGRESSIVE_VOICING] = 0x1;
tr->langopts.param[LOPT_IT_DOUBLING] = 1;
tr->langopts.long_stop = 130;
+7 -1
View File
@@ -1150,8 +1150,8 @@ int Translator::TranslateWord2(char *word, WORD_TAB *wtab, int pre_pause, int ne
if(sylimit & 0x100)
{
// only if the second word has $alt attribute
strcpy(ph_buf,word_phonemes);
flags2 = translator->TranslateWord(p2+1, 0, wtab+1);
strcpy(ph_buf,word_phonemes);
if((flags2 & FLAG_ALT_TRANS) == 0)
{
ok = 0;
@@ -1159,6 +1159,12 @@ int Translator::TranslateWord2(char *word, WORD_TAB *wtab, int pre_pause, int ne
}
}
if((sylimit & 0x200) && ((wtab+1)->flags & FLAG_LAST_WORD))
{
// not if the next word is end-of-sentence
ok = 0;
}
if(ok)
{
*p2 = '-'; // replace next space by hyphen
+3
View File
@@ -236,6 +236,9 @@ extern const int param_defaults[N_SPEECH_PARAM];
// don't reduce the strongest vowel in a word which is marked 'unstressed'
#define LOPT_KEEP_UNSTR_VOWEL 10
// LANG=cs,sk combine some prepositions with the following word, if the combination has N or fewer syllables
// bits 0-3 N syllables
// bit 4=only if the second word has $alt attribute
// bit 5=not if the second word is end-of-sentence
#define LOPT_COMBINE_WORDS 11