<> 5 กรกฎาคม 2024: เปิดตัวจุดตรวจสอบ AR ล่าสุด: ความเสถียรของเอาต์พุตที่สูงขึ้น การอัปเดตครั้งใหญ่ในเร็ว ๆ นี้!
นี่คือ repo สำหรับ MARS5 English Speech Model (TTS) จาก CAMB.AI
โมเดลดังกล่าวเป็นไปตามไปป์ไลน์ AR-NAR แบบสองขั้นตอนที่มีส่วนประกอบ NAR แบบใหม่ที่โดดเด่น (ดูข้อมูลเพิ่มเติมในสถาปัตยกรรม)
ด้วยเสียงและตัวอย่างข้อความเพียง 5 วินาที MARS5 สามารถสร้างคำพูดได้แม้ในสถานการณ์ที่ยากและหลากหลาย เช่น การวิจารณ์กีฬา อะนิเมะ และอื่นๆ ตรวจสอบการสาธิตของเรา:
ชมวิดีโอเต็มได้ที่นี่:
รูปภาพ : โฟลว์สถาปัตยกรรมระดับสูงของ MARS5 ข้อความที่กำหนดและเสียงอ้างอิง คุณสมบัติเสียงพูดของการเข้ารหัสหยาบ (L0) จะได้รับผ่านโมเดลหม้อแปลงแบบถอยอัตโนมัติ จากนั้น คุณลักษณะข้อความ การอ้างอิง และหยาบจะได้รับการปรับปรุงในโมเดล DDPM แบบพหุนามเพื่อสร้างค่าสมุดรหัสเข้ารหัสที่เหลืออยู่ จากนั้นเอาต์พุตของ DDPM จะถูกเข้ารหัสเพื่อสร้างเสียงสุดท้าย
เนื่องจากโมเดลนี้ได้รับการฝึกฝนเกี่ยวกับเสียง Raw ร่วมกับข้อความที่เข้ารหัสแบบไบต์คู่ จึงสามารถนำไปใช้กับสิ่งต่างๆ เช่น เครื่องหมายวรรคตอนและการใช้อักษรตัวพิมพ์ใหญ่ได้ เช่น หากต้องการเพิ่มการหยุดชั่วคราว ให้เพิ่มลูกน้ำในส่วนนั้นในการถอดเสียง หรือหากต้องการเน้นคำ ให้ใส่ตัวพิมพ์ใหญ่ในการถอดเสียง สิ่งนี้ทำให้เป็นวิธีที่ค่อนข้างเป็นธรรมชาติในการชี้แนะฉันทลักษณ์ของผลลัพธ์ที่สร้างขึ้น
ข้อมูลระบุตัวตนของผู้พูดจะถูกระบุโดยใช้ไฟล์อ้างอิงเสียงที่มีความยาวประมาณ 2-12 วินาที โดยมีความยาวประมาณ 6 วินาที ซึ่งให้ผลลัพธ์ที่ดีที่สุด นอกจากนี้ ด้วยการจัดเตรียมสำเนาของข้อมูลอ้างอิง MARS5 จึงสามารถทำการ ' deep clone ' ซึ่งปรับปรุงคุณภาพของการโคลนนิ่งและเอาต์พุต โดยต้องเสียเวลาในการผลิตเสียงนานขึ้นเล็กน้อย สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับสิ่งนี้ รวมถึงรายละเอียดประสิทธิภาพและโมเดลอื่นๆ โปรดดูที่โฟลเดอร์เอกสาร
เราใช้ torch.hub
เพื่อทำให้การโหลดโมเดลเป็นเรื่องง่าย ไม่จำเป็นต้องทำการโคลน repo ขั้นตอนในการอนุมานนั้นง่าย:
การติดตั้งโดยใช้ pip :
ความต้องการ:
pip install --upgrade torch torchaudio librosa vocos encodec safetensors regex
import torch , librosa
mars5 , config_class = torch . hub . load ( 'Camb-ai/mars5-tts' , 'mars5_english' , trust_repo = True )
# The `mars5` contains the AR and NAR model, as well as inference code.
# The `config_class` contains tunable inference config settings like temperature.
(ไม่บังคับ) โหลดโมเดลจาก Huggingface (ตรวจสอบให้แน่ใจว่าได้โคลนพื้นที่เก็บข้อมูลแล้ว)
from inference import Mars5TTS , InferenceConfig as config_class
import torch , librosa
mars5 = Mars5TTS . from_pretrained ( "CAMB-AI/MARS5-TTS" )
# Load reference audio between 1-12 seconds.
wav , sr = librosa . load ( '<path to arbitrary 24kHz waveform>.wav' ,
sr = mars5 . sr , mono = True )
wav = torch . from_numpy ( wav )
ref_transcript = "<transcript of the reference audio>"
หมายเหตุ: ใบรับรองผลการเรียนอ้างอิงเป็นทางเลือก ผ่านมันไปหากคุณต้องการสร้างโคลนลึก
MARS5 รองรับการอนุมาน 2 ประเภท: การอนุมานแบบตื้นและรวดเร็ว โดยคุณไม่จำเป็นต้องมีสำเนาของข้อมูลอ้างอิง (เราเรียกว่า การอนุมานแบบตื้น ) และการอนุมานแบบที่สองที่ช้ากว่า แต่โดยทั่วไปแล้วมีคุณภาพสูงกว่า ซึ่งเราเรียกว่า Deep Clone หากต้องการใช้ Deep Clone คุณต้องมีสำเนาข้อความพร้อมท์ ดูสถาปัตยกรรมแบบจำลองสำหรับข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้
# Pick whether you want a deep or shallow clone. Set to False if you don't know prompt transcript or want fast inference. Set to True if you know transcript and want highest quality.
deep_clone = True
# Below you can tune other inference settings, like top_k, temperature, top_p, etc...
cfg = config_class ( deep_clone = deep_clone , rep_penalty_window = 100 ,
top_k = 100 , temperature = 0.7 , freq_penalty = 3 )
ar_codes , output_audio = mars5 . tts ( "The quick brown rat." , wav ,
ref_transcript ,
cfg = cfg )
# output_audio is (T,) shape float tensor corresponding to the 24kHz output audio.
แค่นั้นแหละ! การตั้งค่าเริ่มต้นเหล่านี้ให้ผลลัพธ์ที่ค่อนข้างดี แต่อย่าลังเลที่จะปรับการตั้งค่าการอนุมานเพื่อปรับผลลัพธ์ให้เหมาะสมสำหรับการใช้งานเฉพาะของคุณ ดูโค้ด InferenceConfig
หรือสมุดบันทึกสาธิตสำหรับข้อมูลและเอกสารเกี่ยวกับการตั้งค่าการอนุมานต่างๆ ทั้งหมด
เคล็ดลับบางประการเพื่อคุณภาพที่ดีที่สุด:
ดึงจาก DockerHub
คุณสามารถดึงอิมเมจนักเทียบท่าได้โดยตรงจากหน้า DockerHub ของเรา
สร้างด้วยตัวคุณเอง
คุณสามารถสร้างอิมเมจที่กำหนดเองจาก Dockerfile ที่ให้ไว้ใน repo นี้โดยการรันคำสั่งต่อไปนี้
cd MARS5-TTS
docker build -t mars5ttsimage ./docker
หมายเหตุ: รูปภาพนี้ควรใช้เป็นรูปภาพพื้นฐาน ซึ่งคุณสามารถเพิ่มสคริปต์การอนุมานแบบกำหนดเองใน Dockerfile หรือ docker-compose ได้ รูปภาพที่สร้างเอาต์พุตโดยตรงจะถูกเพิ่มลงใน Docker Hub และเป็น Dockerfiles ใน repo นี้เร็วๆ นี้
จุดตรวจ
จุดตรวจสอบสำหรับ MARS5 มีระบุไว้ในแท็บเผยแพร่ของ repo GitHub นี้ เรามีจุดตรวจสองจุด:
'vocab'
และเป็นไปตามรูปแบบโดยประมาณของโทเค็น minbpe ที่บันทึกไว้ จุดตรวจมีให้เป็นทั้งจุดตรวจสอบ pytorch .pt
และจุดตรวจ safetensors .safetensors
ตามค่าเริ่มต้น torch.hub.load()
จะโหลดเวอร์ชันของ safetensors แต่คุณสามารถระบุเวอร์ชันของจุดตรวจสอบที่คุณต้องการได้โดยใช้อาร์กิวเมนต์ ckpt_format='safetensors'
หรือ ckpt_format='pt'
ในการเรียก in torch.hub.load()
. เช่น เพื่อบังคับใช้รูปแบบเซฟเทนเซอร์:
torch.hub.load('Camb-ai/mars5-tts', 'mars5_english', ckpt_format='safetensors')
หรือหากต้องการบังคับให้จัดรูปแบบ pytorch .pt
เมื่อโหลดจุดตรวจ:
torch.hub.load('Camb-ai/mars5-tts', 'mars5_english', ckpt_format='pt')
ข้อกำหนดด้านฮาร์ดแวร์ :
คุณต้องสามารถจัดเก็บพารามิเตอร์อย่างน้อย 750M+450M บน GPU และทำการอนุมานด้วยพารามิเตอร์ที่ใช้งานอยู่ 750M
หากคุณไม่มีข้อกำหนดด้านฮาร์ดแวร์ที่จำเป็นและเพียงต้องการใช้ MARS5 ในแอปพลิเคชันของคุณ คุณสามารถใช้ผ่าน API ของเราได้ หากคุณต้องการเครดิตเพิ่มเติมเพื่อทดสอบการใช้งานของคุณ โปรดติดต่อ [email protected]
MARS5 ยังไม่สมบูรณ์แบบในขณะนี้ และเรากำลังดำเนินการปรับปรุงคุณภาพ ความเสถียร และประสิทธิภาพ พื้นที่คร่าวๆ ที่เราต้องการปรับปรุง และยินดีรับความช่วยเหลือใดๆ ใน:
งานเฉพาะ
site-packages/torch/nn/functional.py:4840: UserWarning: The operator 'aten::col2im' is not currently supported on the MPS backend and will fall back to run on the CPU. This may have performance implications
หากคุณต้องการมีส่วนร่วมในการปรับปรุง MARS5 โปรดอย่าลังเลที่จะมีส่วนร่วม (คำแนะนำด้านล่าง)
เรายินดีรับความช่วยเหลือในการปรับปรุงโมเดลนี้ ดังที่คุณอาจพบว่าเมื่อทำการทดลอง มันให้ผลลัพธ์ที่ยอดเยี่ยมมาก แต่ยังสามารถปรับปรุงเพิ่มเติมได้อีกเพื่อสร้างผลลัพธ์ที่ยอดเยี่ยม อย่างสม่ำเสมอ เราอยากเห็นว่าคุณใช้ MARS5 ในสถานการณ์ต่างๆ อย่างไร โปรดใช้เครื่องหมาย ? แสดงและบอกหมวดหมู่ในการสนทนาเพื่อแบ่งปันตัวอย่างของคุณ
รูปแบบการบริจาค :
วิธีที่แนะนำในการสนับสนุน Repo ของเราคือการแยกพื้นที่เก็บข้อมูลหลักบน GitHub:
git remote add upstream [email protected]:Camb-ai/mars5-tts.git
git push --set-upstream origin <NAME-NEW-BRANCH>
เรากำลังเปิดซอร์ส MARS5 ในภาษาอังกฤษภายใต้ GNU AGPL 3.0 หากต้องการสอบถามข้อมูลเชิงพาณิชย์หรือต้องการอนุญาต MARS เวอร์ชันปิด โปรดส่งอีเมลไปที่ [email protected]
เราเป็นทีมที่มีความทะเยอทะยานซึ่งกระจายอยู่ทั่วโลกโดยมีเป้าหมายเดียวคือการทำให้ทุกคนสามารถแสดงความคิดเห็นได้ ที่ CAMB.AI เราเป็นทีมวิจัยของ Carnegie Mellon ซึ่งเป็นอดีตวิศวกรของ Siri ซึ่งเผยแพร่โดย Interspeech และเรากำลังมองหาคุณมาร่วมทีมของเรา
เรากำลังจ้างงานอย่างแข็งขัน โปรดส่งอีเมลถึงเราที่ [email protected] หากคุณสนใจ เยี่ยมชมหน้าอาชีพของเราเพื่อดูข้อมูลเพิ่มเติม
เข้าร่วมชุมชน CAMB.AI บนฟอรัมและ Discord เพื่อแบ่งปันข้อเสนอแนะ ข้อเสนอแนะ หรือคำถามกับทีมของเรา
โค้ดบางส่วนสำหรับโปรเจ็กต์นี้ดัดแปลงมาจากแหล่งเก็บข้อมูลต่อไปนี้ โปรดอย่าลืมตรวจสอบด้วย ขอขอบคุณผู้เขียน:
.trim()
: https://librosa.org/doc/main/generated/librosa.effects.trim.html