Parler-TTS هو نموذج خفيف الوزن لتحويل النص إلى كلام (TTS)، قادر على توليد كلام طبيعي وعالي الجودة، ويمكنه التحكم في أسلوب المتحدث (الجنس، النبرة، طريقة الكلام، إلخ). هذا المشروع هو تطبيق مفتوح المصدر للورقة البحثية لـ Stability AI وجامعة إدنبرة بعنوان "التوجيه باللغة الطبيعية لتحويل النص إلى كلام عالي الدقة مع التعليقات التوضيحية الاصطناعية".
pip install git+https://github.com/huggingface/parler-tts.git
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. 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)
يدعم النموذج 34 متحدثًا محددًا مسبقًا، بما في ذلك: Laura, Gary, Jon, Lea, Karen, Rick, Brenda, David, Eileen, Jordan, Mike, Yann, Joy, James, Eric, Lauren, Rose, Will, Jason, Aaron, Naomie, Alisa, Patrick, Jerry, Tina, Jenna, Bill, Tom, Carol, Barbara, Rebecca, Anna, Bruce, Emily.
prompt = "Hey, how are you doing today?"
description = "Jon's voice is monotone yet slightly fast in delivery, with a very close recording that almost has no background noise."
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)
accelerate launch ./training/run_parler_tts_training.py ./helpers/training_configs/starting_point_v1.json
يوفر المشروع دليلًا كاملاً للتدريب والضبط الدقيق، بما في ذلك:
يتضمن المشروع العديد من تحسينات الأداء:
يعتمد المشروع ترخيصًا متساهلاً مفتوح المصدر، ويشجع مساهمات المجتمع والاستخدام التجاري. إذا كنت تستخدم هذا المشروع، فمن المستحسن أن تقتبس:
@misc{lacombe-etal-2024-parler-tts,
author = {Yoach Lacombe and Vaibhav Srivastav and Sanchit Gandhi},
title = {Parler-TTS},
year = {2024},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/huggingface/parler-tts}}
}
يرحب المشروع بمساهمات المجتمع، خاصة في المجالات التالية:
يمثل Parler TTS تقدمًا كبيرًا في تقنية TTS مفتوحة المصدر، مما يوفر للباحثين والمطورين حلاً قويًا ومرنًا لتحويل النص إلى كلام.