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.
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.
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.
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.
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.
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.
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 tourne | Sur l’appareil de l’utilisateur | API hébergée |
| L’audio quitte l’appareil | Non | Oui (téléversé vers ElevenLabs) |
| Usage hors ligne | Oui | Non (nécessite internet) |
| Coût par appel | Aucun | Facturation au caractère |
| Licence du modèle | Apache 2.0, poids ouverts | Propriétaire, SaaS uniquement |
| Fréquence de sortie max. | 48 kHz natif | 48 kHz (niveau Pro et plus) |
| Langues | 30 | 29 (Multilingual v2) · 70+ (Eleven v3) |
| Clip de référence requis | 5–30 s | 1 min (Instant) · 30 min (Professional) |
| Conception de voix depuis texte | Oui | Oui |
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.
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.
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."
)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
)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
)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.
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à.
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.
Lisez la recherche originale.
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.
| Bundle | Taille | Idéal pour |
|---|---|---|
| bf16 | ~5.0 GB | Référence / débogage. |
| int8 défaut | ~3.0 GB | Clonage courant, livres audio, podcasts. |
| int4 | ~1.9 GB | Déploiements à disque contraint. |
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.wavContinuez à lire.
Chaque flag CLI, chaque mode de génération, notes d’usage responsable.
Comparaison entre moteurs : VoxCPM2, CosyVoice3, Qwen3-TTS ICL.
Installez Soniqo sur Apple Silicon et lancez votre première synthèse.
D’autres articles sur la voix sur l’appareil au fil de leur parution.
