Strojový překlad · Anglický originál

CosyVoice3

CosyVoice3 lokálně na Mac s MLX pro řeč v devíti jazycích a klonování hlasu z krátkého záznamu. Poslechněte si výchozí, klonované a stylově řízené příklady, pak zkuste klonování s referenčním audio a jeho přesný přepis.

Vzorky zvuku · Klone hlas s CLI · Podporované jazyky · Plné pětijazyčné hlasové-klonování srovnání a metodika

Vzorky zvuku

Poslechněte si stávající výchozí hlas, klon vyrobený z Kokoro af _ heart a style- controlled příklad. Níže uvedený příklad CLI používá samostatný odkaz FLEURS.

Výchozí angličtinaCosyVoice3 8- bit

8- bit syntéza CosyVoice3 s pevným semenem.

Hlasový klonaf _ heart reference

CosyVoice3 klonování z referenčního klipu Kokoro af _ heart.

Styl instruction--cosy-instruct

Světlé, vzrušující dodání pomocí --cosy-instruct.

Klone hlas s CLI

Stáhnout Referenční audio jako reference.wav Příkaz používá svůj přesný přepis; při použití vlastního hlasového vzorku nahrazuje záznam i přepis.

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 dostupnost

Co podporuje Soniqo

Tento průvodce a runtime Soniqo podporují otevřené Fun-CosyVoice 3-0.5B (3.0) Řádek. oficiální úložiště open-source aktuálně zveřejňuje a dokumentuje 3.0 - včetně Fun-CosyVoice3-0.5B-2512- a neodhaluje CosyVoice 3.5 závaží nebo odvozovací kód. cosyvoice-v3.5-plus Název je Alibaba Cloud Model Studio API model ID, není stažitelný kontrolní bod v tomto úložišti, takže Soniqo nepožaduje místní podporu 3.5.

Podporované jazyky

JazykKód
Čínštinačínština
Englishangličtina
japonskyjaponština
Korejštinakorejský
NěmčinaNěmecko
Španělštinašpanělština
Francouzštinafrancouzština
Italštinaitalský
Ruskýruština

Potrubí

CosyVoice3 syntetizuje řeč ve třech etapách:

  1. LLM - Qwen2.5-0.5B páteř generuje FSQ (Finite Scarar Kvantification) řečové tokeny z textu
  2. Odpovídající tok diT - 22- layer Difuzní transformátor konvertuje řečové tokeny na mel spektrogramy prostřednictvím Euler ODE integrace
  3. HiFi- GAN - Vokodér Neruálního zdroje konvertuje mel spektrogramy na vlnové formy 24 kHz

Architektura

LLM (Qwen2.5-0.5B)

Aktuální runtime podporuje bf16 (přednastaveno), 8bit a 8bit- full. Vyberte svazek s --cosyvoice-variant. Jazykový model generuje diskrétní řečové tokeny automaticky.

ParametrHodnota
Vrstvy24
Skrytá dimenze896
Hlavy dotazu14
Hlavy klíčů / hodnoty2 (GQA)
Slovník FSQ6561
Kvantizacebf16 / 8- bit

Odpovídající tok diT

Difuzní transformátor zpřesňuje řečové tokeny na mel spektrogramy pomocí podmíněného spojení toku s bezklasifikovaným vedením.

ParametrHodnota
Vrstvy22
Rozměr1024
Pozor, hlavy16
StabilizaceAdaLN (adaptivní layer norm)
Řešitel ODEEuler, 10 kroků
Sazba CFG0.7

HiFi- GAN Vocoder

Vokodér s neurologickým zdrojem (NSF), který konvertuje mel spektrogramy na vlnové formy.

ParametrHodnota
Harmonické8
Poměr nahoru480x (8 x 5 x 3 x ISTFT 4)
ISTFTn _ fft = 16, hop = 4
Výstupní vzorkovací rychlost24 kHz

Vzorové váhy

VariantaLLMDiTVelikostHuggingFace
8bitint8, skupina = 64bf16~ 1.4 GBaufklarer / CosyVoice3-0.5B-MLX-8bit
8bit-fullint8, skupina = 64int8, skupina = 64~ 1.6 GBaufklarer / CosyVoice3-0.5B-MLX-8bit-full
bf16bf16bf16~ 2,1 GBaufklarer / CosyVoice3-0.5B-MLX-bf16

Každý svazek obsahuje LLM, diT flow- odpovídající dekodér, HiFi-GAN vokodér, a S3-Tokenizer referenční enkodér potřebný pro nulo-shot hlasové klonování. Vyberte menší balíky pro menší stahování / disk stopy; vybrat bf16 když se stává problémem zvuk kvantifikace LLM / DiT (syntéza dlouhotrvající formy, loajalita klonování hlasu).

Použití CLI

# 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

Příklady

# 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

Klonování hlasu

Klonujte jakýkoliv hlas z krátkého referenčního zvukového vzorku pomocí --voice-sample vlajka. CosyVoice3 používá CAM + + reproduktor pro extrahování 192-dim vkládání, které podmínky DiT průtok 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

Jak to funguje

  1. CAM + + reproduktor enkodér výtažky a 192-dim vložení z referenčního zvuku přes CoreML (Neural Engine)
  2. Projekce funkce (192 → 80) podmínky DiT tok odpovídající dekodér na cílovém hlasu
  3. HiFi- GAN vokodér konvertuje speaker- stabilizovaný mel spektrogram na 24kHz audio

Reproduktor Encoder

