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 Install:
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 - พา ธ ไปยังไดเรกทอรีอินพุตของคุณ (ไดเรกทอรีอุณหภูมิสำหรับการบันทึกเอาต์พุต TTS)
model_path - เส้นทางไปยังโมเดล. pth ของคุณ
และพารามิเตอร์เสริม:
voice -Voice from edge-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 - อัตราการพูดพิเศษ (ไม่บังคับ, ค่าลบเข้ากันได้, ค่าเริ่มต้นคือ 0)
tts_volume - ปริมาณการพูดเพิ่มเติม (ไม่บังคับ, ค่าลบเข้ากันได้, ค่าเริ่มต้นคือ 0)
tts_pitch - ระดับเสียง พิเศษ ของเสียงที่สร้างขึ้น TT
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 เพื่อแก้ไขระดับเสียงของ 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 pitch
args[3] - สนาม RVC
และตอนนี้เราพร้อมที่จะใช้สำหรับรุ่น:
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)