vits2

GitHub
637 73 较难 1 次阅读 1周前MIT音频开发框架
AI 解读 由 AI 自动生成,仅供参考

VITS2 是一款先进的单阶段文本转语音(TTS)开源模型,由韩国 SK Telecom 团队研发。它旨在将文字直接高效地合成为自然流畅的语音,无需传统多阶段流程的复杂拼接。

针对早期单阶段模型存在的发音不自然、计算效率低以及过度依赖人工标注音素等问题,VITS2 通过引入改进的对抗学习机制和全新的架构设计给出了出色解决方案。其核心亮点在于显著降低了对外部音素转换工具的依赖,实现了真正的端到端训练与推理。这不仅让合成语音在自然度和说话人特征相似度上有了质的飞跃,还大幅提升了训练和生成的速度,使得在单张显卡上也能高效运行。

这款工具非常适合人工智能研究人员、语音技术开发者以及对高质量语音合成有需求的技术团队使用。对于希望探索前沿 TTS 技术、构建多说话人语音系统或优化现有语音产品的专业人士而言,VITS2 提供了一个性能强劲且架构优雅的基准方案。虽然目前部分非官方实现仍在完善中,但其展现出的技术潜力已为语音合成领域带来了新的突破方向。

使用场景

一家专注于有声书制作的初创团队,正试图将大量经典文学作品快速转化为高质量的多角色语音版本,以降低成本并缩短上线周期。

没有 vits2 时

  • 流程繁琐且延迟高:必须采用“文本转音素”再“音素转语音”的两阶段流水线,导致推理速度慢,难以满足实时生成需求。
  • 声音表现不自然:生成的语音在长句或复杂语境下常出现机械感的停顿和语调断裂,缺乏人类讲述者的情感连贯性。
  • 多角色适配困难:切换不同角色音色时,声音特征相似度低,听起来像完全不同的陌生人,破坏了故事的整体沉浸感。
  • 过度依赖人工标注:模型严重依赖精确的音素转换规则,一旦遇到生僻字或方言词汇,需要大量人工干预修正,极大拖慢生产进度。

使用 vits2 后

  • 端到端高效合成:利用 vits2 的单阶段架构直接由文本生成语音,去除了中间环节,训练与推理效率显著提升,实现了准实时输出。
  • 拟真度大幅跃升:通过对抗学习机制优化,vits2 生成的语音语调流畅自然,有效消除了以往的机械断续感,听感接近真人演播。
  • 多音色高度统一:在多说话人模式下,vits2 能更好地保持角色声音特征的一致性,让不同章节的同一角色听起来浑然一体。
  • 摆脱音素强依赖:vits2 显著降低了对预定义音素转换的依赖,能够端到端地自动处理生僻词和复杂句式,减少了 90% 以上的人工校对工作。

vits2 通过架构创新实现了从“机械朗读”到“自然演播”的跨越,让低成本、大规模生产高品质有声内容成为现实。

运行环境要求

操作系统
  • 未说明
GPU

需要 GPU(文中提到在 1 块 GPU 上训练),具体型号、显存大小及 CUDA 版本未明确说明,但需支持 PyTorch 2.0

内存

未说明

依赖
notes该项目是 VITS2 的非官方实现,目前仍在开发中。必须使用 Conda 创建 Python 3.11 环境以避免版本冲突。若使用文本清洗功能中的音素化(phonemize_text),需单独安装 espeak-ng。数据处理阶段需要手动下载数据集(如 LJSpeech 或 VCTK)并运行预处理脚本生成梅尔频谱图。
python3.11
torch>=2.0
numba
phonemizer
espeak-ng
PyYAML
librosa
scipy
numpy
matplotlib
tensorboard
vits2 hero image

快速开始

VITS2:通过对抗学习和架构设计提升单阶段文本转语音的质量与效率

孔正日、朴志勋、金凡正、金正民、孔度熙、金相镇

SK电讯,韩国

近年来,单阶段文本转语音模型得到了广泛研究,其性能已超越传统的两阶段流水线系统。尽管先前的单阶段模型取得了显著进展,但在间歇性不自然、计算效率以及对音素转换的高度依赖等方面仍有改进空间。在本工作中,我们提出了VITS2,这是一种通过改进前人工作的多个方面,高效合成更自然语音的单阶段文本转语音模型。我们提出了改进的结构和训练机制,并证明所提出的方法能够有效提升语音的自然度、多说话人模型中语音特征的相似性以及训练和推理的效率。此外,我们还展示了利用我们的方法可以显著降低先前工作对音素转换的强烈依赖,从而实现完全端到端的单阶段方案。

演示:https://vits-2.github.io/demo/

论文:https://arxiv.org/abs/2307.16430

VITS2的非官方实现。目前仍在开发中。更多详情请参阅待办事项

时长预测器 归一化流 文本编码器
Duration Predictor Normalizing Flows Text Encoder

音频样本

[正在进行中]

在LJSpeech数据集上使用1张GPU训练52,000步后的音频样本: https://github.com/daniilrobnikov/vits2/assets/91742765/d769c77a-bd92-4732-96e7-ab53bf50d783

安装:

克隆仓库

git clone git@github.com:daniilrobnikov/vits2.git
cd vits2

