拼接法和参数法是两种Text-To-Speech(TTS)技术路线。近年来参数TTS系统获得了广泛的应用,故此处仅涉及参数法。
参数TTS系统可分为两大模块:前端和后端。 前端包含文本正则、分词、多音字预测、文本转音素和韵律预测等模块,它的功能是把输入文本进行解析,获得音素、音调、停顿和位置等语言学特征。 后端包含时长模型、声学模型和声码器,它的功能是将语言学特征转换为语音。其中,时长模型的功能是给定语言学特征,获得每一个建模单元(例如:音素)的时长信息;声学模型则基于语言学特征和时长信息预测声学特征;声码器则将声学特征转换为对应的语音波形。

前端模块我们采用模型结合规则的方式灵活处理各种场景下的文本,后端模块则采用SAM-BERT + HIFIGAN提供高表现力的流式合成效果。
后端模块中声学模型采用自研的SAM-BERT,将时长模型和声学模型联合进行建模。

后端模块中声码器采用HIFI-GAN, 基于GAN的方式利用判别器(Discriminator)来指导声码器(即生成器Generator)的训练,相较于经典的自回归式逐样本点CE训练, 训练方式更加自然,在生成效率和效果上具有明显的优势。

在HIFI-GAN开源工作[1]的基础上,我们针对16k, 48k采样率下的模型结构进行了调优设计,并提供了基于因果卷积的低时延流式生成和chunk流式生成机制,可与声学模型配合支持CPU、GPU等硬件条件下的实时流式合成。
git lfs clone https://www.modelscope.cn/iic/speech_sambert-hifigan_tts_zh-cn_16k.gitmodelscope库安装:
modelscope基础功能: pip install modelscope -i https://mirrors.cloud.aliyuncs.com/pypi/simplemodelscope cv功能: pip install "modelscope[cv]" -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.htmlmodelscope audio功能: pip install "modelscope[audio]" -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.htmlutf-8编码,整体长度建议不超过30字from modelscope.outputs import OutputKeys
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
def text_to_speech(text, speech_file_path, voice_type):
model_id = 'damo/speech_sambert-hifigan_tts_zh-cn_16k'
sambert_hifigan_tts = pipeline(task=Tasks.text_to_speech, model=model_id)
output = sambert_hifigan_tts(input=text, voice=voice_type)
wav = output[OutputKeys.OUTPUT_WAV]
with open(speech_file_path, 'wb') as f:
f.write(wav)
if __name__ == "__main__":
text_to_speech('待合成文本', 'output.wav', 'zhitian_emo')
更多【编程技术-【语音合成】中文-多情感领域-16k-多发音人】相关视频教程:www.yxfzedu.com