Blog·
Nhân bản giọng nói
May 17, 2026

Nhân bản một giọng nói ở 48 kHz
với VoxCPM2.

Một mô hình TTS mới vừa đến Soniqo. Nó chạy trên laptop của bạn, xuất âm thanh chất lượng phòng thu 48 kHz, và nhân bản một giọng từ một clip ngắn duy nhất. Bài này đi qua những gì bạn có thể xây với nó, ba cách nó cho bạn nhân bản một giọng, và một cái nhìn thân thiện về cách mô hình hoạt động bên trong.

Những gì bạn có thể xây

Bốn điều thay đổi khi nhân bản chạy cục bộ.

Chạy nhân bản trên thiết bị mở khóa bốn thuộc tính cùng lúc — riêng tư, dùng ngoại tuyến, không tốn phí mỗi lần gọi, và toàn quyền sở hữu giọng nói. Mỗi thứ mở ra một lớp sản phẩm khó xây theo cách khác.

Người kể sách nói cá nhân

Ghi 30 giây một phụ huynh đang đọc. Ứng dụng sách nói sau đó kể bất kỳ chương nào bằng giọng của họ — cùng độ ấm, cùng chất giọng, sinh cục bộ mỗi phiên.

Nội dung nhà sáng tạo đa ngôn ngữ

YouTuber và podcaster giữ một giọng nhất quán qua 30 ngôn ngữ. Ghi một lần bằng tiếng Anh, phát cùng tập đó bằng tiếng Nhật, tiếng Tây Ban Nha và tiếng Hindi mà không cần dàn lồng tiếng.

Trợ năng và lưu giữ giọng

Người đối mặt mất giọng có thể lưu giọng trong một clip ngắn và tiếp tục nói qua công nghệ hỗ trợ nghe giống họ — chứ không phải một engine TTS chung chung.

Giọng sản phẩm theo yêu cầu

Mô tả giọng bạn muốn — "phụ nữ trẻ, giọng dịu và ấm" — và mô hình thiết kế nó mà không cần bản ghi tham chiếu. Hữu ích cho NPC game, lời nhắc kiosk, hay A/B test giọng thương hiệu.

Trên thiết bị vs lưu trữ

VoxCPM2 so với ElevenLabs thế nào.

ElevenLabs là lựa chọn API đám mây hiển nhiên. Đánh đổi là cái gì chạy ở đâu — và ai sở hữu giọng nói sau đó.

Với những sản phẩm cần bảo đảm riêng tư, vận hành ngoại tuyến, hay không tốn phí mỗi lần gọi, nhân bản trên thiết bị là lựa chọn duy nhất — mỗi lần gọi ElevenLabs đều tải âm thanh lên máy chủ của họ.

VoxCPM2 (Soniqo)ElevenLabs
Chạy ở đâuTrên thiết bị người dùngAPI lưu trữ
Âm thanh rời thiết bịKhôngCó (tải lên ElevenLabs)
Dùng ngoại tuyếnKhông (cần internet)
Phí mỗi lần gọiKhôngTính phí theo ký tự
Giấy phép mô hìnhApache 2.0, trọng số mởĐộc quyền, chỉ SaaS
Tần số ra tối đa48 kHz gốc48 kHz (bậc Pro trở lên)
Ngôn ngữ3029 (Multilingual v2) · 70+ (Eleven v3)
Clip tham chiếu cần5–30 s1 phút (Instant) · 30 phút (Professional)
Thiết kế giọng từ văn bản

Cả hai engine đều đạt 48 kHz; cả hai hỗ trợ phổ ngôn ngữ tương tự cho nhân bản hằng ngày; cả hai đều cho thiết kế giọng từ mô tả văn bản. Khác biệt thực sự là âm thanh có bao giờ rời thiết bị hay không.

Ba chế độ nhân bản

Một mô hình, ba lối vào.

Mô hình là như nhau ở mọi lần gọi. Cái thay đổi là bạn truyền tham số nào — điều đó quyết định bạn đang thiết kế giọng từ mô tả, sao chép một giọng đã ghi, hay giữ một chất giọng.

Thiết kế giọng
Khi bạn không có bản ghi tham chiếu.

Mô tả giọng bằng ngôn ngữ tự nhiên. Mô hình chọn một giọng khớp và giữ nhất quán qua các lần gọi.

let audio = try await tts.generateVoxCPM2(
    text: "Welcome to the show.",
    instruct: "A young woman, gentle and warm voice."
)
Nhân bản tham chiếu
Khi bạn có một clip ngắn của người nói mục tiêu.

