coqui(一)phoneme到sequence

英文g2p

text2phone函数
gruut.sentences(text, lang=language, espeak=use_espeak_phonemes)将句子分词,并将每个词划为音素序列

转化为用|划分的音素序列字符串

phoneme_to_sequence

 将上述的音素序列字符串,分割,取每个音素的映射索引,加入到sequence列表中

取每个phoneme的索引用_phoneme_to_sequence,

phome到id的映射

make_symbols

phoneme字符在character config文件中(逗号,也在这里面)

_phonemes_to_id = {s: i for i, s in enumerate(_phonemes)} # 音素到索引的映射

textcleaner

clean_text = _clean_text(text, cleaner_names)清理换行符等符号


中文g2p 

汉字文本转音素
chinese_text_to_phonemes(text: str) -> str

text 卡尔普陪外孙玩滑梯。

tokenized_text = jieba.cut(text, HMM=False)
tokenized_text = " ".join(tokenized_text)

tokenized_text 卡尔普 陪 外孙 玩 滑梯 。

pinyined_text: List[str] = _chinese_character_to_pinyin(tokenized_text)

pinyined_text ['ka3', 'er3', 'pu3', ' ', 'pei2', ' ', 'wai4', 'sun1', ' ', 'wan2', ' ', 'hua2', 'ti1', ' 。']

results: List[str] = []
for token in pinyined_text:
    if token[-1] in "12345":  # TODO transform to is_pinyin()
        print("token",token)
        pinyin_phonemes = _chinese_pinyin_to_phoneme(token) 拼音转国际音标phoneme
        print("pinyin_phonemes",pinyin_phonemes)
        results += list(pinyin_phonemes)
    else:  # is ponctuation or other 分隔符直接加
        results += list(token)
print("results",results)

例:老虎 幼 崽 与 宠物犬 玩耍 。

results ['l', 'a', 'ʌ', '3', 'x', 'u', '3', ' ', 'i', 'o', '4', ' ', 'd', 'z', 'a', 'i', '3', ' ', 'y', '3', ' ', 'ʈ', 'ʂ', 'o', 'ŋ', '3', 'w', 'u', '4', 't', 'ɕ', 'y', 'ɛ', 'n', '3', ' ', 'w', 'a', 'n', '2', 'ʂ', 'u', 'a', '3', ' ', '。']

return "|".join(results)

|加入 l|a|ʌ|3|x|u|3| |i|o|4| |d|z|a|i|3| |y|3| |ʈ|ʂ|o|ŋ|3|w|u|4|t|ɕ|y|ɛ|n|3| |w|a|n|2|ʂ|u|a|3| |。

音素到序列
phoneme_to_sequence

custom_symbols为TTSDataset里面的属性

custom_symbols ['_', '!', "'", '(', ')', ',', '-', '.', ':', ';', '?', ' ', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '
_phonemes_to_id custom_symbols{'_': 0, '!': 64, "'": 65, '(': 66, ')': 67, '

clean_text 老虎幼崽与宠物犬玩耍。
to_phonemes l|a|ʌ|3|x|u|3| |i|o|4| |d|z|a|i|3| |y|3| |ʈ|ʂ|o|ŋ|3|w|u|4|t|ɕ|y|ɛ|n|3| |w|a|n|2|ʂ|u|a|3| |。

sequence [169, 99, 95, 154, 80, 74, 75, 90, 74, 117, 147, 99, 75, 74, 76, 74, 118, 150, 90, 128, 178, 80, 116, 183, 76, 91, 131, 74, 178, 99, 131, 150, 80, 99, 74]

blank_sequence [191, 169, 191, 99, 191, 95, 191, 154, 191, 80, 191, 74, 191, 75, 191, 90, 191, 74, 191, 117, 191, 147, 191, 99, 191, 75, 191, 74, 191, 76, 191, 74, 191, 118, 191, 150, 191, 90, 191, 128, 191, 178, 191...

-》array

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值