[TTS]Canton phonetic fix, test=tts (#2950)

pull/2964/head
HuangLiangJie 1 year ago committed by GitHub
parent c8d5a01bdb
commit 11bc392617
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -116,6 +116,6 @@ python3 ${BIN_DIR}/../synthesize_e2e.py \
--output_dir=exp/default/test_e2e \
--phones_dict=fastspeech2_canton_ckpt_1.4.0/phone_id_map.txt \
--speaker_dict=fastspeech2_canton_ckpt_1.4.0/speaker_id_map.txt \
--spk_id=0 \
--spk_id=10 \
--inference_dir=exp/default/inference
```

@ -25,7 +25,7 @@ if [ ${stage} -le 0 ] && [ ${stop_stage} -ge 0 ]; then
--output_dir=${train_output_path}/test_e2e \
--phones_dict=dump/phone_id_map.txt \
--speaker_dict=dump/speaker_id_map.txt \
--spk_id=0 \
--spk_id=10 \
--inference_dir=${train_output_path}/inference
fi
@ -48,6 +48,6 @@ if [ ${stage} -le 1 ] && [ ${stop_stage} -ge 1 ]; then
--output_dir=${train_output_path}/test_e2e \
--phones_dict=dump/phone_id_map.txt \
--speaker_dict=dump/speaker_id_map.txt \
--spk_id=0 \
--spk_id=10 \
--inference_dir=${train_output_path}/inference
fi

@ -15,16 +15,18 @@ def check(str):
return False
consonants = [
'p', 'b', 't', 'd', 'ts', 'dz', 'k', 'g', 'kw', 'gw', 'f', 'h', 'l', 'm',
'ng', 'n', 's', 'y', 'w', 'c', 'z', 'j'
INITIALS = [
'aa', 'aai', 'aak', 'aap', 'aat', 'aau', 'ai', 'au', 'ap', 'at', 'ak', 'a',
'p', 'b', 'e', 'ts', 't', 'dz', 'd', 'kw', 'k', 'gw', 'g', 'f', 'h', 'l',
'm', 'ng', 'n', 's', 'y', 'w', 'c', 'z', 'j', 'ong', 'on', 'ou', 'oi', 'ok',
'o', 'uk', 'ung'
]
def get_lines(canton):
for consonant in consonants:
if canton.startswith(consonant):
c, v = canton[:len(consonant)], canton[len(consonant):]
for init in INITIALS:
if canton.startswith(init):
c, v = canton[:len(init)], canton[len(init):]
return canton + ' ' + c + ' ' + v
return canton + ' ' + canton
@ -73,7 +75,7 @@ if __name__ == "__main__":
canton_list = canton_list.split(' ')
all_canton.extend(canton_list)
all_canton = set(all_canton)
all_canton = sorted(list(set(all_canton)))
with open(args.output_lexicon, 'w') as f:
for canton in all_canton:

@ -17,4 +17,5 @@
017 佢晨早啪奶茶,同场追加奶绿,又狂怼西米露,喫啫啫猪脚煲
018 喂!三点几嚟,饮茶先啦,做咁多都冇用嘅,老细唔锡你嘅嚟
019 嗱嗱声即刻走去搵嘢做,人必须知道自己嘅用途
020 人人都揸住枝苏格兰场非工业用国际线路自动溶雪16哇佬风油軚垂直升降镭射彩色洗衣干衣气垫毛笔一枝
020 人人都揸住枝苏格兰场非工业用国际线路自动溶雪16哇佬风油軚垂直升降镭射彩色洗衣干衣气垫毛笔一枝
021 各个国家有各个国家嘅国歌

@ -21,8 +21,10 @@ import ToJyutping
from paddlespeech.t2s.frontend.zh_normalization.text_normlization import TextNormalizer
INITIALS = [
'p', 'b', 't', 'd', 'ts', 'dz', 'k', 'g', 'kw', 'gw', 'f', 'h', 'l', 'm',
'ng', 'n', 's', 'y', 'w', 'c', 'z', 'j'
'aa', 'aai', 'aak', 'aap', 'aat', 'aau', 'ai', 'au', 'ap', 'at', 'ak', 'a',
'p', 'b', 'e', 'ts', 't', 'dz', 'd', 'kw', 'k', 'gw', 'g', 'f', 'h', 'l',
'm', 'ng', 'n', 's', 'y', 'w', 'c', 'z', 'j', 'ong', 'on', 'ou', 'oi', 'ok',
'o', 'uk', 'ung'
]
INITIALS += ['sp', 'spl', 'spn', 'sil']
@ -32,8 +34,13 @@ def get_lines(cantons: List[str]):
for canton in cantons:
for consonant in INITIALS:
if canton.startswith(consonant):
c, v = canton[:len(consonant)], canton[len(consonant):]
phones = phones + [c, v]
if canton.startswith("nga"):
c, v = canton[:len(consonant)], canton[len(consonant):]
phones = phones + [canton[2:]]
else:
c, v = canton[:len(consonant)], canton[len(consonant):]
phones = phones + [c, v]
break
return phones

Loading…
Cancel
Save