20200814:汉字转语音(语音合成)(一):技术调研和准备

一、参考资料

1、https://zhuanlan.zhihu.com/p/26726297

参考语录:汉字转语音实现就分为两步,第一步将汉字转为拼音,第二步通过拼音调用相匹配的音频文件。

2、汉字转拼音

参考:https://blog.csdn.net/mydistance/article/details/85009791

涉及的第三方库:xpinyin和pypinyin

from xpinyin import Pinyin 
# 实例拼音转换对象 
p = Pinyin() 
# 进行拼音转换
ret = p.get_pinyin(u"汉语拼音转换", tone_marks='marks') 
ret1 = p.get_pinyin(u"汉语拼音转换", tone_marks='numbers') 
print(ret+'\n'+ret1) 
# 得到转化后的结果 
# hàn-yǔ-pīn-yīn-zhuǎn-huàn 
# han4-yu3-pin1-yin1-zhuan3-huan4
import pypinyin

# 不带声调的(style=pypinyin.NORMAL)
def pinyin(word):
    s = ''
    for i in pypinyin.pinyin(word, style=pypinyin.NORMAL):
        s += ''.join(i)
    return s

# 带声调的(默认)
def yinjie(word):
    s = ''
    # heteronym=True开启多音字
    for i in pypinyin.pinyin(word, heteronym=True):
        s = s + ''.join(i) + " "
    return s

if __name__ == "__main__":
    print(pinyin("忠厚传家久"))
    print(yinjie("诗书继世长"))

3、Tacotron中文语音合成

二、模型算法

1、开源

  • Wavenet

  • Deepvoice

  • Tacotron(端到端)

  • Tacotron2(端到端)

2、优缺点

  • Wavenet的缺陷是需要进行自回归,即把这一次的输出附加到下一次运算的输入中,使得运算无法并行进行,速度较慢,并且它并不是端到端,它需要对TTS前端语言的特征进行调节。

  • Tacotron则使用了RNN模型,具有短期记忆、梯度消失严重等问题,导致信号合成效果并不是很好,不如Wavenet。

  • Tacotron2则将Wavenet和Tacotron相结合,吸取了两者的优势并解决了两者的问题。

三、Tacotron2 实践

猜你喜欢

转载自blog.csdn.net/weixin_38192254/article/details/115208007