[1.43.46]

Fix: Speak punctuation option also caused text after [[ to be spoken as phoneme codes even if espeakPHONEMES flag is not set.

Speak sequences of letters and dots as individual letters, and don't speak 'dot', eg. "u.s.a."

Don't announce punctuation in the alternative text inside <audio ... </audio>

Vowelcharts, show the positions of multiple FMT() in vowel phonemes definitions.

Phoneme definitions:
New attributes:  flag1, flag2, flag3
New attribute: nopause. Prevents the insertion of a short pause when this phoneme starts a word which follows a vowel.
New conditions: isFlag1, isFlag2, isFlag3, isSibilant.
New statement: InsertPhoneme()

Phonemes: improve syllablic [m-] [n-] [N-]

*_rules: add attributes  $p_alt .. $p_alt3,  $w_alt .. $w_alt3

*_list:  add attributes:  $sentence, $atstart

klatt synthesizer: implement echo.

espeakedit, Prosody display: Indicate stressed and secondary-stress syllables.

espeakedit: remember window size and position.

Intonation:
New file, 'phsource/intonation' to define 'tunes' which can be used from voice files.

espeakedit: add Compile -> Intonationm data

Speed: Increase range to 80 to 450, with default=175.
Improve speaking at high speeds.

lang=en: Reduce consecutive unstressed syllables to 'diminished' stress, only in unstressed words.

lang=de: Change 'r' phoneme.


git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@244 d46cf337-b52f-0410-862d-fd96e6ae7743
This commit is contained in:
jonsd
2010-06-20 13:15:35 +00:00
parent cec2c415da
commit 18240ae109
164 changed files with 9868 additions and 7302 deletions
+21 -6
View File
@@ -546,7 +546,7 @@ void LookupLetter(Translator *tr, unsigned int letter, int next_byte, char *ph_b
if(next_byte != ' ')
next_byte = RULE_SPELLING;
single_letter[3+len] = next_byte; // follow by space-space if the end of the word, or space-0x31
single_letter[3+len] = next_byte; // follow by space-space if the end of the word, or space-31
single_letter[1] = '_';
@@ -1524,6 +1524,7 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
int decimal_mode;
int hyphen;
int suffix_ix;
int skipwords = 0;
char *p;
char string[20]; // for looking up entries in **_list
char buf1[100];
@@ -1598,15 +1599,26 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
}
*p = 0;
if((suffix[0] != 0) && (!isdigit(suffix[0]))) // not _#9 (tab)
if(suffix[0] != 0)
{
sprintf(string,"_#%s",suffix);
if(Lookup(tr, string, ph_ordinal2))
if((tr->langopts.ordinal_indicator != NULL) && (strcmp(suffix, tr->langopts.ordinal_indicator) == 0))
{
// this is an ordinal suffix
ordinal = 2;
}
else
if(!isdigit(suffix[0])) // not _#9 (tab)
{
sprintf(string,"_#%s",suffix);
if(Lookup(tr, string, ph_ordinal2))
{
// this is an ordinal suffix
ordinal = 2;
}
}
if(ordinal)
{
flags[0] |= FLAG_SKIPWORDS;
dictionary_skipwords = 1;
skipwords = 1;
}
}
}
@@ -1854,6 +1866,9 @@ static int TranslateNumber_1(Translator *tr, char *word, char *ph_out, unsigned
*flags |= FLAG_FOUND;
speak_missing_thousands--;
if(skipwords)
dictionary_skipwords = skipwords;
return(1);
} // end of TranslateNumber_1