diff --git a/src/libespeak-ng/intonation.c b/src/libespeak-ng/intonation.c index a505be48..afd296aa 100644 --- a/src/libespeak-ng/intonation.c +++ b/src/libespeak-ng/intonation.c @@ -844,7 +844,16 @@ static void CalcPitches_Tone(Translator *tr) if (p->synthflags & SFLAG_SYLLABLE) { tone_ph = p->tone_ph; tph = phoneme_tab[tone_ph]; - + // Hakka + if (tr->translator_name == L3('h','a','k')){ + if (prev_tph->mnemonic == 0x31){ // [previous one is 1st tone] + // [this one is 1st, 4th, or 6th tone] + if (tph->mnemonic == 0x31 || tph->mnemonic == 0x34 || + tph->mnemonic == 0x36){ + prev_p->tone_ph = PhonemeCode('2'); + } + } + } // Mandarin if (tr->translator_name == L('z', 'h')) { if (tone_ph == 0) {