Maskinoversættelse · Engelsk original

CosyVoice3

Kør CosyVoice3 lokalt på Mac med MLX til tale i ni sprog og stemme kloning fra en kort optagelse. Lyt til standard, klonede og style- kontrollerede eksempler, så prøv kloning med reference lyd og dens nøjagtige udskrift.

Lydprøver · Klone en stemme med CLI · Understøttede sprog · Fuld 5-sprog stemme-kloning sammenligning og metodologi

Lydprøver

Lyt til den eksisterende standardstemme, klonen lavet af Kokoro af _ heart, og style- kontrolleret eksempel. CLI-eksemplet nedenfor bruger en separat FLEURS reference.

Standard engelskCosyVoice3 8- bit

8- bit CosyVoice3 syntese med fast frø.

Stemmeklonaf _ heart reference

CosyVoice3 kloning fra Kokoro af _ heart reference clip.

Style instruktion--cosy-instruct

En lys, ophidset levering ved hjælp af --cosy-instruct.

Klone en stemme med CLI

Download Referencelyd som reference.wav. Kommandoen bruger sin nøjagtige udskrift; erstatter både optagelsen og udskriften, når du bruger din egen stemmeprøve.

speech speak "Hello from the cloned voice." \
    --engine cosyvoice \
    --cosyvoice-variant bf16 \
    --voice-sample reference.wav \
    --cosy-reference-transcript "One can only wonder what the keyboard will become when something newer comes along." \
    --seed 42 \
    --output clone.wav

CosyVoice 3 vs 3.5 tilgængelighed

Hvad Soniqo understøtter

Denne guide og Soniqo 's runtime understøtter den åbne Fun-CosyVoice 3-0.5B (3.0) linje. officielt opensource-arkiv publicerer og dokumenter 3.0 - herunder Fun-CosyVoice3-0.5B-2512- og ikke udsætte CosyVoice 3.5 vægte eller inferens kode. cosyvoice-v3.5-plus navn er et Alibaba Cloud Model Studio API model ID, ikke et downloades checkpoint i dette lager, så Soniqo ikke kræver lokal 3.5 støtte.

Understøttede sprog

SprogKode
Kinesiskkinesisk
EngelskDANISH
Japanskjapanese
Koreanskkoreansk
Tyskgerman
Spanskspansk
Franskfransk
Italienskitalian
Russiskrussisk

Pipeline

CosyVoice3 syntetiserer tale i tre faser:

  1. LLM - Qwen2.5-0.5B rygrad genererer FSQ (Finite Scalar Kvantisering) tale tokens fra tekst
  2. DiT- flow- matchning - Et 22- lag Diffusion Transformer konverterer talemønstre til mel spektrogram via Euler ODE integration
  3. HiFi- GAN - Neurale kilde Filter vocoder konverterer mel spektrogram til 24 kHz bølgeformer

Arkitektur

LLM (Qwen2.5-0.5B)

Den aktuelle drifttid understøtter bf16 (standard), 8bit og 8bit- full. Vælg et bundt med --cosyvoice-variantSprogmodellen genererer diskrete talemønstre autoregressivt.

ParameterVærdi
Lag24
Skjult dimension896
Pelshoveder14
Nøgle / værdihoved2 (GQA)
FSQ- ordforråd6561
Kvantificeringbf16 / 8- bit

DiT- flow- matchning

Diffusion Transformer raffinerer talepoletter i mel spektrogram ved hjælp af betinget flow matchende med klassifikatorfri vejledning.

ParameterVærdi
Lag22
Dimension1024
Opmærksomhed hoveder16
KonditioneringAdaLN (adaptive Layer Norm)
ODE-løserEuler, 10 trin
CFG-sats0.7

HiFi- GAN Vocoder

Et neuralkildefilter (NSF) vocoder, der konverterer mel spektrogram til kurveformer.

ParameterVærdi
Harmoniske8
Upsample ratio480x (8 x 5 x 3 x ISTFT 4)
ISTFTn _ fft = 16, hop = 4
Udtagningsprøvesats24 kHz

Model Vægte

VariantLLMDiTStørrelseHuggingFace
8bitint8, gruppe = 64bf16~ 1,4 GBaufklarer / CosyVoice3-0.5B-MLX-8bit
8bit-fullint8, gruppe = 64int8, gruppe = 64~ 1,6 GBaufklarer / CosyVoice3-0.5B-MLX-8bit-full
bf16bf16bf16~ 2,1 GBaufklarer / CosyVoice3-0.5B-MLX-bf16

