Blog·
Clonagem de voz
May 17, 2026

Clonar uma voz a 48 kHz
com VoxCPM2.

Um novo modelo de TTS acaba de chegar ao Soniqo. Roda no seu laptop, produz áudio de qualidade de estúdio a 48 kHz e clona uma voz a partir de um único clipe curto. Este post percorre o que você pode construir com ele, as três formas de clonar uma voz e um olhar amigável sobre como o modelo funciona por dentro.

O que você pode construir

Quatro coisas que mudam quando a clonagem roda localmente.

Rodar a clonagem no dispositivo desbloqueia quatro propriedades de uma vez: privacidade, uso offline, custo zero por chamada e posse total da voz. Cada uma abre uma classe de produto difícil de construir de outra forma.

Narradores pessoais de audiolivros

Grave 30 segundos de um pai ou mãe lendo. O app de audiolivro então narra qualquer capítulo na voz dele — mesma calidez, mesmo sotaque, gerado localmente a cada sessão.

Conteúdo multilíngue de criadores

YouTubers e podcasters mantêm uma voz consistente em 30 idiomas. Grave uma vez em inglês e publique o mesmo episódio em japonês, espanhol e híndi sem um elenco de vozes.

Acessibilidade e banco de voz

Quem enfrenta a perda da voz pode guardá-la num clipe curto e continuar falando por tecnologia assistiva que soa como a pessoa — não como um motor de TTS genérico.

Vozes de produto sob demanda

Descreva a voz que você quer — "mulher jovem, suave e calorosa" — e o modelo a projeta sem gravação de referência. Útil para NPCs de jogos, avisos de quiosque ou testes A/B de vozes de marca.

No dispositivo vs hospedado

Como o VoxCPM2 se compara ao ElevenLabs.

O ElevenLabs é a alternativa óbvia de API na nuvem. O trade-off é o que roda onde — e de quem é a voz depois.

Para produtos que precisam de garantias de privacidade, operação offline ou custo zero por chamada, a clonagem no dispositivo é a única opção — cada chamada ao ElevenLabs envia áudio para os servidores deles.

VoxCPM2 (Soniqo)ElevenLabs
Onde rodaNo dispositivo do usuárioAPI hospedada
O áudio sai do dispositivoNãoSim (enviado ao ElevenLabs)
Uso offlineSimNão (requer internet)
Custo por chamadaNenhumCobrança por caractere
Licença do modeloApache 2.0, pesos abertosProprietário, só SaaS
Taxa de saída máx.48 kHz nativo48 kHz (nível Pro e acima)
Idiomas3029 (Multilingual v2) · 70+ (Eleven v3)
Clipe de referência exigido5–30 s1 min (Instant) · 30 min (Professional)
Design de voz por textoSimSim

Ambos os motores chegam a 48 kHz; ambos suportam um leque de idiomas semelhante para clonagem cotidiana; ambos oferecem design de voz a partir de uma descrição em texto. A diferença genuína é se o áudio chega a sair do dispositivo.

Três modos de clonagem

Um modelo, três formas de entrar.

O modelo é o mesmo em cada chamada. O que muda são os argumentos que você passa: isso decide se você está projetando uma voz a partir de uma descrição, copiando uma gravada ou preservando um sotaque.

Design de voz
Quando você não tem uma gravação de referência.

Descreva a voz em linguagem natural. O modelo escolhe uma voz correspondente e permanece consistente entre chamadas.

let audio = try await tts.generateVoxCPM2(
    text: "Welcome to the show.",
    instruct: "A young woman, gentle and warm voice."
)
Clonagem por referência
Quando você tem um clipe curto do falante alvo.

Passe qualquer trecho de 5–30 s de fala limpa. O modelo copia o timbre e o ritmo e sintetiza novo texto naquela voz.

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
)
Clonagem definitiva
Quando o falante tem um sotaque distintivo e você quer preservá-lo.

Passe o clipe E sua transcrição. O modelo pode então alinhar traços acústicos com fonemas — sotaque e escolhas vocálicas se mantêm.

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

O mesmo slot de entrada, preenchido com peças diferentes. O modelo nunca vê uma flag — ele lê a sequência.

Sob o capô

Como o VoxCPM2 produz áudio.

Quatro módulos que cooperam. Você não precisa saber nada disso para usar o modelo, mas se está curioso de onde vêm os 48 kHz — aqui está.

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

O pipeline começa com um codificador local (LocEnc) que funde tokens de texto e (opcionalmente) áudio de referência num único fluxo de vetores. Esse fluxo alimenta o TSLM — um modelo de linguagem MiniCPM-4 de 28 camadas que decide qual "patch" de áudio vem a seguir, do mesmo jeito que um LM de texto escolhe o próximo token. Uma segunda passada pelo RALM refina cada patch.

Até aqui tudo é um transformer. A reviravolta interessante é o LocDiT: em vez de escolher de um vocabulário fixo de tokens de áudio discretos, ele roda um pequeno processo de difusão para pintar o latente de áudio em cada slot. Sem codec discreto não há gargalo de quantização — e é isso que permite ao estágio final, AudioVAE V2, decodificar direto para 48 kHz. Qualquer outro motor no dispositivo desta pilha esbarra em 24 kHz.

A divisão vale nota: o LM autorregressivo é ótimo em decidir o que deve vir a seguir (conteúdo, ritmo, duração); a cabeça de difusão é ótima em pintar o detalhe acústico (fase, espectro). O VoxCPM2 deixa cada um fazer o que sabe. É por isso que o modelo se sustenta com apenas 2B de parâmetros — a arquitetura conquista a qualidade percebida, não o tamanho.

O artigo

Leia a pesquisa original.

VoxCPM: Tokenizer-Free TTS for Context-Aware Speech Generation and True-to-Life Voice Cloning
OpenBMB · arXiv:2509.24650 · Sept 2025
Ver no arXiv
Pacotes

Três tamanhos. Escolha pelo seu orçamento de disco.

Os três pacotes rodam a mesma arquitetura; diferem só em quão agressivamente o modelo de linguagem é quantizado. O pacote int8 é o padrão recomendado — iguala o pipeline Python upstream no benchmark de ida e volta de 8 frases, sendo mais rápido e 40% menor que o bf16.

PacoteTamanhoIdeal para
bf16~5.0 GBReferência / depuração.
int8
padrão
~3.0 GBClonagem cotidiana, audiolivros, podcasts.
int4~1.9 GBImplantações com disco limitado.
Experimente

Pela 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
Aonde ir

Continue lendo.