VlastnostHodnota
VzorCAM + + (Maskování v context- Aware + +)
Vložení192 rozměrů
BackendCoreML (Neural Engine, FP16)
Velikost~ 14 MB
HuggingFaceaufklarer/CamPlusPlus-Speaker-CoreML

Model CAM + + se automaticky stáhne při prvním použití --voice-samplePodívej se na to. Klonování hlasu návod pro referenční audio tipy a Swift API.

Multi- Speaker Dialog

Syntetizovat rozhovory mezi více reproduktory pomocí inline reproduktor tagy. Každý reproduktor je přidělen hlas z referenčního audio souboru prostřednictvím --speakers Vlajka.

# 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

Jména reproduktorů ve štítcích jsou case- insensitive a odpovídají klávesám pro mapování. Mezi závity se vkládá konfigurovatelná mezera ticha (výchozí 0.2s).

MožnostVýchozíPopis
--speakersMapování reproduktorů: s1=file.wav,s2=file.wav
--turn-gap0.2Ticho mezi zatáčkami (sekundy)
--crossfade0.0Překrývání příčného sklonu mezi závity (sekundy)

Emoce & amp; Značky stylu

Ovládat styl mluvení na segment pomocí inline emocí tagy. CosyVoice3 používá text prefix před <|endofprompt|> token jako styl instrukce - emoční tagy mapa k přírodním jazykovým instrukcím, které nahrazují tuto předponu.

# 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

Built- v emotion tagy

ZnačkaNávod
happy / excitedMluv šťastně a s nadšením.
sadMluvte smutně melancholickým tónem.
angryMluv se vztekem a intenzitou.
whispers / whisperingMluv jemným, jemným šeptem.
laughs / laughingMluv, když se směješ.
calmMluv klidně a klidně.
surprisedMluv s překvapením a překvapením.
seriousMluv seriózně, formálně.

Neznámé značky projít jako freeform instrukce, takže (Speak in a slow, dramatic voice) Funguje jako... je.

Modelové ovládací tokeny (fl_ žetony)

CosyVoice3 LLM interně používá speciální ovládací žetony - přednastavené fl_ - přepínat mezi režimy (0-shot klonování, instruktážní syntéza, uložení reproduktoru, atd.). Tyto tokenizéry jsou součástí předního FunAudiollM tokenizer; runtime Soniqo vysílá ten správný automaticky na základě vlajky CLI nebo Swift API, který vám zavolá, takže je nikdy nenapíšete ručně.

Značka ovládáníRežimJak se dovolávat Soniqo
<|fl_speaker_clone|>Zeroshot hlasové klonování z referenčního zvukového vzorkuProjít --voice-sample reference.wav na CLI, nebo set voiceSample: na Swift API.
<|fl_speaker_instruct|>Instruction- nebo style- stabilizovaná syntéza s výchozím hlasemProjít --cosy-instruct "Speak cheerfully" nebo použít inline (happy) Značka bez --voice-sample.
<|fl_speaker_instruct2|>Instruktorní syntéza kombinovaná s klonovaným referenčním hlasemKombinovat --voice-sample reference.wav s --cosy-instruct "..." (nebo inline emoční tag) ve stejném volání.
<|fl_save_speaker|>Insist reproduktor je vkládání pro opakované použití bez překódování referenční zvuk každé voláníNe přímo vystavený v Soniqo CLI - embeddings jsou vypočteny na jeden hovor. Chcete-li cache, extrahovat 192-dim CAM + + vektor sami prostřednictvím Reproduktor Embeddings Modul a předat dopředu.
<|fl_speaker_clone_zh|>, <|fl_speaker_clone_en|>, …Jazykové-specifické nula-shot klonování rady používané proti tokenizerKombinovat --voice-sample s --language german|spanish|chinese|.... Soniqo vybere správný jazyk náznak z --language Vlajka.
Pokud se portujete z FunAudioLLM / CosyVoice

Tabulka výše mapuje každý proti proudu fl_ ovládací symbol k jeho ekvivalent Soniqo. Nikdy není třeba splice fl_ tokeny do vaší objednávky sami - předat high-level CLI vlajky nebo Swift API argumenty a runtime bude emitovat správnou posloupnost: klon → instructive → instruct2 → uložit _ reproduktor.

Výběr vzorku

Stadium LLM využívá tuto konfiguraci odběru vzorků:

ParametrHodnota
Top- k25
Top- p0.8
Opakovat odběr vzorků z AwarePovoleno (okno = 10, tau _ r = 0.1)

Opakování odběru vzorků Aware (RAS), z VALL-E 2, penalizuje tokeny, které se objevily v posledních 10 generovaných tokeny. To zabraňuje opakování zvukových artefaktů a zlepšuje stabilitu výstupu.

Výkonnost

Na M2 Max, CosyVoice3 dosáhne RTF přibližně 0.5 - rychleji než reálný čas.

FázeTrvání
LLM (sestaveno)~ 13 ms / token
Odpovídající tok diT370 - 520 ms
HiFi- GAN50 - 170 ms
Kompilace

Kvantifikované varianty LLM (8-bit / 8- bit- full) compile(shapeless: true) pro autoregresivní smyčku, která eliminuje rekompilaci režie v různých délkách sekvence. bf16 varianta skips, které sestavují - MLX-Swift je netvarovaný stopovač nemůže infiltruje výstupní tvar bias- taveného matmul, že plain Linear používá - a běží generační smyčku dychtivě. Batch- double CFG snižuje počet DiT posuv z 20 do 10 ve všech variantách.