Zonos新型TTS语音克隆模型开源,如何集成部署?

人工智能 潘老师 2个月前 (02-12) 275 ℃ (0) 扫码查看

最近,语音技术领域王炸消息——新型高保真TTS语音克隆模型Zonos开源了!这个消息一经传出,就在技术圈引起了不小的轰动。短短不到5天时间,它在GitHub上就收获了1.1k的标星,人气相当高。今天,咱们就来好好聊聊这个Zonos模型,教大家如何集成部署Zonos!

1、Zonos是什么?

Zonos是一款功能强大的高保真TTS模型,简单来说,它能把文本转化为听起来特别真实的语音,可以快速生成带有特定情绪的语音,也能精准模仿某个人的声音。

和其他TTS模型相比,Zonos还有个很大的优势,就是它的训练数据非常丰富。虽然大部分数据是英文的,但也包含了大量的中文、日语等其他语言的数据,所以在对中文的支持上,Zonos要更胜一筹。

目前,Zonos提供了两种1.6B模型,分别是Transformer和SSM。这里面的SSM模型可不简单,它是首个能用于TTS(也就是把文本变成语音)的开源模型。凭借独特的结构设计,SSM模型让语音生成的质量和多样性都有了很大提升。

2、Zonos核心亮点

(一)高保真语音克隆

只需要输入5到30秒的语音样本,Zonos就能克隆出高保真的语音,克隆出来的声音和原声音非常相似,几乎可以以假乱真。

(二)多语言支持

它支持多种语言,像英语、日语、中文、法语和德语等。

(三)情绪调节与语音定制

在语音定制方面,Zonos提供了很多选项,可以调整音高、语速、音质,还能让语音带上悲伤、恐惧、愤怒、快乐和惊讶等不同的情绪,能让生成的语音更符合使用场景。

(四)前缀匹配与说话人定制

通过添加文本和音频前缀,Zonos能实现更精细的说话人匹配效果,进一步提升语音克隆的精准度。

(五)超高性能与实时生成

在性能方面,Zonos表现得十分出色。尤其是在RTX 4090显卡上运行时,实时率能达到约2倍,生成语音的速度非常快。

(六)内置简易界面

Zonos内置了一个基于gradio的简易界面,操作简单易懂,可以轻松上手。

3.、如何使用Zonos?

(一)小白用户体验测试版

对于小白用户来说,想要体验Zonos的魅力,直接去测试版就可以。目前有两个Beta地址:

在测试版页面,不仅可以试试默认的语音效果,还能点击麦克风直接克隆自己的声音,或者拖放提前录制好的语音文件进行克隆。

(二)开发者部署与使用

对于开发者而言,Zonos的安装和使用也很方便,可以通过Docker快速部署。具体步骤如下:

git clone https://github.com/Zyphra/Zonos.git
cd Zonos

# 启动gradio界面
docker compose up

# 或者,如果是开发用途,可以这样操作
docker build -t Zonos.
docker run -it --gpus=all --net=host -v /path/to/Zonos:/Zonos -t Zonos
cd /Zonos
python sample.py # 这会在/Zonos目录下生成一个sample.wav文件

在Python中使用Zonos的示例代码如下:

import torch
import torchaudio
from zonos.model import Zonos
from zonos.conditioning import make_cond_dict

# 从预训练模型中加载Zonos,这里使用的是Transformer模型,并且指定在cuda设备上运行
# 如果想用Hybrid模型,把"Zyphra/Zonos-v0.1-transformer"替换为"Zyphra/Zonos-v0.1-hybrid"即可
model = Zonos.from_pretrained("Zyphra/Zonos-v0.1-transformer", device="cuda") 

# 加载示例音频文件
wav, sampling_rate = torchaudio.load("assets/exampleaudio.mp3")
# 根据加载的音频生成说话人嵌入向量
speaker = model.make_speaker_embedding(wav, sampling_rate)

# 构建包含文本、说话人、语言等信息的条件字典
cond_dict = make_cond_dict(text="Hello, world!", speaker=speaker, language="en-us")
# 根据条件字典准备模型所需的条件信息
conditioning = model.prepare_conditioning(cond_dict)

# 生成语音代码
codes = model.generate(conditioning)

# 解码语音代码并将结果转换到CPU上
wavs = model.autoencoder.decode(codes).cpu()
# 保存生成的语音为sample.wav文件,指定采样率
torchaudio.save("sample.wav", wavs[0], model.autoencoder.sampling_rate)

这些代码展示了如何在Python环境中使用Zonos生成语音,开发者可以根据实际需求进行调整和拓展。

4、项目地址

最后附上项目地址和模型地址,如下:

GitHub项目地址
模型地址

对语音技术感兴趣的朋友,不妨去试试Zonos,感受一下!


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/ai/14238.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】