设置conda环境

假设您在克隆后已导航至vits2根目录。

注意: 本环境已在python3.11和conda环境下测试通过。对于其他Python版本,可能会遇到版本冲突问题。

PyTorch 2.0 请参考requirements.txt

# 安装所需包(适用于PyTorch 2.0)
conda create -n vits2 python=3.11
conda activate vits2
pip install -r requirements.txt

conda env config vars set PYTHONPATH="/path/to/vits2"

下载数据集

您有三种选择:LJ Speech、VCTK或自定义数据集。

  1. LJ Speech:LJ Speech数据集。用于单说话人TTS。
  2. VCTK:VCTK数据集。用于多说话人TTS。
  3. 自定义数据集:您可以使用自己的数据集。请参阅此处

LJ Speech数据集

  1. 下载并解压LJ Speech数据集
wget https://data.keithito.com/data/speech/LJSpeech-1.1.tar.bz2
tar -xvf LJSpeech-1.1.tar.bz2
cd LJSpeech-1.1/wavs
rm -rf wavs
  1. 预处理梅尔谱图。请参阅mel_transform.py
python preprocess/mel_transform.py --data_dir /path/to/LJSpeech-1.1 -c datasets/ljs_base/config.yaml
  1. 预处理文本。请参阅prepare/filelists.ipynb

  2. 重命名或将数据集文件夹创建为链接。

ln -s /path/to/LJSpeech-1.1 DUMMY1

VCTK数据集

  1. 下载并解压VCTK数据集
wget https://datashare.is.ed.ac.uk/bitstream/handle/10283/3443/VCTK-Corpus-0.92.zip
unzip VCTK-Corpus-0.92.zip
  1. (可选)将音频文件下采样至22050 Hz。请参阅audio_resample.ipynb

  2. 预处理梅尔谱图。请参阅mel_transform.py

python preprocess/mel_transform.py --data_dir /path/to/VCTK-Corpus-0.92 -c datasets/vctk_base/config.yaml
  1. 预处理文本。请参阅prepare/filelists.ipynb

  2. 重命名或将数据集文件夹创建为链接。

ln -s /path/to/VCTK-Corpus-0.92 DUMMY2

自定义数据集

  1. 创建包含wav文件的文件夹
  2. 复制datasets目录中的ljs_base并重命名为custom_base
  3. 打开custom_base(datasets/custom_base),修改config.yaml中的以下字段:
data:
  training_files: datasets/custom_base/filelists/train.txt
  validation_files: datasets/custom_base/filelists/val.txt
  text_cleaners: # 参见text/cleaners.py
    - phonemize_text
    - tokenize_text
    - add_bos_eos
  cleaned_text: true # 如果您完成了第6步,则为真。
  language: en-us # 您的数据集语言。请参阅espeak-ng
  sample_rate: 22050 # 根据您的数据集设置采样率
  ...
  n_speakers: 0 # 单说话人为0,多说话人为大于0
  1. 预处理梅尔谱图。请参阅mel_transform.py
python preprocess/mel_transform.py --data_dir /path/to/custom_dataset -c datasets/custom_base/config.yaml
  1. 预处理文本。请参阅prepare/filelists.ipynb

注意: 如果您想使用phonemize_text清理器,可能需要安装espeak-ng。请参阅espeak-ng

  1. 重命名或将数据集文件夹创建为链接。
ln -s /path/to/custom_dataset DUMMY3

训练示例

# LJ Speech
python train.py -c datasets/ljs_base/config.yaml -m ljs_base

# VCTK
python train_ms.py -c datasets/vctk_base/config.yaml -m vctk_base

# 自定义数据集(多说话人)
python train_ms.py -c datasets/custom_base/config.yaml  -m custom_base

推理示例

请参阅inference.ipynbinference_batch.ipynb

预训练模型

[正在进行中]

待办事项

  • 模型(VITS2)
    • 更新TextEncoder以支持说话人条件化
    • 在训练中支持高分辨率梅尔谱图。参见mel_transform.py
    • 带有高斯噪声的单调对齐搜索
    • 使用Transformer块的归一化流
    • 具有时步条件判别器的随机持续时间预测器
  • 模型(YourTTS)
    • 语言条件化
    • 说话人编码器
  • 模型(NaturalSpeech)
    • 先验增强后的KL散度损失
    • 用于端到端训练的GAN损失
  • 其他
    • 支持批量推理
    • 分词器中的特殊标记
    • 测试MAS的numba.jit和numba.cuda.jit实现。参见monotonic_align.py
    • TextEncoder与投影之间的KL散度损失
    • 支持流式推理。请参考vits_chinese
    • 使用optuna进行超参数调优
  • 未来工作
    • 将模型更新至VITS2。请参考VITS2
    • 将模型更新至具有零样本学习能力的YourTTS。参见YourTTS
    • 将模型更新至NaturalSpeech。请参考NaturalSpeech

致谢

  • 本仓库为基于VITS2的非官方实现。
  • 多语言的g2p工具基于phonemizer
  • 同时感谢GhatGPT提供的写作协助。

参考文献

VITS2

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|2周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

160.8k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

109.2k|★★☆☆☆|昨天
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|1周前
插件Agent图像

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|1周前
插件开发框架