Awtomatikong salin · Orihinal sa Ingles
CosyVoice3
Run CosyVoice3 Local on Mac na may MLX para sa pagsasalita sa siyam na wika at voice cloning mula sa isang maikling pagtatala. Pakinggan ang default, i - clone at style-controled na mga halimbawa, pagkatapos ay subukin ang cloning na may reference audio at ang eksaktong transcription nito.
Mga sampol ng audio · Isara ang isang tinig na may CLI · Sinusuportang mga wika · Buong limang-wikang voice-cloning na paghahambing at metolohiya
Mga sampol ng audio
Pakinggan ang umiiral na default voice, ang clone na ginawa mula sa Kokoro af_heart, at ang style-controlled na halimbawa. Ang CLI halimbawa sa ibaba ay gumagamit ng hiwalay na FLEURS reference.
8-bit CosyVoice3 synthesis na may nakapirmeng binhi.
CosyVoice3 cloning mula sa Kokoro af_pusor reference clip.
Isang maliwanag, sabik na paghahatid na gumagamit ng --cosy-instruct.
Isara ang isang tinig na may CLI
Ibabang download Reference audio Ginagamit ng utos ang eksaktong kopya nito; palitan kapuwa ang rekording at ang transcript kapag ginagamit ang iyong sariling sampol ng boses.
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 magagamit
Ang gabay na ito at ang runtime ng Soniqo ay sumusuporta sa bukas Fun-CosyVoice 3-0.5B (3.0) Ang linya. opisyal na open-source reposition Kasalukuyang naglalathala at nagbibigay ng mga dokumentong 3.0ivić Fun-CosyVoice3-0.5B-2512 Ang —and ay hindi naglalantad ng CosyVoice 3.5 na mga pabigat o indibidwal na kodigo. cosyvoice-v3.5-plus Ang pangalan ay isang Aliba Cloud Model Studio API model ID, hindi isang downloadable checkpoint sa restoran na iyon, kaya hindi inaangkin ng Soniqo ang lokal na suportang 3.5.
Suportadong mga Wika
| Wika | Kodigo |
|---|---|
| Tsino | Kababaan |
| Tagalog | Mga english |
| Hapones | japanese |
| Koreano | korean |
| Aleman | mikrobyo |
| Kastila | split |
| Pranses | pandanggo |
| Italyano | taga-Ilokano |
| Ruso | Prussian |
Pipeline
CosyVoice3 Ang pagsasalita sa tatlong yugto:
- LLM — Ang Qwen2.5-0.5B A buto ay lumilikha ng FSQ (Finite Scalar Quantization) na mga pananda sa pagsasalita mula sa teksto
- Pag - aalis ng Agos — Isang 22-layer Difision Transformer na ginagawang mel spectrogram ang pagsasalita sa pamamagitan ng pagsasama - sama ng Euler ODE
- HiFi-GAN — Binabago ng Neural Source Filter vocoder ang mga mel spectrogram tungo sa 24 kHz waveforms
Arkitektura
LLM (Qwen2.5-0.5B)
Ang kasalukuyang runtime ay sumusuporta sa bf16 (default), 8bit at 8bit-full. Pumili ng isang bungkos na may --cosyvoice-variant. Ang modelo ng wika ay lumilikha ng discrete speech tokens autoregressively.
| Parameter | Halaga |
|---|---|
| Mga tagapaglatag | 24 |
| Natatagong mga Katangian | 896 |
| Tanong ng mga ulo | 14 |
| Susi/Value heads | 2 (GQA) |
| bokabularyo ng FSQ | 6561 |
| Pagiging Kuwalente | bf16 / 8-bit |
Pag - aalis ng Agos
Dinadalisay ng Diffusion Transformer ang pagsasalita ng mga total sa mga mel spectrogram gamit ang kondisyonal na daloy na tumutugma sa classifier-free potensyal.
| Parameter | Halaga |
|---|---|
| Mga tagapaglatag | 22 |
| Dimensiyon | 1024 |
| Mga head ng pagbibigay - pansin | 16 |
| Kalagayan | AdaLN (Adaptive Layer Norm) |
| Tagapaglutas ng ODE | Si Euler, 10 hakbang |
| Bilis ng CFG | 0.7 |
HiFi-GAN Vocoder
Isang Neural Source Filter (NSF) na nag-eebolb ng mga mel spectrogram sa mga waveform.
| Parameter | Halaga |
|---|---|
| Mga Harmoniko | 8 |
| Upsample ratio | 480x (8 x 5 x 3 x ISTFT 4) |
| ISTFT | n_fft=16, hop=4 |
| Bilis ng sampol sa output | 24 kHz |
Modelong mga Timbang
| Kaurian | LLM | Paglubog | Laki | HuggingFace |
|---|---|---|---|---|
8bit | int8, grupo=64 | bf16 | °1.4 GB | Aufklarer/CosyVoice3-0.5B-MLX-8bit |
8bit-full | int8, grupo=64 | int8, grupo=64 | °1.6 GB | Aufklarer/CosyVoice3-0.5B-MLX-8bit-full |
bf16 | bf16 | bf16 | °2.1 GB | Aufklarer/CosyVoice3-0.5B-MLX-bf16 |
Ang bawat bungkos ay kinabibilangan ng LLM, ang DiT street-matching decoder, ang HiFi-GAN vocoder, at ang S3-Tokenizer reference regulator na kailangan para sa sero-shot na voice cloning. Kumuha ng mas maliit na mga bungkos para sa mas maliit na download / disk footprint; pick bf16 kapag ang LLM/DiT quantition role ay nagiging problema (long-form synthesis, voice cloning katapatan).
Paggamit ng 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
Mga Halimbawa
# 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
Pag-clone ng boses
Clone anumang boses mula sa isang maikling reference audio sampol gamit ang --voice-sample flag. CosyVoice3 ay gumagamit ng CAM++ speaker recogulator upang kumuha ng 192-dim embending na kondisyon sa diT stream 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
Kung Paano Ito Umaandar
- CAM++ speaker Hinango ang isang 192-dim embending mula sa reference audio sa pamamagitan ng CoreML (Neural Engine)
- Pagtaya sa Affine (192 → 80) ay mga kondisyon ng daloy ng DiT na tumutugma sa decoder sa target na tinig
- HiFi-GAN vocoder kumokumberte ng speaker-conditioned mel spectrogram sa 24kHz audio
Nag - uusap
| Mga ari - arian | Halaga |
|---|---|
| Huwaran | CAM++ (Context-Aware Masking++) |
| Pagdidiskarga | 192 dimensiyon |
| Likod | CoreML (Neural Engine, FP16) |
| Laki | °14 MB |
| HuggingFace | aufklarer/CamPlusPlus-Speaker-CoreML |
Ang modelong CAM+ ay awtomatikong na-download sa unang paggamit ng modelo --voice-sample. Tingnan ang Pagsara ng Tinig gabay para sa reference audio tips at ang Swift API.
Multi-Proper Dialogue
Synthesize mga usapan sa pagitan ng mga multiple speakers gamit ang mga inline speaker tags. Ang bawat tagapagsalita ay inaatasan ng isang tinig mula sa isang reference audio file sa pamamagitan ng --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
Ang mga pangalang speaker sa mga tag ay case-insensitive at tumutugma sa mga susing pangpaplake. Ang isang di-nagbabagong direksyong puwang (default 0.2s) ay isinisingit sa pagitan ng mga ikot.
| Mapagpipilian | Pagkawasak | Paglalarawan |
|---|---|---|
--speakers | Speaker Packing: s1=file.wav,s2=file.wav | |
--turn-gap | 0.2 | Tumahimik sa pagitan ng mga pagliko (mga segundo) |
--crossfade | 0.0 | Pagsasanib ng mga ikot (pangalawa) |
Emotion & Style Tags
Supilin ang istilo ng pagsasalita sa bawat bahagi na gumagamit ng inline na emosyon mga tag. CosyVoice3 ay gumagamit ng teksto na unlaping bago ang <|endofprompt|> token bilang isang style word — ang emosyon ay naglalagay ng mapa sa natural na mga instruksiyon sa wika na pumapalit sa prefix na ito.
# 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
Itinayo-in Emotion Tags
| Tag | Tagubilin |
|---|---|
happy / excited | Magsalita nang masaya at may katuwaan. |
sad | Magsalita nang malungkot sa pamamagitan ng tonong melancholic. |
angry | Magsalita nang may galit at katindihan. |
whispers / whispering | Magsalita nang banayad at banayad na pabulong. |
laughs / laughing | Magsalita habang tumatawa. |
calm | Magsalita nang mahinahon at mapayapa. |
surprised | Mag - usap nang may pagtataka at pagkamangha. |
serious | Magsalita sa isang seryoso, pormal na paraan. |
Ang mga hindi kilalang tag ay dumadaan bilang mga instruksiyong freeform, kaya ang (Speak in a slow, dramatic voice) ay gumagana bilang-is.
Model Control Tkens (fl_ tokens)
Sa internasyunal na paraan, ang CosyVoice3 LLM ay gumagamit ng pantanging mga token na pangkontrol — na ini-fix fl_ – upang magpalit sa pagitan ng mga mode (zero-shot cloning, instructed synthesis, saving a speaker, atbp. Ang mga token na ito ay bahagi ng pasalungat na FunaKLM matrizer; ang Soniqo runtime ay naglalabas ng tama na awtomatikong batay sa bandilang CLI o Swift API na tumatawag sa inyong gamitin, kaya hindi ninyo kailanman isinulat ang mga ito sa pamamagitan ng kamay.
| Kukontrol ng torta | Mode | Kung paano hihingi ng tulong mula sa Soniqo |
|---|---|---|
<|fl_speaker_clone|> | Zero-shot voice cloning mula sa isang reference audio sampol | Pass --voice-sample reference.wav sa CLI, o kaya ay maglagay ng voiceSample: sa Swift API. |
<|fl_speaker_instruct|> | Instruksiyon- o estilo-conditioned synthesis na may default na tinig | Pass --cosy-instruct "Speak cheerfully" o kaya'y gumamit ng inline (happy) tag na walang --voice-sample. |
<|fl_speaker_instruct2|> | Ang synthesis sa pagtuturo kasama ang isang naka - clone na tinig na reperensiya | Combinye --voice-sample reference.wav kasama ang --cosy-instruct "..." (o isang inline emosyon tag) sa parehong tawag. |
<|fl_save_speaker|> | Ituloy ang pag-eembbeding ng tagapagsalita para sa re-use nang hindi muling pina-recoding ang reference audio bawat tawag | Hindi tuwirang nalalantad sa Soniqo CLI — ang mga embelding ay computed kada tawag. Upang malagyan ng cache, kunin ang 192-dim CAM+++ vector y sa pamamagitan ng Speecher Embeddings module at ipasa ito. |
<|fl_speaker_clone_zh|>, <|fl_speaker_clone_en|>, … | Wika-specific sero-shot cloning mga pahiwatig na ginagamit ng tortaizer sa itaas ng ilog | Ihalo ang --voice-sample sa --language german|spanish|chinese|.... Soniqo pili ng tamang wika na pahiwatig mula sa --language bandila. |
Ang mesa sa itaas ng mga mapa ay bawat isa'y pasalungat sa agos fl_ Hanggang sa katumbas nitong Soniqo. fl_ Mga paunawa sa iyong mabilisang daanan — pasahin ang mga bandilang high-level CLI o Swift API na mga argumento at ang runtime ay maglalabas ng tamang pagkakasunod-sunod: clone → mag-aral → instruct2 → Magligtas_specker.
Paghahabol
Ang LLM stage ay gumagamit ng sumusunod na mga halimbawang pagsasaayos:
| Parameter | Halaga |
|---|---|
| Itaas-k | 25 |
| Itaas-pop | 0.8 |
| Muling Pag - alaala sa May - kabatirang Paghahabol | Hinango (window=10, tau_r=0.1) |
Repetition Awate Sampling (RAS), mula sa VALL-E 2, penitus tokens na lumitaw sa huling 10 na nilikhang mga token.Ito ay pumipigil sa paulit-ulit na audio artifacts at nagpapabuti ng katatagan ng output.
Pag - aasikaso
Sa isang M2 Max, CosyVoice3 ay nagkamit ng RTF ng humigit-kumulang 0.5 — mas mabilis kaysa sa real-time.
| Bagsag | Pagiging Latente |
|---|---|
| LLM (nakapila) | Ulton13 ms/Tenilyo |
| Pag - aalis ng Agos | 370 - 520 ms |
| HiFi-GAN | 50 - 170 m |
Ang mga quantadong LLM variant (8-bit / 8'bit-full) ay ginagamit compile(shapeless: true) para sa autoregressive loop, na nag-aalis ng recompilation sa itaas sa iba't-ibang mga haba ng pagkakasunud-sunod. Ang bf16 variant disps na nagtitipon – MLX-Swift's walang hugis na bakas ay hindi maaaring magresulta sa output na hugis ng pagkiling-fused matmul na simpleng simpleng simpleng single Linear ay gumagamit – at nagpapatakbo ng pang-edukasyon na loop nang may pananabik. ang Batch-doubled CFG ay kalahati ng bilang ng DiT forward passes mula 20 hanggang 10 sa lahat ng mga variant.
Qwen3-ASR speech-to-text · Parakeet TDT speech-to-text · Kokoro-82M TTS