项目介绍:MARS5-TTS
项目背景
MARS5-TTS 是 Camb.ai 推出的一款全新语音合成(TTS)模型。这一模型以其独特的发音表现而著称,尤其在处理复杂韵律场景时表现出色。这使得它在像体育解说、动漫配音等需要高难度和多样化语音的场景中,大放异彩。
模型架构
MARS5-TTS 采用了由自回归(AR)和非自回归(NAR)组成的两阶段管道。当用户提供5秒的参考音频和一小段文本后,模型便可生成目标语音。其工作原理是先通过自回归 Transformer 模型编码出粗略的语音特征(L0),然后在一个多项 Diffusion 模型中结合文本和参考特征进行进一步的细化,最终生成目标语音。
核心功能
MARS5-TTS 可通过标点符号和大小写来调控生成语音的韵律。例如,在文本中加上逗号可以在语音中生成停顿,而将文字大写可以强调某些词语。这种自然的控制方式使得语音生成输出的韵律更加接近自然。
声音克隆
在声音克隆方面,用户可以通过2至12秒的参考音频来指定说话人的身份,同时,提供参考的文字转录可以实现“深度克隆”,进一步提高语音合成的质量,虽然这会略微增加生成时间。
使用指南
快速开始
为了简化模型加载过程,该模型可以通过 torch.hub
直接加载,用户无需克隆代码仓库。简要步骤如下:
-
使用 pip 安装必要的依赖:
pip install --upgrade torch torchaudio librosa vocos encodec safetensors regex
-
通过
torch.hub
加载模型:import torch, librosa mars5, config_class = torch.hub.load('Camb-ai/mars5-tts', 'mars5_english', trust_repo=True)
-
选择参考音频:
wav, sr = librosa.load('<path_to_audio>.wav', sr=mars5.sr, mono=True) wav = torch.from_numpy(wav) ref_transcript = "<transcript_of_reference_audio>"
-
进行语音合成:
deep_clone = True cfg = config_class(deep_clone=deep_clone, rep_penalty_window=100, top_k=100, temperature=0.7, freq_penalty=3) ar_codes, output_audio = mars5.tts("The quick brown rat.", wav, ref_transcript, cfg=cfg)
使用 Docker
用户还可以通过 DockerHub 获取 Docker 镜像,或者自行从提供的 Dockerfile 构建镜像。
模型详细信息
MARS5 提供 AR 和 NAR 的 fp16 检查点,并且内嵌了配置与分词器。对于硬件要求,用户需要具备至少能够存储 1200M 参数的 GPU。
未来计划
尽管 MARS5 已经能够生成高质量的语音输出,但仍有些方面需要提高。项目团队正在努力提高其稳定性和性能,例如优化推理的稳定性、速度,以及改善长参考音频下的选择和表现等。
加入我们
MARS5 是开放源代码项目,任何人都可以贡献自己的改进建议和代码。Camb.ai 一直在招募有志于语音技术领域的人才,欢迎对我们的团队有兴趣的朋友加入我们。
通过这些信息,任何对大规模语音生成技术感兴趣的人都可以更好的理解 MARS5-TTS 项目,并参与其中。