Browse Source

Preserve the sourceix property of a deleted phoneme for replaced phonemes.

master
Reece H. Dunn 6 years ago
parent
commit
cf6d14783c

+ 8
- 1
src/libespeak-ng/phonemelist.c View File

@@ -52,9 +52,14 @@ static int SubstitutePhonemes(PHONEME_LIST *plist_out, int n_ph_list2, PHONEME_L
bool word_end;
PHONEME_LIST2 *plist2;
PHONEME_TAB *next = NULL;
int deleted_sourceix = -1;

for (ix = 0; (ix < n_ph_list2) && (n_plist_out < N_PHONEME_LIST); ix++) {
plist2 = &ph_list2[ix];
if (deleted_sourceix != -1) {
plist2->sourceix = deleted_sourceix;
deleted_sourceix = -1;
}

// don't do any substitution if the language has been temporarily changed
if (!(plist2->synthflags & SFLAG_SWITCHED_LANG)) {
@@ -87,8 +92,10 @@ static int SubstitutePhonemes(PHONEME_LIST *plist_out, int n_ph_list2, PHONEME_L
}
}

if (plist2->phcode == 0)
if (plist2->phcode == 0) {
deleted_sourceix = plist2->sourceix;
continue; // phoneme has been replaced by NULL, so don't copy it
}
}

// copy phoneme into the output list

+ 1
- 1
tests/language-phonemes.test View File

@@ -54,7 +54,7 @@ test_lang en c4ed41c6ef4a43bae30f3469fe886c7b456dd02d "ma na Na pa ta ka ba da g
test_lang en-029 cfd13bc57be7f495935c662472eae3d2c7200ebd "ma na Na pa ta ka ba da ga fa Ta sa Sa xa ha va Da za Za tSa dZa la ra ja wa t2a t#a d#a z#a r-a z/2a w#a m- n- N- _:_ mI mE ma m0 mV mU mi: mA: mO: mu: m3: mA@ mO@ mo@ mU@ mi@3 mIR mVR mi@ me@ mi m@ m3 me# mI# mI2 meI maI mOI moU maU maa mO2 maI@ maI3 maU@"
test_lang en-GB-scotland b802f6862386b748d4224b26a0fde05abfd20b3d "ma na Na pa ta ka ba da ga fa Ta sa Sa xa ha va Da za Za tSa dZa la ra ja wa t2a t#a d#a z#a r-a z/2a w#a m- n- N- _:_ mI mE ma m0 mV mU mi: mA: mO: mu: m3: mA@ mO@ mo@ mU@ mi@3 mIR mVR mi@ me@ mi m@ m3 me# mI# mI2 meI maI mOI moU maU maa mO2 maI@ maI3 maU@"
test_lang en-GB-x-gbclan 8f3d17600cfbfe77c5e92a7f8a89544a78452a7a "ma na Na pa ta ka ba da ga fa Ta sa Sa xa ha va Da za Za tSa dZa la ra ja wa t2a t#a d#a z#a r-a z/2a w#a m- n- N- _:_ mI mE ma m0 mV mU mi: mA: mO: mu: m3: mA@ mO@ mo@ mU@ mi@3 mIR mVR mi@ me@ mi m@ m3 me# mI# mI2 meI maI mOI moU maU maa mO2 maI@ maI3 maU@"
test_lang en-GB-x-gbcwmd 676ef3372d9487f3c1449f5d01c7d777d08d9661 "ma na Na pa ta ka ba da ga fa Ta sa Sa xa ha va Da za Za tSa dZa la ra ja wa t2a t#a d#a z#a r-a z/2a w#a m- n- N- _:_ mI mE ma m0 mV mU mi: mA: mO: mu: m3: mA@ mO@ mo@ mU@ mi@3 mIR mVR mi@ me@ mi m@ m3 me# mI# mI2 meI maI mOI moU maU maa mO2 maI@ maI3 maU@"
test_lang en-GB-x-gbcwmd 7c4102e1193bf1c64f8987d6fc9f830410023e3c "ma na Na pa ta ka ba da ga fa Ta sa Sa xa ha va Da za Za tSa dZa la ra ja wa t2a t#a d#a z#a r-a z/2a w#a m- n- N- _:_ mI mE ma m0 mV mU mi: mA: mO: mu: m3: mA@ mO@ mo@ mU@ mi@3 mIR mVR mi@ me@ mi m@ m3 me# mI# mI2 meI maI mOI moU maU maa mO2 maI@ maI3 maU@"
test_lang en-GB-x-rp f55d1a2c9ba5d69a10ccdd24f66e861bed0d0cff "ma na Na pa ta ka ba da ga fa Ta sa Sa xa ha va Da za Za tSa dZa la ra ja wa t2a t#a d#a z#a r-a z/2a w#a m- n- N- _:_ mI mE ma m0 mV mU mi: mA: mO: mu: m3: mA@ mO@ mo@ mU@ mi@3 mIR mVR mi@ me@ mi m@ m3 me# mI# mI2 meI maI mOI moU maU maa mO2 maI@ maI3 maU@"
test_lang en-US 1695d22c71aa55be6d0c1e123d332a17cdd4a4ca "ma na Na pa ta ka ba da ga fa Ta sa Sa xa ha va Da za Za tSa dZa la ra ja wa t2a t#a d#a z#a r-a z/2a w#a m- n- N- _:_ mI mE ma m0 mV mU mi: mA: mO: mu: m3: mA@ mO@ mo@ mU@ mi@3 mIR mVR mi@ me@ mi m@ m3 me# mI# mI2 meI maI mOI moU maU maa mO2 maI@ maI3 maU@"
test_lang eo cc2f7f352c6d299c81f6f95e730883f052dbc597 "ma na pa ta ka ba da ga fa sa Sa xa ha va za Za tsa tSa dza dZa la ja wa ra _:_ ma me mo mi mu maU meU maI meI moU muI"

+ 1
- 1
tests/language-pronunciation.test View File

@@ -140,7 +140,7 @@ test_phonemes en-GB-x-gbclan "Lexical Sets" \
"kit dress trap lot strut foot fleece palm thought goose nurse start north force cure near square term bird happy comma letter explore roses rabbit face price choice goat mouth bath cloth million divided"

test_phonemes en-GB-x-gbcwmd "Lexical Sets" \
" k'It dr'Es tr'ap l'0t str'Vt f'Ut fl'i:s p'A:m T'O:t g'u:s n'3:s st'A@t n'O@T f'O@s kj'U@ n,i@3 skw'e@ t'3:m b'3:d'api k'0m@ l'Et3r- Ekspl'O@ r'oUzI2z r'abIt f'eIs pr'aIs tS'OIs g'oUt m'aUT b'aaT kl'0T m'Ili@n dI2v'aIdI2d" \
" k'It dr'Es tr'ap l'0t str'Vt f'Ut fl'i:s p'A:m T'O:t g'u:s n'3:s st'A@t n'O@T f'O@s kj'U@ n,i@3 skw'e@ t'3:m b'3:d 'api k'0m@ l'Et3r- Ekspl'O@ r'oUzI2z r'abIt f'eIs pr'aIs tS'OIs g'oUt m'aUT b'aaT kl'0T m'Ili@n dI2v'aIdI2d" \
"kit dress trap lot strut foot fleece palm thought goose nurse start north force cure near square term bird happy comma letter explore roses rabbit face price choice goat mouth bath cloth million divided"

test_phonemes en-GB-x-rp "Lexical Sets" \

+ 3
- 0
tests/translate.test View File

@@ -37,6 +37,9 @@ test_phonemes hi " r'UcI" "रुचि"
test_phonemes hi " dUk'a:n" "दुकान"
test_phonemes hi " ka:n'u:n" "कानून"

# A deleted phoneme at the start of a word should preserve the sourceix property.
test_phonemes en-GB-x-gbcwmd " 'av" "have"

#----- Emoji [http://www.unicode.org/reports/tr51/tr51-12.html] -----

# ED-3 - emoji_character

Loading…
Cancel
Save