20200814:汉字转语音(语音合成)(一):技术调研和准备
程序员文章站
2022-07-14 19:55:37
...
一、参考资料
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中文语音合成
-
https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/79850191
-
https://blog.csdn.net/weixin_41763134/article/details/90900539
-
https://blog.csdn.net/weixin_41021342/article/details/104984800
二、模型算法
1、开源
-
Wavenet
-
Deepvoice
-
Tacotron(端到端)
-
Tacotron2(端到端)
2、优缺点
-
Wavenet的缺陷是需要进行自回归,即把这一次的输出附加到下一次运算的输入中,使得运算无法并行进行,速度较慢,并且它并不是端到端,它需要对TTS前端语言的特征进行调节。
-
Tacotron则使用了RNN模型,具有短期记忆、梯度消失严重等问题,导致信号合成效果并不是很好,不如Wavenet。
-
Tacotron2则将Wavenet和Tacotron相结合,吸取了两者的优势并解决了两者的问题。
三、Tacotron2 实践