โคลนเสียงที่ 48 kHz
ด้วย VoxCPM2
โมเดล TTS ใหม่เพิ่งมาถึง Soniqo มันรันบนแล็ปท็อปของคุณ ให้เสียงคุณภาพสตูดิโอที่ 48 kHz และโคลนเสียงจากคลิปสั้นเพียงคลิปเดียว โพสต์นี้พาไปดูว่าคุณสร้างอะไรได้ด้วยมัน สามวิธีที่มันให้คุณโคลนเสียง และการมองอย่างเป็นมิตรว่าโมเดลทำงานอย่างไรภายใน
สี่สิ่งที่เปลี่ยนไปเมื่อการโคลนรันในเครื่อง
การรันการโคลนบนอุปกรณ์ปลดล็อกสี่คุณสมบัติพร้อมกัน — ความเป็นส่วนตัว การใช้ออฟไลน์ ไม่มีค่าใช้จ่ายต่อการเรียก และการเป็นเจ้าของเสียงอย่างเต็มที่ แต่ละอย่างเปิดกลุ่มผลิตภัณฑ์ที่สร้างด้วยวิธีอื่นได้ยาก
อัดพ่อแม่อ่าน 30 วินาที แล้วแอปหนังสือเสียงจะบรรยายบทใดก็ได้ด้วยเสียงของพวกเขา — ความอบอุ่นเดิม สำเนียงเดิม สร้างในเครื่องทุกเซสชัน
ยูทูบเบอร์และพอดแคสเตอร์คงเสียงที่สม่ำเสมอหนึ่งเสียงข้าม 30 ภาษา อัดครั้งเดียวเป็นภาษาอังกฤษ แล้วปล่อยตอนเดียวกันเป็นญี่ปุ่น สเปน และฮินดีโดยไม่ต้องมีทีมพากย์
ผู้ที่กำลังจะสูญเสียเสียงสามารถฝากเสียงไว้ในคลิปสั้น ๆ และพูดต่อผ่านเทคโนโลยีช่วยเหลือที่ฟังดูเหมือนพวกเขา — ไม่ใช่เอนจิน TTS ทั่วไป
บรรยายเสียงที่คุณต้องการ — "หญิงสาว เสียงนุ่มและอบอุ่น" — แล้วโมเดลออกแบบให้โดยไม่ต้องมีเสียงอ้างอิง มีประโยชน์กับ NPC เกม พรอมป์ตคีออสก์ หรือการทดสอบ A/B เสียงแบรนด์
VoxCPM2 เทียบกับ ElevenLabs อย่างไร
ElevenLabs คือทางเลือก API คลาวด์ที่ชัดเจน การแลกเปลี่ยนคืออะไรรันที่ไหน — และหลังจากนั้นเสียงเป็นของใคร
สำหรับผลิตภัณฑ์ที่ต้องการการรับประกันความเป็นส่วนตัว การทำงานออฟไลน์ หรือค่าใช้จ่ายต่อการเรียกเป็นศูนย์ การโคลนบนอุปกรณ์คือทางเลือกเดียว — ทุกการเรียก ElevenLabs อัปโหลดเสียงไปยังเซิร์ฟเวอร์ของพวกเขา
| VoxCPM2 (Soniqo) | ElevenLabs | |
|---|---|---|
| รันที่ไหน | บนอุปกรณ์ผู้ใช้ | API แบบโฮสต์ |
| เสียงออกจากอุปกรณ์ | ไม่ | ใช่ (อัปโหลดไป ElevenLabs) |
| ใช้งานออฟไลน์ | ใช่ | ไม่ (ต้องมีอินเทอร์เน็ต) |
| ค่าใช้จ่ายต่อการเรียก | ไม่มี | คิดเงินต่อตัวอักษร |
| ใบอนุญาตโมเดล | Apache 2.0, เวตเปิด | กรรมสิทธิ์, SaaS เท่านั้น |
| อัตราสุ่มเอาต์พุตสูงสุด | 48 kHz เนทีฟ | 48 kHz (ระดับ Pro ขึ้นไป) |
| ภาษา | 30 | 29 (Multilingual v2) · 70+ (Eleven v3) |
| ต้องมีคลิปอ้างอิง | 5–30 วิ | 1 นาที (Instant) · 30 นาที (Professional) |
| ออกแบบเสียงจากข้อความ | ใช่ | ใช่ |
ทั้งสองเอนจินไปถึง 48 kHz; ทั้งคู่รองรับช่วงภาษาที่ใกล้เคียงกันสำหรับการโคลนประจำวัน; ทั้งคู่มีการออกแบบเสียงจากคำบรรยายข้อความ ความต่างที่แท้จริงคือเสียงเคยออกจากอุปกรณ์หรือไม่
โมเดลเดียว สามทางเข้า
โมเดลเหมือนกันในทุกการเรียก สิ่งที่เปลี่ยนคืออาร์กิวเมนต์ที่คุณส่ง — นั่นตัดสินว่าคุณกำลังออกแบบเสียงจากคำบรรยาย คัดลอกเสียงที่บันทึกไว้ หรือรักษาสำเนียง
บรรยายเสียงด้วยภาษาธรรมชาติ โมเดลเลือกเสียงที่เข้ากันและคงเส้นคงวาข้ามการเรียก
let audio = try await tts.generateVoxCPM2(
text: "Welcome to the show.",
instruct: "A young woman, gentle and warm voice."
)ส่งเสียงพูดสะอาด 5–30 วินาทีใด ๆ โมเดลคัดลอกน้ำเสียงและจังหวะ แล้วสังเคราะห์ข้อความใหม่ด้วยเสียงนั้น
let ref = try AudioFileLoader.load(
url: URL(fileURLWithPath: "speaker.wav"),
targetSampleRate: 16000
)
let audio = try await tts.generateVoxCPM2(
text: "This is a cloned voice.",
refAudio: ref
)ส่งทั้งคลิปและทรานสคริปต์ของมัน ตอนนี้โมเดลจัดแนวลักษณะทางเสียงกับหน่วยเสียงได้ — สำเนียงและการเลือกสระถูกส่งต่อ
let audio = try await tts.generateVoxCPM2(
text: "Hello from the cloned voice.",
refAudio: ref,
promptText: "this is what the reference clip actually said",
promptAudio: ref
)ช่องอินพุตเดียวกัน เติมด้วยชิ้นส่วนต่างกัน โมเดลไม่เคยเห็นแฟล็ก — มันอ่านลำดับ
VoxCPM2 สร้างเสียงอย่างไร
สี่โมดูลที่ทำงานร่วมกัน คุณไม่จำเป็นต้องรู้สิ่งเหล่านี้เพื่อใช้โมเดล แต่ถ้าคุณอยากรู้ว่า 48 kHz มาจากไหน — อยู่นี่แล้ว
ไปป์ไลน์เริ่มด้วย ตัวเข้ารหัสในเครื่อง (LocEnc) ที่หลอมโทเคนข้อความและ (ทางเลือก) เสียงอ้างอิงเข้าเป็นสตรีมเวกเตอร์เดียว สตรีมนั้นป้อนเข้า TSLM — โมเดลภาษา MiniCPM-4 28 ชั้นที่ตัดสินว่า "แพตช์" เสียงถัดไปคืออะไร เหมือนที่ LM ข้อความเลือกโทเคนถัดไป การผ่านครั้งที่สองผ่าน RALM ขัดเกลาแต่ละแพตช์
จนถึงจุดนี้ทุกอย่างเป็นทรานส์ฟอร์เมอร์ จุดพลิกที่น่าสนใจคือ LocDiT: แทนที่จะเลือกจากคลังคำศัพท์คงที่ของโทเคนเสียงแบบไม่ต่อเนื่อง มันรันกระบวนการดิฟฟิวชันเล็ก ๆ เพื่อ "ระบาย" เลเทนต์เสียงในแต่ละช่อง การไม่มีโคเดกแบบไม่ต่อเนื่องหมายถึงไม่มีคอขวดการควอนไทซ์ — ซึ่งเป็นสิ่งที่ให้ขั้นสุดท้าย AudioVAE V2 ถอดรหัสตรงไปที่ 48 kHz เอนจินบนอุปกรณ์อื่นทุกตัวในสแตกนี้ตันที่ 24 kHz
การแบ่งงานนี้ควรค่าแก่การสังเกต: LM แบบออโตรีเกรสซีฟเก่งในการตัดสินว่าอะไรควรมาต่อ (เนื้อหา จังหวะ ความยาว); หัวดิฟฟิวชันเก่งในการระบายรายละเอียดทางเสียง (เฟส สเปกตรัม) VoxCPM2 ให้แต่ละส่วนทำสิ่งที่ถนัด นั่นคือเหตุผลที่โมเดลยืนหยัดได้ด้วยพารามิเตอร์เพียง 2B — สถาปัตยกรรมเป็นสิ่งที่ได้คุณภาพการรับรู้มา ไม่ใช่ขนาด
อ่านงานวิจัยต้นฉบับ
สามขนาด เลือกตามงบดิสก์ของคุณ
ทั้งสามชุดรันสถาปัตยกรรมเดียวกัน ต่างกันเพียงว่าควอนไทซ์โมเดลภาษาเข้มข้นแค่ไหน ชุด int8 คือค่าเริ่มต้นที่แนะนำ — มันเทียบเท่าไปป์ไลน์ Python ต้นทางบนเบนช์มาร์กไปกลับ 8 ประโยค ขณะที่เร็วกว่าและเล็กกว่า bf16 40%
| ชุด | ขนาด | เหมาะกับ |
|---|---|---|
| bf16 | ~5.0 GB | อ้างอิง / ดีบัก |
| int8 ค่าเริ่มต้น | ~3.0 GB | การโคลนประจำวัน หนังสือเสียง พอดแคสต์ |
| int4 | ~1.9 GB | การดีพลอยที่ดิสก์จำกัด |
จาก CLI
# Voice design — no reference clip
speech speak "Welcome to the show." \
--engine voxcpm2 \
--voxcpm2-instruct "A young woman, gentle and warm voice." \
--output design.wav
# Reference cloning — 5–30 s clean clip
speech speak "This is a cloned voice." \
--engine voxcpm2 \
--voxcpm2-variant int8 \
--voice-sample speaker.wav \
--output clone.wav