VoiceCraft

VoiceCraft

实现零样本语音编辑和实时文本转语音的革命性技术

VoiceCraft是一个开源的语音技术项目,专注于零样本语音编辑和实时文本转语音。该项目仅需几秒钟的参考音频即可克隆或编辑未知声音,在有声书、网络视频和播客等真实场景中表现出色。VoiceCraft提供多种运行方式,包括Google Colab、Docker和本地环境,方便研究人员和开发者使用。项目在语音编辑和零样本TTS领域达到了先进水平,为语音技术的发展开辟了新方向。

VoiceCraft语音编辑文本转语音神经编解码语言模型零样本学习Github开源项目

VoiceCraft: 野外零样本语音编辑和文本转语音

论文 HuggingFace Colab Replicate YouTube演示 演示页面

简介

VoiceCraft是一个标记填充神经编解码语言模型,在野外数据(包括有声读物、网络视频和播客)的语音编辑和**零样本文本转语音(TTS)**任务上都达到了最先进的性能。

要克隆或编辑未见过的声音,VoiceCraft只需要几秒钟的参考音频。

如何运行推理

除了在Colab中运行Gradio外,还有三种方法:

  1. 在Google Colab中进行比Gradio UI更灵活的推理。请参阅快速入门colab
  2. 使用docker。请参阅快速入门docker
  3. 不使用docker。请参阅环境设置。如果选择此选项,您也可以在本地运行gradio
  4. 作为一个独立脚本,您可以轻松集成到其他项目中。请参阅快速入门命令行

当您在docker镜像中或已安装所有依赖项时,请查看inference_tts.ipynb

如果您想进行模型开发(如训练/微调),我建议按照环境设置训练进行操作。

新闻

:star: 2024年4月22日:330M/830M TTS增强模型已上线这里,通过gradio_app.pyinference_tts.ipynb加载它们!Replicate演示已上线,非常感谢@chenxwh

:star: 2024年4月11日:VoiceCraft Gradio现已在HuggingFace Spaces上可用这里!非常感谢@zuev-stepan@Sewlell@pgsoar@Ph0rk0z

:star: 2024年4月5日:我在gigaspeech和1/5的librilight上用TTS目标微调了giga330M。权重在这里。确保最大提示+生成长度 <= 16秒(由于我们的计算资源有限,我们不得不在训练数据中删除长于16秒的话语)。更强大的模型即将推出,敬请期待!

:star: 2024年3月28日:giga330M和giga830M的模型权重已在HuggingFace🤗上上线这里

待办事项

  • 代码库上传
  • 环境设置
  • 语音编辑和TTS的推理演示
  • 训练指导
  • RealEdit数据集和训练清单
  • 模型权重
  • 更好的训练/微调指导
  • Colab笔记本
  • HuggingFace Spaces演示
  • 命令行
  • 提高效率

快速入门Colab

:star: 要尝试使用VoiceCraft进行语音编辑或TTS推理,最简单的方法是使用Google Colab。 运行说明在Colab本身上。

  1. 尝试语音编辑
  2. 尝试TTS推理

快速入门命令行

:star: 要将其用作独立脚本,请查看tts_demo.py和speech_editing_demo.py。 请务必先设置您的环境。 如果没有参数,它们将运行本仓库其他地方用作示例的标准演示参数。您可以使用命令行参数指定独特的输入音频、 目标转录和推理超参数。运行帮助命令以获取更多信息: python3 tts_demo.py -h

快速入门Docker

:star: 要尝试使用VoiceCraft进行TTS推理,您也可以使用docker。感谢@ubergarm@jayc88实现这一功能。

已在Linux和Windows上测试,应该适用于任何安装了docker的主机。

# 1. 在有足够可用空间的驱动器上的目录中克隆仓库 git clone git@github.com:jasonppy/VoiceCraft.git cd VoiceCraft # 2. 假设您已安装带有nvidia容器工具包的docker(Windows在驱动程序中内置了这个) # https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/1.13.5/install-guide.html # sudo apt-get install -y nvidia-container-toolkit-base || yay -Syu nvidia-container-toolkit || echo 等等... # 3. 首先构建docker镜像 docker build --tag "voicecraft" . # 4. 尝试启动现有容器,否则创建一个新容器并传入所有GPU ./start-jupyter.sh # linux start-jupyter.bat # windows # 5. 现在在主机上打开一个网页,访问以下命令底部显示的URL: docker logs jupyter # 6. 可选:从另一个终端查看内部 docker exec -it jupyter /bin/bash export USER=(上面使用的你的linux用户名) export HOME=/home/$USER sudo apt-get update # 7. 确认容器内可以看到显卡 nvidia-smi # 8. 现在在浏览器中打开inference_tts.ipynb并逐个单元格运行 echo 祝你好运

环境设置

conda create -n voicecraft python=3.9.16 conda activate voicecraft pip install -e git+https://github.com/facebookresearch/audiocraft.git@c5157b5bf14bf83449c17ea1eeb66c19fb4bc7f0#egg=audiocraft pip install xformers==0.0.22 pip install torchaudio==2.0.2 torch==2.0.1 # 这假设您的系统兼容CUDA 11.7,否则请查看https://pytorch.org/get-started/previous-versions/#v201 apt-get install ffmpeg # 如果您尚未安装ffmpeg apt-get install espeak-ng # 下面安装的phonemizer的后端 pip install tensorboard==2.16.2 pip install phonemizer==3.2.1 pip install datasets==2.16.0 pip install torchmetrics==0.11.1 pip install huggingface_hub==0.22.2 # 安装MFA以获取强制对齐,这可能需要几分钟 conda install -c conda-forge montreal-forced-aligner=2.2.17 openfst=1.8.2 kaldi=5.5.1068 # 安装MFA英语字典和模型 mfa model download dictionary english_us_arpa mfa model download acoustic english_us_arpa # pip install huggingface_hub # conda install pocl # 上面给出了安装pocl的警告,不确定是否真的需要这个 # 运行ipynb conda install -n voicecraft ipykernel --no-deps --force-reinstall

