MegaTTS 3:字节跳动推出的一款零样本文本到语音合成系统
MegaTTS 3是什么?
MegaTTS 3 是字节跳动推出的零样本文本到语音合成系统。它采用轻量级的扩散模型,将语音分解为内容、音色、韵律等属性进行建模,支持超高音质的语音克隆、双语合成、口音强度控制等功能,可应用于语音合成、语音编辑等场景。
核心架构与技术
轻量级且高效的扩散模型:MegaTTS 3 的核心是 TTS Diffusion Transformer,其参数量仅为 0.45B,在保证高效的同时,能够生成高质量的语音。
语音分解与建模:将语音分解为内容、音色、韵律等不同属性,并为每个属性设计了合适的模块进行建模。例如,使用全局向量来建模音色,因为音色是随时间缓慢变化的全局属性;利用基于 VQGAN 的声学模型生成语谱图,以及基于潜在码的语言模型来拟合韵律的分布,因为韵律在句子中快速变化,语言模型能够捕捉局部和长距离的依赖关系。
声码器:采用基于 GAN 的声码器来适当构建相位,而不需要语言模型对相位进行建模。
MegaTTS 3功能特点
超高音质的语音克隆:能够生成与目标说话人高度相似的语音。
双语支持:支持中文和英文,以及中英混合的语音合成。
可控性:支持口音强度控制,并且未来还将支持更精细的发音/时长调整。
零样本语音合成:能够在没有目标说话人特定语音数据的情况下,生成其语音。
MegaTTS 3应用场景
语音合成:可用于各种需要将文本转换为语音的场景,如有声读物、语音播报等。
语音编辑:能够对语音进行编辑和修改,以满足不同的需求。
跨语言语音合成:支持跨语言的语音合成任务。
MegaTTS 3使用教程
命令行工具:提供了命令行界面,用户可以通过指定输入的语音提示文件和文本内容,生成合成语音。例如:
标准语音合成命令:
CUDA_VISIBLE_DEVICES=0 python tts/infer_cli.py --input_wav 'assets/Chinese_prompt.wav' --input_text "另一边的桌上,一位读书人嗤之以鼻道,'佛子三藏,神子燕小鱼是什么样的人物,李家的那个李子夜如何与他们相提并论?'" --output_dir ./gen
带有口音控制的语音合成命令:
CUDA_VISIBLE_DEVICES=0 python tts/infer_cli.py --input_wav 'assets/English_prompt.wav' --input_text '这是一条有口音的音频。' --output_dir ./gen --p_w 1.0 --t_w 3.0
Web UI:还支持通过 Web UI 进行语音合成。
MegaTTS 3安装
环境要求:需要 Python 3.9 环境。
模型下载:预训练模型的检查点可以从 Google Drive 或 Hugging Face 下载,并放置在指定目录。
安装步骤:
# 创建 Python 3.9 的 conda 环境 conda create -n megatts3-env python=3.9 conda activate megatts3-env # 安装依赖 pip install -r requirements.txt
github项目:https://github.com/bytedance/MegaTTS3