Blog·
Clonage vocal
May 17, 2026

Cloner une voix en 48 kHz
avec VoxCPM2.

Un nouveau modèle TTS vient d’arriver dans Soniqo. Il tourne sur votre ordinateur portable, produit de l’audio qualité studio en 48 kHz et clone une voix à partir d’un seul clip court. Cet article parcourt ce que vous pouvez construire avec lui, les trois façons de cloner une voix et un regard convivial sur le fonctionnement interne du modèle.

Ce que vous pouvez construire

Quatre choses qui changent quand le clonage tourne en local.

Faire tourner le clonage sur l’appareil débloque quatre propriétés à la fois : confidentialité, usage hors ligne, aucun coût par appel et pleine propriété de la voix. Chacune ouvre une classe de produit délicate à construire autrement.

Narrateurs personnels de livres audio

Enregistrez 30 secondes d’un parent qui lit. L’app de livre audio narre ensuite n’importe quel chapitre dans sa voix — même chaleur, même accent, générée en local à chaque session.

Contenu multilingue de créateurs

YouTubeurs et podcasteurs gardent une voix cohérente sur 30 langues. Enregistrez une fois en anglais, publiez le même épisode en japonais, espagnol et hindi sans distribution vocale.

Accessibilité et banque de voix

Les personnes menacées de perte de voix peuvent la mettre en banque dans un court clip et continuer à parler via une techno d’assistance qui leur ressemble — pas un moteur TTS générique.

Voix de produit à la demande

Décrivez la voix voulue — "jeune femme, douce et chaleureuse" — et le modèle la conçoit sans enregistrement de référence. Utile pour les PNJ de jeux, les invites de bornes ou l’A/B testing de voix de marque.

Sur l’appareil vs hébergé

Comment VoxCPM2 se compare à ElevenLabs.

ElevenLabs est l’alternative évidente en API cloud. Le compromis, c’est ce qui tourne où — et à qui appartient la voix ensuite.

Pour les produits qui exigent des garanties de confidentialité, un fonctionnement hors ligne ou zéro coût par appel, le clonage sur l’appareil est la seule option : chaque appel ElevenLabs téléverse de l’audio sur leurs serveurs.

VoxCPM2 (Soniqo)ElevenLabs
Où ça tourneSur l’appareil de l’utilisateurAPI hébergée
L’audio quitte l’appareilNonOui (téléversé vers ElevenLabs)
Usage hors ligneOuiNon (nécessite internet)
Coût par appelAucunFacturation au caractère
Licence du modèleApache 2.0, poids ouvertsPropriétaire, SaaS uniquement
Fréquence de sortie max.48 kHz natif48 kHz (niveau Pro et plus)
Langues3029 (Multilingual v2) · 70+ (Eleven v3)
Clip de référence requis5–30 s1 min (Instant) · 30 min (Professional)
Conception de voix depuis texteOuiOui

Les deux moteurs atteignent 48 kHz ; les deux couvrent un éventail de langues similaire pour le clonage courant ; les deux exposent la conception de voix depuis une description texte. La vraie différence, c’est de savoir si l’audio quitte un jour l’appareil.

Trois modes de clonage

Un modèle, trois manières d’entrer.

Le modèle est le même à chaque appel. Ce qui change, ce sont les arguments passés : cela décide si vous concevez une voix depuis une description, copiez une voix enregistrée ou préservez un accent.

Conception de voix
Quand vous n’avez pas d’enregistrement de référence.

Décrivez la voix en langage naturel. Le modèle choisit une voix correspondante et reste cohérent d’un appel à l’autre.

let audio = try await tts.generateVoxCPM2(
    text: "Welcome to the show.",
    instruct: "A young woman, gentle and warm voice."
)
Clonage par référence
Quand vous avez un court clip du locuteur cible.

Passez n’importe quel extrait de 5–30 s de parole propre. Le modèle copie le timbre et le rythme et synthétise un nouveau texte dans cette voix.

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
)
Clonage ultime
Quand le locuteur a un accent marqué et que vous voulez le préserver.

Passez le clip ET sa transcription. Le modèle peut alors aligner les traits acoustiques sur les phonèmes — l’accent et les choix de voyelles se transmettent.

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

Le même emplacement d’entrée, rempli de pièces différentes. Le modèle ne voit jamais de drapeau — il lit la séquence.

Sous le capot

Comment VoxCPM2 produit de l’audio.

Quatre modules qui coopèrent. Vous n’avez rien besoin de savoir de tout ça pour utiliser le modèle, mais si vous êtes curieux d’où viennent les 48 kHz — voilà.

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

Le pipeline démarre avec un encodeur local (LocEnc) qui fusionne les tokens de texte et (optionnellement) l’audio de référence en un seul flux de vecteurs. Ce flux alimente le TSLM — un modèle de langage MiniCPM-4 à 28 couches qui décide quel "patch" audio vient ensuite, comme un LM texte choisit le token suivant. Une seconde passe par le RALM affine chaque patch.

Jusqu’ici tout est un transformeur. La torsion intéressante, c’est le LocDiT : au lieu de choisir dans un vocabulaire fixe de tokens audio discrets, il lance un petit processus de diffusion pour peindre le latent audio dans chaque emplacement. Pas de codec discret signifie pas de goulot de quantification — c’est ce qui permet à l’étape finale, AudioVAE V2, de décoder directement en 48 kHz. Tout autre moteur sur l’appareil de cette pile plafonne à 24 kHz.

La séparation mérite d’être notée : le LM autorégressif excelle à décider ce qui doit venir ensuite (contenu, rythme, longueur) ; la tête de diffusion excelle à peindre le détail acoustique (phase, spectre). VoxCPM2 laisse chacun faire ce qu’il fait de mieux. C’est pourquoi le modèle tient son rang avec seulement 2B de paramètres — l’architecture gagne la qualité perçue, pas la taille.

L’article

Lisez la recherche originale.

VoxCPM: Tokenizer-Free TTS for Context-Aware Speech Generation and True-to-Life Voice Cloning
OpenBMB · arXiv:2509.24650 · Sept 2025
Voir sur arXiv
Bundles

Trois tailles. Choisissez selon votre budget disque.

Les trois bundles tournent avec la même architecture ; ils ne diffèrent que par l’agressivité de la quantification du modèle de langage. Le bundle int8 est le défaut recommandé — il égale le pipeline Python amont sur le benchmark aller-retour de 8 phrases tout en étant plus rapide et 40% plus petit que bf16.

BundleTailleIdéal pour
bf16~5.0 GBRéférence / débogage.
int8
défaut
~3.0 GBClonage courant, livres audio, podcasts.
int4~1.9 GBDéploiements à disque contraint.
Essayez-le

Depuis la 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
Et ensuite

Continuez à lire.