TTS-WITH-RVC (نص إلى كلام مع RVC) عبارة عن حزمة مصممة لتعزيز إمكانات أنظمة النص إلى الكلام (TTS) من خلال إدخال وحدة RVC . تمكن الحزمة من المستخدمين ليس فقط تحويل النص إلى خطاب ولكن أيضًا تخصيص وتخصيص إخراج الصوت وفقًا لتفضيلاتهم مع دعم RVC.
مطلوب Pytorch مع CUDA أو MPS للحصول على عمل TTS-WITH-RVC.
قد تحتوي على الأخطاء. الإبلاغ عن مشكلة في حالة الخطأ.
0.1.4 - 22 نوفمبر ، 2024: معلمات index_path و index_rate المضافة لمزيد من التحكم في تحويل الصوت المستند إلى الفهرس
0.1.3 - إصلاح الكثير من المشاكل ، بعض التحسين.
يجب أن يكون لديك Python <= 3.10 مثبت (يوصى به 3.10).
يجب أن يكون لديك دعم CUDA أو MPS ل GPU الخاص بك (لم يتم اختبار MPS بعد).
قم بتثبيت Pytorch مع دعم CUDA أو MPS هنا: https://pytorch.org/get-started/locally/
ثم ، قم بتثبيت TTS-With-RVC باستخدام تثبيت PIP:
python -m pip install git+https://github.com/Atm4x/tts-with-rvc.git#egg=tts_with_rvc
python -m pip install git+https://github.com/Atm4x/rvc-lib.git@dev#egg=rvc
python -m pip install -e git+https://github.com/Atm4x/rvc-lib.git#egg=rvclib
python -m pip install git+https://github.com/Atm4x/rvc-tts-pipeline-fix.git@dev#egg=rvc_tts_pipe
Environment variables في Path . TTS-WITH-RVC لديه فئة تسمى TTS_RVC . هناك بعض المعلمات المطلوبة:
rvc_path - مسار إلى دليل RVCLIB المثبت (عادة في مجلد VENV/SRC.)
input_directory - مسار إلى دليل الإدخال الخاص بك (دليل temp لحفظ إخراج TTS)
model_path - مسار إلى نموذج .pth الخاص بك
والمعلمات الاختيارية:
voice -الصوت من قائمة الحافة tts (الافتراضي هو "Ru-ru-dmitryneural")
output_directory - دليل لحفظ الصوت المعبر ( temp/ هو افتراضي).
index_path - المسار إلى فهرس الملف لتعديلات النموذج الصوتي (الافتراضي هو سلسلة فارغة "" ).
index_rate - معدل المزج بين التحويل الصوتي الأصلي والمفهرس (الافتراضي هو 0.75 ).
لتعيين الصوت ، أولاً ، قم بعمل مثيل TTS_RVC:
from tts_with_rvc import TTS_RVC
tts = TTS_RVC ( rvc_path = "src \ rvclib" , model_path = "models \ YourModel.pth" , input_directory = "input \ " , index_path = "logs \ YourIndex.index" ) جميع الأصوات المتوفرة الموضوعة في ملف voices.txt :
يتم تعطيل tts.get_voices() إلى أجل غير مسمى بسبب المشاكل
بعد ذلك ، قم بتعيين صوت TTS مع وظيفة tts.set_voice() :
tts . set_voice ( "un-Un-SelectedNeural" )يعد تعيين اللغة المناسبة ضروريًا إذا كنت تستخدم لغات أخرى للصوت الصوتي!
والخطوة الأخيرة هي استدعاء tts لاستبدال الصوت:
path = tts ( text = "Привет, мир!" , pitch = 6 , index_rate = 0.50 )حدود:
text - نص لـ TTS (مطلوب)
pitch - الملعب لـ RVC (اختياري ، neg. القيم متوافقة ، الافتراضي هو 0)
tts_rate - معدل إضافي من الكلام (اختياري ، neg. القيم متوافقة ، الافتراضي هو 0)
tts_volume - حجم إضافي من الكلام (اختياري ، القيم السلبية متوافقة ، الافتراضي هو 0)
tts_pitch - درجة إضافية من الصوت الذي تم إنشاؤه TTS (اختياري ، قيم neg. متوافقة ، غير موصى بها ، الافتراضي هو 0)
output_filename - مسار محدد للصوت الصوتي (اختياري ، افتراضي None )
مثال بسيط للتعبير عن النص:
from tts_with_rvc import TTS_RVC
from playsound import playsound
tts = TTS_RVC (
rvc_path = "src \ rvclib" ,
model_path = "models \ DenVot.pth" ,
input_directory = "input \ " ,
index_path = "logs \ added_IVF1749_Flat_nprobe_1.index"
)
tts . set_voice ( "ru-RU-DmitryNeural" )
path = tts ( text = "Привет, мир!" , pitch = 6 , index_rate = 0.9 )
playsound ( path )هناك بعض معالجات المعلمات النصية لمشكلات التكامل مثل إضافة وحدة GPT.
يمكنك معالجتها باستخدام process_args في فئة TTS_RVC :
--tts-rate (value) -المعلمة TTS لتحرير معدل الكلام (القيمة السلبية لخفض معدل وقيمة إيجابية لزيادة معدل)
--tts-volume (value) -المعلمة TTS لتحرير حجم الكلام (القيمة السلبية لتقليل الصوت والقيمة الإيجابية لزيادة حجم) لا تعمل بسبب تحويل وحدة RVC.
--tts-pitch (value) -المعلمة TTS لتحرير درجة الصوت التي تم إنشاؤها (القيمة السالبة لخفض الملعب والقيمة الإيجابية لزيادة الملعب) لا أوصي باستخدام هذا لأن وحدة RVC لها pitch الخاص للإخراج.
--rvc-pitch (value) -معلمة RVC لتحرير درجة صوت الإخراج (القيمة السلبية لتقليل الملعب والقيمة الإيجابية لزيادة الملعب)
الآن مبدأ العمل:
from tts_with_rvc import TTS_RVC
tts = TTS_RVC ( rvc_path = "src \ rvclib" , model_path = "models \ YourModel.pth" , input_directory = "input \ " )
# This method returns arguments and original text without these text parameters
args , message = tts . process_args ( message ) يحتوي متغير args على صفيف مع الهيكل التالي:
args[0] - معدل TTS
args[1] - حجم TTS
args[2] - ملعب TTS
args[3] - RVC Pitch
والآن نحن على استعداد لاستخدامه في الجيل:
path = tts ( message , pitch = args [ 3 ],
tts_rate = args [ 0 ],
tts_volume = args [ 1 ],
tts_pitch = args [ 2 ]) set_index_path(index_path) - يقوم بتحديث المسار إلى ملف الفهرس لتعديلات النموذج الصوتي.
NameError: name 'device' is not definedتأكد من دعم جهازك CUDA وقمت بتثبيت الإصدار الأيمن من Torch.
RuntimeError: Failed to load audio: {e} تأكد من تثبيت ffmpeg .
لا ترخيص
Atm4x (Artem Dikarev)