如果在运行时遇到版本问题,请查看environment.yml以获取精确匹配。

推理示例

查看inference_speech_editing.ipynbinference_tts.ipynb

Gradio

在colab中运行

在Colab中打开

本地运行

环境设置后安装额外的依赖项:

apt-get install -y espeak espeak-data libespeak1 libespeak-dev apt-get install -y festival* apt-get install -y build-essential apt-get install -y flac libasound2-dev libsndfile1-dev vorbis-tools apt-get install -y libxml2-dev libxslt-dev zlib1g-dev pip install -r gradio_requirements.txt

从终端或gradio_app.ipynb运行gradio服务器:

python gradio_app.py

它已准备好在默认URL上使用。

如何使用

  1. (可选)选择模型
  2. 加载模型
  3. 转录
  4. (可选)调整一些参数
  5. 运行
  6. (可选)在长文本TTS模式下逐部分重新运行

一些功能

智能转录:只写您想生成的内容

TTS模式:零样本TTS

编辑模式:语音编辑

长文本TTS模式:轻松对长文本进行TTS

训练

要训练VoiceCraft模型,你需要准备以下部分:

  1. 语音样本及其对应的文字稿
  2. 使用如Encodec等工具将语音样本编码成代码
  3. 将文字稿转换为音素序列,并生成一个音素集(我们称之为vocab.txt)
  4. 清单(即元数据)

步骤1、2、3在./data/phonemize_encodec_encode_hf.py中处理,其中

  1. 通过HuggingFace下载Gigaspeech。注意,你需要签署一份协议才能下载该数据集(需要你的认证令牌)
  2. 音素序列和encodec代码也使用该脚本提取。

运行示例:

conda activate voicecraft export CUDA_VISIBLE_DEVICES=0 cd ./data python phonemize_encodec_encode_hf.py \ --dataset_size xs \ --download_to path/to/store_huggingface_downloads \ --save_dir path/to/store_extracted_codes_and_phonemes \ --encodec_model_path path/to/encodec_model \ --mega_batch_size 120 \ --batch_size 32 \ --max_len 30000

其中encodec_model_path可在这里获取。这个模型是在Gigaspeech XL上训练的,有5600万参数,4个码本,每个码本有2048个代码。详细信息在我们的论文中描述。如果在提取过程中遇到内存不足问题,请尝试减小batch_size和/或max_len。 提取的代码、音素和vocab.txt将存储在path/to/store_extracted_codes_and_phonemes/${dataset_size}/{encodec_16khz_4codebooks,phonemes,vocab.txt}

关于清单,请从这里下载train.txt和validation.txt,并将它们放在path/to/store_extracted_codes_and_phonemes/manifest/下。如果你想使用我们预训练的VoiceCraft模型,也请从这里下载vocab.txt(以确保音素到标记的匹配相同)。

现在,你可以开始训练了!

conda activate voicecraft cd ./z_scripts bash e830M.sh

准备自定义数据集的流程也是相同的。确保如果

微调

你也需要像训练一样完成步骤1-4,如果你要微调一个预训练模型,我建议使用AdamW进行优化以获得更好的稳定性。查看脚本./z_scripts/e830M_ft.sh

如果你的数据集引入了在giga检查点中不存在的新音素(这很可能发生),请确保在构建词汇表时将原始音素与你的数据中的音素结合起来。并且你需要调整--text_vocab_size--text_pad_token,使前者大于或等于你的词汇表大小,后者的值与--text_vocab_size相同(即--text_pad_token始终是最后一个标记)。此外,由于文本嵌入现在大小不同,请确保修改权重加载部分,以避免崩溃(你可以跳过加载text_embedding或只加载现有部分,并随机初始化新部分)

许可证

代码库遵循CC BY-NC-SA 4.0许可(LICENSE-CODE),模型权重遵循Coqui Public Model License 1.0.0(LICENSE-MODEL)。请注意,我们使用了一些来自其他仓库的代码,它们遵循不同的许可证:./models/codebooks_patterns.py遵循MIT许可;./models/modules./steps/optim.pydata/tokenizer.py遵循Apache License, Version 2.0;我们使用的phonemizer遵循GNU 3.0许可。

致谢

我们感谢Feiteng的VALL-E复现,也感谢audiocraft团队开源的encodec

引用

@article{peng2024voicecraft,
  author    = {Peng, Puyuan and Huang, Po-Yao and Mohamed, Abdelrahman and Harwath, David},
  title     = {VoiceCraft: Zero-Shot Speech Editing and Text-to-Speech in the Wild},
  journal   = {arXiv},
  year      = {2024},
}

免责声明

禁止任何组织或个人在未经本人同意的情况下使用本文提到的任何技术生成或编辑他人的语音,包括但不限于政府领导人、政治人物和名人。如果你不遵守这一条款,可能会违反版权法。

编辑推荐精选

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

下拉加载更多