mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-11-03 14:17:12 +00:00
[1.43.31]
*_list files: added attribute $sentence. *_rules files: added attributes $w_alt, $p_alt. phoneme definitions: added attribute no_pause. -X command-line option: Show the matching of multiple-word entries in *_list files. espeakedit: Add menu option to compile the intonation data file (the data is not yet used). Start language: Bulgarian. lang=bg (Bulgarian): Add feature in espeakedit to make bg_listx from a lexicon of words which have stress position mark-up. espeakedit: Change the frame-length field from Spin Control to Text Control to allow better access from screen-readers. Language options: add an option to the Regressive Voicing option to de-voice the final consonant of words. Don't speak "dot" if an ellipsis is followed by a dot. Intonation: change the internal pitch unit to give finer control, and align with the values displayed in the espeakedit Prosody window. git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@243 d46cf337-b52f-0410-862d-fd96e6ae7743
This commit is contained in:
+20
-11
@@ -193,7 +193,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
|
||||
|
||||
if((type==phSTOP) || type==(phFRICATIVE))
|
||||
{
|
||||
if(voicing==0)
|
||||
if((voicing==0) && (regression & 0xf))
|
||||
{
|
||||
voicing = 1;
|
||||
}
|
||||
@@ -206,7 +206,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
|
||||
else
|
||||
if((type==phVSTOP) || type==(phVFRICATIVE))
|
||||
{
|
||||
if(voicing==0)
|
||||
if((voicing==0) && (regression & 0xf))
|
||||
{
|
||||
voicing = 2;
|
||||
}
|
||||
@@ -229,10 +229,19 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
|
||||
voicing = 0;
|
||||
}
|
||||
}
|
||||
if((regression & 0x4) && (plist2[j].sourceix))
|
||||
if(plist2[j].sourceix)
|
||||
{
|
||||
// stop propagation at a word boundary
|
||||
voicing = 0;
|
||||
if(regression & 0x04)
|
||||
{
|
||||
// stop propagation at a word boundary
|
||||
voicing = 0;
|
||||
}
|
||||
if(regression & 0x10)
|
||||
{
|
||||
// devoice word-final consonants, unless propagating voiced
|
||||
if(voicing == 0)
|
||||
voicing = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -312,10 +321,7 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
|
||||
|
||||
InterpretPhoneme(tr, 0x100, plist3, &phdata);
|
||||
|
||||
if((alternative = phdata.pd_param[pd_CHANGEPHONEME]) == 1)
|
||||
continue; // NULL phoneme, discard
|
||||
|
||||
if(alternative > 1)
|
||||
if((alternative = phdata.pd_param[pd_CHANGEPHONEME]) > 0)
|
||||
{
|
||||
PHONEME_TAB *ph2;
|
||||
ph2 = ph;
|
||||
@@ -323,6 +329,9 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
|
||||
plist3->phcode = alternative;
|
||||
plist3->ph = ph;
|
||||
|
||||
if(alternative == 1)
|
||||
continue; // NULL phoneme, discard
|
||||
|
||||
if(ph->type == phVOWEL)
|
||||
{
|
||||
plist3->synthflags |= SFLAG_SYLLABLE;
|
||||
@@ -553,8 +562,8 @@ void MakePhonemeList(Translator *tr, int post_pause, int start_sentence)
|
||||
|
||||
phlist[ix].prepause = 0;
|
||||
phlist[ix].amp = 20; // default, will be changed later
|
||||
phlist[ix].pitch1 = 0x400;
|
||||
phlist[ix].pitch2 = 0x400;
|
||||
phlist[ix].pitch1 = 255;
|
||||
phlist[ix].pitch2 = 255;
|
||||
ix++;
|
||||
}
|
||||
phlist[ix].newword = 2; // end of clause
|
||||
|
||||
Reference in New Issue
Block a user