Plachtaa /VALL-E-X

An open source implementation of Microsoft's VALL-E X zero-shot TTS model. Demo is available in https://plachtaa.github.io/vallex/

★ 7,907⑂ 772👁 1⑃ 18● 158▤ 0
PythonCreated 2023-07-29
7,907
stars
+0+0+-11
772
forks
1
watchers
18
prs
158
issues
0
releases
–
discussions

README

VALL-E X: 多语言文本到语音合成与语音克隆 🔊


English | 中文

微软VALL-E X 零样本语音合成模型的开源实现.
预训练模型现已向公众开放,供研究或应用使用。
!vallex-framework

VALL-E X 是一个强大而创新的多语言文本转语音(TTS)模型,最初由微软发布。虽然微软最初在他们的研究论文中提出了该概念,但并未发布任何代码或预训练模型。我们认识到了这项技术的潜力和价值,复现并训练了一个开源可用的VALL-E X模型。我们很乐意与社区分享我们的预训练模型,让每个人都能体验到次世代TTS的威力。 🎧

更多细节请查看 model card.

 📖 目录
 🚀 更新日志
 📢 功能特点
 💻 本地安装
 🎧 在线Demo
 🐍 使用方法
 ❓ FAQ
 🧠 TODO

 🚀 Updates
2023.09.10
- 支持AR decoder的batch decoding以实现更稳定的生成结果

2023.08.30
- 将EnCodec解码器替换成了Vocos解码器,提升了音质。 (感谢@v0xie)

2023.08.23
- 加入了长文本生成功能

2023.08.20
- 加入了中文版README

2023.08.14
- 预训练模型权重已发布,从这里下载。

 💻 本地安装
 使用pip安装,必须使用Python 3.10,CUDA 11.7 ~ 12.0,PyTorch 2.0+
commandline
git clone https://github.com/Plachtaa/VALL-E-X.git
cd VALL-E-X
pip install -r requirements.txt


 注意:如果需要制作prompt,需要安装 ffmpeg 并将其所在文件夹加入到环境变量PATH中

第一次运行程序时,会自动下载相应的模型。如果下载失败并报错,请按照以下步骤手动下载模型。

(请注意目录和文件夹的大小写)

1.检查安装目录下是否存在checkpoints文件夹,如果没有,在安装目录下手动创建checkpoints文件夹(./checkpoints/)。

2.检查checkpoints文件夹中是否有vallex-checkpoint.pt文件。如果没有,请从这里
手动下载vallex-checkpoint.pt文件并放到checkpoints文件夹里。

3.检查安装目录下是否存在whisper文件夹,如果没有,在安装目录下手动创建whisper文件夹(./whisper/)。

4.检查whisper文件夹中是否有medium.pt文件。如果没有,请从这里
手动下载medium.pt文件并放到whisper文件夹里。

  🎧 在线Demo
如果你不想在本地安装,你可以在线体验VALL-E X的功能,点击下面的任意一个链接即可开始体验。





 📢 功能特点

VALL-E X 配备有一系列尖端功能:

1. 多语言 TTS: 可使用三种语言 - 英语、中文和日语 - 进行自然、富有表现力的语音合成。

2. 零样本语音克隆: 仅需录制任意说话人的短短的 3~10 秒录音,VALL-E X 就能生成个性化、高质量的语音,完美还原他们的声音。


  查看示例

prompt.webm


output.webm



3. 语音情感控制: VALL-E X 可以合成与给定说话人录音相同情感的语音,为音频增添更多表现力。


  查看示例

https://github.com/Plachtaa/VALL-E-X/assets/112609742/56fa9988-925e-4757-82c5-83ecb0df6266


https://github.com/Plachtaa/VALL-E-X/assets/112609742/699c47a3-d502-4801-8364-bd89bcc0b8f1



4. 零样本跨语言语音合成: VALL-E X 可以合成与给定说话人母语不同的另一种语言,在不影响口音和流利度的同时,保留该说话人的音色与情感。以下是一个使用日语母语者进行英文与中文合成的样例: 🇯🇵 🗣


  查看示例

jp-prompt.webm


en-output.webm


zh-output.webm



5. 口音控制: VALL-E X 允许您控制所合成音频的口音,比如说中文带英语口音或反之。 🇨🇳 💬


  查看示例

en-prompt.webm


zh-accent-output.webm


en-accent-output.webm



6. 声学环境保留: 当给定说话人的录音在不同的声学环境下录制时,VALL-E X 可以保留该声学环境,使合成语音听起来更加自然。


  查看示例

noise-prompt.webm


noise-output.webm




你可以访问我们的demo页面 来浏览更多示例!

 💻 Python中的使用方法


  🪑 基本使用

python
from utils.generation import SAMPLE_RATE, generate_audio, preload_models
from scipy.io.wavfile import write as write_wav
from IPython.display import Audio

 download and load all models
preload_models()

 generate audio from text
text_prompt = """
Hello, my name is Nose. And uh, and I like hamburger. Hahaha... But I also have other interests such as playing tactic toast.
"""
audio_array = generate_audio(text_prompt)

 save audio to disk
write_wav("vallex_generation.wav", SAMPLE_RATE, audio_array)

 play text in notebook
Audio(audio_array, rate=SAMPLE_RATE)


hamburger.webm




  🌎 多语言

该VALL-E X实现支持三种语言:英语、中文和日语。您可以通过设置language参数来指定语言。默认情况下,该模型将自动检测语言。


python

text_prompt = """
    チュソクは私のお気に入りの祭りです。 私は数日間休んで、友人や家族との時間を過ごすことができます。
"""
audio_array = generate_audio(text_prompt)


vallex_japanese.webm

注意:即使在一句话中混合多种语言的情况下,VALL-E X也能完美地控制口音,但是您需要手动

Snapshot: 2026-11-04T14:00:00Z · Data license Apache-2.0 · JSON