综合介绍
Parler-TTS 是由 Hugging Face 开发的开源文本转语音(TTS)模型库,旨在生成高质量、自然流畅的语音。该模型能够根据输入文本生成具有特定说话人风格(如性别、音调、说话风格等)的语音。Parler-TTS 是基于论文《Natural language guidance of high-fidelity text-to-speech with synthetic annotations》中的研究成果开发的,并且完全开源,所有数据集、预处理、训练代码和权重均公开发布,允许社区在此基础上进行开发和改进。
功能列表
- 高质量语音生成:生成自然流畅的语音,支持多种说话人风格。
- 开源代码:所有代码和模型权重均公开,便于社区开发和改进。
- 轻量级依赖:安装和使用简单,依赖项少。
- 多种模型版本:提供不同参数量的模型版本,如 Parler-TTS Mini 和 Parler-TTS Large。
- 快速生成:优化了生成速度,支持 SDPA 和 Flash Attention 2。
- 数据集和权重:提供丰富的数据集和预训练模型权重,便于训练和微调。
使用帮助
安装流程
- 确保已安装 Python 环境。
- 使用以下命令安装 Parler-TTS 库:
pip install git+https://github.com/huggingface/parler-tts.git
- 对于 Apple Silicon 用户,需运行以下命令以支持 bfloat16:
pip3 install --pre torch torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu
使用方法
生成随机语音
- 导入必要的库:
import torch
from parler_tts import ParlerTTSForConditionalGeneration
from transformers import AutoTokenizer
import soundfile as sf
- 加载模型和分词器:
device = "cuda:0" if torch.cuda.is_available() else "cpu"
model = ParlerTTSForConditionalGeneration.from_pretrained("parler-tts/parler-tts-mini-v1").to(device)
tokenizer = AutoTokenizer.from_pretrained("parler-tts/parler-tts-mini-v1")
- 输入文本并生成语音:
prompt = "Hey, how are you doing today?"
description = "A female speaker delivers a slightly expressive and animated speech with a moderate speed and pitch."
inputs = tokenizer(prompt, return_tensors="pt").to(device)
outputs = model.generate(**inputs, description=description)
sf.write("output.wav", outputs.cpu().numpy(), 22050)
生成特定说话人风格的语音
- 使用特定说话人风格的描述:
description = "A male speaker with a deep voice and slow pace."
inputs = tokenizer(prompt, return_tensors="pt").to(device)
outputs = model.generate(**inputs, description=description)
sf.write("output_specific.wav", outputs.cpu().numpy(), 22050)
训练模型
- 下载并准备数据集。
- 使用提供的训练代码进行模型训练:
python train.py --dataset_path /path/to/dataset --output_dir /path/to/output
优化推理
- 使用 SDPA 和 Flash Attention 2 进行优化:
model = ParlerTTSForConditionalGeneration.from_pretrained("parler-tts/parler-tts-mini-v1", use_flash_attention=True).to(device)