Hvert bundt omfatter LLM, DiT flow- matchende dekoder, HiFi- GAN vocoder, og S3-Tokenizer reference encoder nødvendig for zero-shot stemme kloning. Vælg mindre bundter til mindre download / disk fodaftryk; pick bf16 når LLM / DiT kvantificeringsstøj bliver et problem (længdesyntese, talekloning troskab).

CLI-brug

# Default bf16 bundle
.build/release/speech speak "Hallo Welt" --engine cosyvoice --language german -o output.wav

# Pick a variant via --cosyvoice-variant
.build/release/speech speak "Hallo Welt" --engine cosyvoice --cosyvoice-variant bf16 --language german -o output.wav

Eksempler

# English
.build/release/speech speak "Hello, how are you?" --engine cosyvoice -o hello_en.wav

# Chinese
.build/release/speech speak "你好世界" --engine cosyvoice --language chinese -o hello_cn.wav

# Spanish
.build/release/speech speak "Hola, buenos días" --engine cosyvoice --language spanish -o hello_es.wav

# French
.build/release/speech speak "Bonjour le monde" --engine cosyvoice --language french -o hello_fr.wav

Stemmekloning

Klone enhver stemme fra en kort reference lydprøve ved hjælp af --voice-sample flag. CosyVoice3 bruger CAM + + højttaler encoder til at udtrække en 192- dim indlejring, der er under DiT flow model.

# Voice cloning
.build/release/speech speak "Hello in your voice" --engine cosyvoice --voice-sample reference.wav --cosy-reference-transcript "One can only wonder what the keyboard will become when something newer comes along." -o cloned.wav

# Cross-language: clone voice, speak in German
.build/release/speech speak "Guten Tag" --engine cosyvoice --voice-sample reference.wav --cosy-reference-transcript "One can only wonder what the keyboard will become when something newer comes along." --language german -o german.wav

Sådan virker det

  1. CAM + + højttaler encoder udtrækker en 192- dim-indlejring fra referencelyden via CoreML (Neural Engine)
  2. Affinprojicering (192 → 80) betingelser DiT flow matchende dekoder på målet stemme
  3. HiFi- GAN vocoder konverterer højttaler- konditioneret melspektrogram til 24kHz lyd

Speaker Encoder

EjendomVærdi
ModelCAM + + (Context- Aware Masking + +)
Indlejring192 dimensioner
BackendCoreML (Neural Engine, FP16)
Størrelse~ 14 MB
HuggingFaceaufklarer/CamPlusPlus-Speaker-CoreML

CAM + + modellen downloades automatisk ved første brug af --voice-sample. Se Stemmekloning vejledning for referenceaudiospidser og Swift API.

Dialog mellem flere formænd

Synthesize samtaler mellem flere højttalere ved hjælp af inline højttaler tags. Hver højttaler tildeles en stemme fra en reference lydfil via --speakers flag.

# Two-speaker dialogue with voice cloning
.build/release/speech speak "[S1] Hello there! [S2] Hey, how are you?" \
    --engine cosyvoice --speakers s1=alice.wav,s2=bob.wav -o dialogue.wav

# Three speakers
.build/release/speech speak "[A] Welcome. [B] Thanks! [C] Glad to be here." \
    --engine cosyvoice --speakers a=host.wav,b=guest1.wav,c=guest2.wav -o panel.wav

Talsnavne i tags er sager- ufølsomme og matchede til kortlægningstasterne. Et konfigurerbart stilhed mellemrum (standard 0.2s) indsættes mellem drejninger.

ValgmulighedStandardVarebeskrivelse
--speakersHøjttalerkortlægning: s1=file.wav,s2=file.wav
--turn-gap0.2Stilhed mellem sving (sekunder)
--crossfade0.0Crossfade overlap mellem sving (sekunder)

Emotion & amp; - stiltags

Styre den talende stil per segment ved hjælp inline følelser tags. CosyVoice3 bruger teksten præfiks før <|endofprompt|> token som en stil instruktion - følelser tags kort til naturlige sprog instruktioner, der erstatter dette præfiks.

# Emotion tags
.build/release/speech speak "(excited) Wow, amazing! (sad) But I have to go..." \
    --engine cosyvoice -o emotion.wav

# Combined with speakers
.build/release/speech speak "[S1] (happy) Great news! [S2] (surprised) Really?" \
    --engine cosyvoice --speakers s1=alice.wav,s2=bob.wav -o combined.wav

