ChatTTS webui
เริ่ม webui.py
python webui.py
python webui.py --server_port=8080
conda create -n chattts python=3.9
conda activate chattts
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
pip install omegaconf vocos transformers vector-quantize-pytorch
อังกฤษ |中文简体
ChatTTS เป็นรูปแบบการอ่านออกเสียงข้อความที่ออกแบบมาโดยเฉพาะสำหรับสถานการณ์การสนทนา เช่น ผู้ช่วย LLM รองรับทั้งภาษาอังกฤษและภาษาจีน โมเดลของเราได้รับการฝึกฝนมากกว่า 100,000 ชั่วโมงซึ่งประกอบด้วยภาษาจีนและอังกฤษ เวอร์ชันโอเพ่นซอร์สบน HuggingFace เป็นโมเดลที่ผ่านการฝึกอบรมล่วงหน้า 40,000 ชั่วโมง โดยไม่มี SFT
หากมีข้อสงสัยอย่างเป็นทางการเกี่ยวกับโมเดลและแผนงาน โปรดติดต่อเราที่ [email protected] คุณสามารถเข้าร่วมกลุ่ม QQ ของเรา: 808364215 เพื่อการสนทนา เรายินดีเสมอที่จะเพิ่มปัญหา GitHub
สำหรับคำอธิบายโดยละเอียดของแบบจำลอง โปรดดูวิดีโอบน Bilibili
repo นี้มีวัตถุประสงค์เพื่อการศึกษาเท่านั้น มีจุดมุ่งหมายเพื่อใช้ในการศึกษาและการวิจัย และไม่ควรใช้เพื่อวัตถุประสงค์ทางการค้าหรือทางกฎหมาย ผู้เขียนไม่รับประกันความถูกต้อง ความครบถ้วน หรือความน่าเชื่อถือของข้อมูล ข้อมูลและข้อมูลที่ใช้ใน repo นี้มีวัตถุประสงค์เพื่อการศึกษาและการวิจัยเท่านั้น ข้อมูลที่ได้รับจากแหล่งที่เปิดเผยต่อสาธารณะ และผู้แต่งไม่ได้อ้างสิทธิ์ความเป็นเจ้าของหรือลิขสิทธิ์ใดๆ เหนือข้อมูล
ChatTTS เป็นระบบอ่านออกเสียงข้อความที่มีประสิทธิภาพ อย่างไรก็ตาม การใช้เทคโนโลยีนี้อย่างมีความรับผิดชอบและมีจริยธรรมเป็นสิ่งสำคัญมาก เพื่อจำกัดการใช้ ChatTTS เราได้เพิ่มเสียงรบกวนความถี่สูงจำนวนเล็กน้อยระหว่างการฝึกโมเดล 40,000 ชั่วโมง และบีบอัดคุณภาพเสียงให้มากที่สุดเท่าที่จะเป็นไปได้โดยใช้รูปแบบ MP3 เพื่อป้องกันไม่ให้ผู้ประสงค์ร้ายนำไปใช้ในทางอาญา วัตถุประสงค์ ในเวลาเดียวกัน เราได้ฝึกอบรมโมเดลการตรวจจับภายในและวางแผนที่จะเปิดแหล่งที่มาในอนาคต
import ChatTTS
from IPython . display import Audio
chat = ChatTTS . Chat ()
chat . load_models ()
texts = [ "" ,]
wavs = chat . infer ( texts , use_decoder = True )
Audio ( wavs [ 0 ], rate = 24_000 , autoplay = True )
###################################
# Sample a speaker from Gaussian.
import torch
std , mean = torch . load ( 'ChatTTS/asset/spk_stat.pt' ). chunk ( 2 )
rand_spk = torch . randn ( 768 ) * std + mean
params_infer_code = {
'spk_emb' : rand_spk , # add sampled speaker
'temperature' : .3 , # using custom temperature
'top_P' : 0.7 , # top P decode
'top_K' : 20 , # top K decode
}
###################################
# For sentence level manual control.
# use oral_(0-9), laugh_(0-2), break_(0-7)
# to generate special token in text to synthesize.
params_refine_text = {
'prompt' : '[oral_2][laugh_0][break_6]'
}
wav = chat . infer ( "" , params_refine_text = params_refine_text , params_infer_code = params_infer_code )
###################################
# For word level manual control.
text = 'What is [uv_break]your favorite english food?[laugh][lbreak]'
wav = chat . infer ( text , skip_refine_text = True , params_infer_code = params_infer_code )
inputs_en = """
chat T T S is a text to speech model designed for dialogue applications.
[uv_break]it supports mixed language input [uv_break]and offers multi speaker
capabilities with precise control over prosodic elements [laugh]like like
[uv_break]laughter[laugh], [uv_break]pauses, [uv_break]and intonation.
[uv_break]it delivers natural and expressive speech,[uv_break]so please
[uv_break] use the project responsibly at your own risk.[uv_break]
""" . replace ( ' n ' , '' ) # English is still experimental.
params_refine_text = {
'prompt' : '[oral_2][laugh_0][break_4]'
}
audio_array_cn = chat . infer ( inputs_cn , params_refine_text = params_refine_text )
audio_array_en = chat . infer ( inputs_en , params_refine_text = params_refine_text )
สำหรับคลิปเสียงความยาว 30 วินาที จำเป็นต้องมีหน่วยความจำ GPU อย่างน้อย 4GB สำหรับ GPU 4090D สามารถสร้างเสียงที่สอดคล้องกับโทเค็นความหมายประมาณ 7 รายการต่อวินาที Real-Time Factor (RTF) อยู่ที่ประมาณ 0.65
นี่เป็นปัญหาที่มักเกิดขึ้นกับโมเดลการถดถอยอัตโนมัติ (สำหรับเปลือกไม้และหุบเขา) โดยทั่วไปแล้วเป็นการยากที่จะหลีกเลี่ยง สามารถลองตัวอย่างหลายๆ ตัวอย่างเพื่อหาผลลัพธ์ที่เหมาะสม
ในรุ่นที่เปิดตัวในปัจจุบัน หน่วยควบคุมระดับโทเค็นเพียงหน่วยเดียวคือ [laugh], [uv_break] และ [lbreak] ในเวอร์ชันต่อๆ ไป เราอาจใช้โมเดลโอเพ่นซอร์สที่มีความสามารถในการควบคุมอารมณ์เพิ่มเติม