Parler-TTS Mini v1 项目介绍
项目概述
Parler-TTS Mini v1 是一个轻量级的文本转语音(TTS)模型,它是 Parler-TTS 项目的一部分。该模型经过 45,000 小时的音频数据训练,能够生成高质量、自然的语音,并且可以通过简单的文本提示来控制语音的各种特征,如性别、背景噪音、说话速度、音调和混响等。
主要特点
-
轻量级设计:作为 Mini 版本,该模型在保持高质量输出的同时,具有较小的体积和更快的推理速度。
-
可控制的语音特征:用户可以通过文本描述来控制生成语音的多个方面,包括说话者的性别、语速、音调等。
-
高质量输出:尽管是轻量级模型,但它仍能生成高质量、自然的语音。
-
多样化的声音:模型可以生成随机的声音,也可以指定 34 个预定义说话者中的一个。
-
开源项目:整个项目,包括数据集、预处理、训练代码和模型权重都是开源的,遵循 Apache 2.0 许可证。
使用方法
使用 Parler-TTS Mini v1 非常简单。首先需要安装相关库:
pip install git+https://github.com/huggingface/parler-tts.git
然后,用户可以通过 Python 代码来生成语音。例如,生成随机声音:
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. The recording is of very high quality, with the speaker's voice sounding clear and very close up."
# 生成语音
input_ids = tokenizer(description, return_tensors="pt").input_ids.to(device)
prompt_input_ids = tokenizer(prompt, return_tensors="pt").input_ids.to(device)
generation = model.generate(input_ids=input_ids, prompt_input_ids=prompt_input_ids)
audio_arr = generation.cpu().numpy().squeeze()
sf.write("parler_tts_out.wav", audio_arr, model.config.sampling_rate)
项目背景
Parler-TTS 项目是对 Stability AI 和爱丁堡大学的研究论文《Natural language guidance of high-fidelity text-to-speech with synthetic annotations》的复现。该项目旨在为社区提供 TTS 训练资源和数据集预处理代码,使开发者能够构建自己的强大 TTS 模型。
相关资源
- Parler-TTS 代码库:用于训练和微调模型。
- Data-Speech 代码库:用于注释语音数据集的实用脚本集。
- Parler-TTS 组织:包含注释数据集和未来的模型检查点。
结语
Parler-TTS Mini v1 作为一个轻量级但功能强大的 TTS 模型,为开发者和研究人员提供了一个优秀的工具。它不仅能生成高质量的语音,还允许用户通过简单的文本描述来控制语音的各种特征。作为一个完全开源的项目,它为 TTS 技术的进一步发展和创新提供了宝贵的资源。