# Freeform instruction as tag
.build/release/speech speak "(Speak like a pirate) Ahoy matey!" \
    --engine cosyvoice -o pirate.wav

# Global instruction (applies to all segments without emotion tags)
.build/release/speech speak "Hello world" \
    --engine cosyvoice --cosy-instruct "Speak cheerfully" -o cheerful.wav

Bygge- i Følelsesmærker

MærkeInstruktion
happy / excitedTal lykkeligt og med spænding.
sadTal sørgeligt med en melankolsk tone.
angryTal med vrede og intensitet.
whispers / whisperingTal i en blød, blid hvisken.
laughs / laughingTal, mens du griner.
calmTal roligt og fredeligt.
surprisedTal med overraskelse og forundring.
seriousTal i en alvorlig, formel tone.

Ukendt mærker passerer igennem som freeform instruktioner, så (Speak in a slow, dramatic voice) Det virker som...

Model til kontroltokens (fl_ tokens)

Internt bruger CosyVoice3 LLM specielle kontroltokens - præfikset fl_ - til at skifte mellem tilstande (zero- shot kloning, instrueret syntese, gemme en højttaler osv.). Disse tokens er en del af opstrøms FunAudioLLM Schedrizer; Soniqo runtime udsender den korrekte automatisk baseret på CLI flag eller Swift API opkald du bruger, så du aldrig skrive dem i hånden.

KontrolmærkeTilstandHvordan man påberåber sig fra Soniqo
<|fl_speaker_clone|>Zero- shot voice kloning fra en reference audio prøvePass --voice-sample reference.wav på CLI eller indstillet voiceSample: på Swift API.
<|fl_speaker_instruct|>Instruktion- eller style- condition syntese med en standardstemmePass --cosy-instruct "Speak cheerfully" eller brug en inline (happy) tag uden --voice-sample.
<|fl_speaker_instruct2|>Instruktionssyntese kombineret med en klonet referencestemmeKombinér --voice-sample reference.wav med --cosy-instruct "..." (eller et inline følelsesmærke) i samme kald.
<|fl_save_speaker|>Persist en højttalers indlejring til genbrug uden genkodning af reference lyd hvert opkaldIkke direkte eksponeret i Soniqo CLI - indlejringer er beregnet pr. opkald. For at cache, udtrække 192- dim CAM + + vektor dig selv via Højttalerindlejringer modul og videregive det fremad.
<|fl_speaker_clone_zh|>, <|fl_speaker_clone_en|>, …Language- specifikke zero- shot kloning hints bruges af opstrøms-plurizerKombinér --voice-sample med --language german|spanish|chinese|.... Soniqo vælger det korrekte sprogvink fra --language flag.
Hvis du porterer fra FunAudioLLM / CosyVoice

Tabellen ovenfor viser hver opstrøms fl_ kontrol token til sin Soniqo ækvivalent. Du behøver aldrig at splice fl_ tokens i din prompt dig selv - passere det høje niveau CLI flag eller Swift API argumenter og runtime vil udsende den korrekte sekvens: klon → instruerer → instruct2 → gem _ højttaler.

Stikprøveudtagning

LLM-stadiet anvender følgende prøvetagningskonfiguration:

ParameterVærdi
Top- k25
Top- p0.8
Gentagelse af Aware-prøvetagningAktiveret (vindue =10, tau _ r =0.1)

Gentagelse Aware Sampling (RAS), fra VALL-E 2, straffer tokens, der dukkede op i de sidste 10 genererede tokens. Dette forhindrer gentagne lyd artefakter og forbedrer output stabilitet.

Præstation

På en M2 Max. CosyVoice3 opnår en RTF te 0.5 - hurtigere end realtid.

FaseLATEY
LLM (kompileret)~ 13 ms / token
DiT- flow- matchning370 - 520 ms
HiFi- GAN50 - 170 ms
Kompilering

De kvantificerede LLM varianter (8- bit / 8-bit- full) brug compile(shapeless: true) for auto regressive løkke, som eliminerer omkompilering overhead på tværs af varierende sekvens længder. bf16 variant spring, der kompilerer - MLX- Swift 's formløse tracer kan ikke udlede output form af den bias- fusionerede matmul, der plain Linear bruger - og kører generationen loop ivrigt. Batch- fordoblet CFG halverer antallet af DiT fremad passerer fra 20 til 10 i alle varianter.