Truyền bất kỳ 5–30 s tiếng nói sạch. Mô hình sao chép âm sắc và nhịp và tổng hợp văn bản mới bằng giọng đó.

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
)
Nhân bản tối thượng
Khi người nói có chất giọng đặc trưng và bạn muốn giữ nó.

Truyền clip VÀ bản ghi của nó. Mô hình giờ có thể khớp đặc trưng âm học với âm vị — chất giọng và lựa chọn nguyên âm được giữ lại.

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
)
Three cloning modes, same modelEach mode arranges different pieces in the input sequence before the model. Voice design adds a written description, reference cloning adds an audio prefix, and ultimate cloning adds a paired audio-and-transcript example.Voice design(description)text to sayReference cloningreference audiotext to sayUltimate cloningreference audiotranscripttext to sayprompt audioaudio framestext conditiontext to synthesise

Cùng một khe đầu vào, lấp bằng những mảnh khác nhau. Mô hình không bao giờ thấy một cờ — nó đọc chuỗi.

Bên trong

VoxCPM2 tạo âm thanh thế nào.

Bốn mô-đun phối hợp. Bạn không cần biết bất kỳ điều nào để dùng mô hình, nhưng nếu tò mò 48 kHz đến từ đâu — đây rồi.

VoxCPM2 architectureText and optional voice prompts feed an autoregressive language model and a residual refiner. A local diffusion transformer produces audio latents which the AudioVAE V2 decodes to a 48 kHz waveform.TextVoice prompt audioVoice instructionPrompt transcriptLocEncaudio + text fused into one streamTSLM · MiniCPM-4 backbone28-layer autoregressive LMdecides what audio patch comes nextRALMrefines each patch for prosodic detailLocDiT · diffusion estimatorpaints the audio latent in each slotAudioVAE V2 → 48 kHz waveform

Pipeline bắt đầu bằng một bộ mã hóa cục bộ (LocEnc) hợp nhất token văn bản và (tùy chọn) âm thanh tham chiếu thành một luồng vector duy nhất. Luồng đó nuôi TSLM — mô hình ngôn ngữ MiniCPM-4 28 lớp quyết định "mảnh" âm thanh nào đến tiếp theo, y như một LM văn bản chọn token kế. Một lượt thứ hai qua RALM tinh chỉnh từng mảnh.

Đến đây mọi thứ đều là transformer. Điểm xoắn thú vị là LocDiT: thay vì chọn từ một từ vựng cố định các token âm thanh rời rạc, nó chạy một quá trình khuếch tán nhỏ để "vẽ" latent âm thanh trong mỗi khe. Không codec rời rạc nghĩa là không nút thắt lượng tử hóa — đó là điều cho phép giai đoạn cuối, AudioVAE V2, giải mã thẳng ra 48 kHz. Mọi engine trên thiết bị khác trong ngăn xếp này đều dừng ở 24 kHz.

Sự phân chia đáng lưu ý: LM tự hồi quy giỏi quyết định cái gì nên đến tiếp (nội dung, nhịp, độ dài); đầu khuếch tán giỏi vẽ chi tiết âm học (pha, phổ). VoxCPM2 để mỗi bên làm điều mình giỏi. Đó là lý do mô hình trụ vững chỉ với 2B tham số — kiến trúc kiếm được chất lượng cảm nhận, không phải kích thước.

Bài báo

Đọc nghiên cứu gốc.

VoxCPM: Tokenizer-Free TTS for Context-Aware Speech Generation and True-to-Life Voice Cloning
OpenBMB · arXiv:2509.24650 · Sept 2025
Xem trên arXiv
Gói

Ba kích cỡ. Chọn theo ngân sách đĩa của bạn.

Cả ba gói chạy cùng kiến trúc; chúng chỉ khác nhau ở mức độ lượng tử hóa mô hình ngôn ngữ quyết liệt ra sao. Gói int8 là mặc định khuyến nghị — nó ngang pipeline Python thượng nguồn trên benchmark khứ hồi 8 câu trong khi nhanh hơn và nhỏ hơn 40% so với bf16.

GóiKích cỡTốt cho
bf16~5.0 GBTham chiếu / gỡ lỗi.
int8
mặc định
~3.0 GBNhân bản hằng ngày, sách nói, podcast.
int4~1.9 GBTriển khai hạn chế đĩa.
Thử ngay

Từ 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
Tiếp theo

Đọc tiếp.