Konekäännös · Englanninkielinen alkuperäinen
CosyVoice3
Suorita CosyVoice3 paikallisesti Mac MLX puheen osalta yhdeksällä kielellä ja äänen kloonaus lyhyestä tallennuksesta. Kuuntele oletus-, kloonattu- ja tyyliohjattuja esimerkkejä, kokeile sitten kloonaamista viiteäänellä ja sen täsmällisellä kirjoituksella.
Ääninäytteet · Kloonaa ääni CLI:n kanssa · Tuetut kielet · Täysi viiden kielen ääni-kloonaus vertailu ja menetelmät
Ääninäytteet
Kuuntele olemassa olevaa oletusääntä, Kokoro af_heartista tehtyä kloonia ja tyyliohjattua esimerkkiä. Alla olevassa CLI-esimerkissä käytetään erillistä FLEURS -viittausta.
8-bittinen CosyVoice3 synteesi kiinteällä siemenellä.
CosyVoice3 kloonaaminen Kokoro af_sydänviittausleikkeestä.
Kirkas, jännittynyt toimitus, jossa käytetään --cosy-instruct.
Kloonaa ääni CLI:n kanssa
Lataa Reference audio referenssiksi.wav. Komento käyttää tarkkaa transkriptiotaan; korvaa sekä nauhoituksen että transkription, kun käytät omaa ääninäytettäsi.
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 käytettävyys
Tämä opas ja Soniqo:n ajoaika tukevat avointa Fun-CosyVoice 3-0.5B (3.0) Linja. virallinen avoimen lähdekoodin arkisto tällä hetkellä julkaistaan ja asiakirjoja 3.0...mukaan lukien Fun-CosyVoice3-0.5B-2512 Ei paljasta CosyVoice 3.5-painoja eikä päättelykoodia. cosyvoice-v3.5-plus Nimi on Alibaba Cloud Model Studio API malli ID, ei ladattava tarkistuspiste tässä arkistossa, joten Soniqo ei vaadi paikallista 3.5 tukea.
Tuetut kielet
| Kieli | Koodi |
|---|---|
| kiina | kiinalaista |
| Finnish | englanti |
| japani | japani |
| korea | koreanName |
| Saksa | saksa |
| espanja | espanja |
| ranska | ranska |
| italia | Italia |
| Venäjä | Venäjä |
Putkijohto
CosyVoice3 syntetisoi puheen kolmessa vaiheessa:
- LLM ... Qwen2.5-0.5B runko tuottaa FSQ:n (Finite Scalar Qantization) puhemerkit tekstistä.
- DiT Virtausvastaavuus ... .. A 22-kerroksinen diffuusiomuuntaja muuntaa puhemerkit melspektrogrammeiksi Euler ODE -integroinnin avulla.
- HiFi-GAN ... Neuraal Source Filter vocoder muuntaa mel spektrogrammit 24 kHz:n aaltomuodoiksi
Arkkitehtuuri
LLM (Qwen2.5-0.5B)
Nykyinen ajoaika tukee bf16 (oletus), 8bit ja 8bit-täysi. Valitse nippu, jossa on --cosyvoice-variant. Kielimalli tuottaa erillisiä puhemerkkejä automaattisesti.
| Parametri | Arvo |
|---|---|
| Tasot | 24 |
| Piilotettu ulottuvuus | 896 |
| Kyselypäät | 14 |
| Avain/arvopäät | 2 (GQA) |
| FSQ-sanasto | 6561 |
| Määrä | bf16 / 8-bittinen |
DiT-virran vastaavuus
Diffuusiomuuntaja jalostaa puheen rahakkeita mel-spektrogrammeiksi käyttämällä ehdollista virtausta, joka vastaa luokittelutonta ohjausta.
| Parametri | Arvo |
|---|---|
| Tasot | 22 |
| Mitat | 1024 |
| Huomio! | 16 |
| Hoito | AdaLN (Adaptive Layer Norm) |
| ODE:n ratkaisija | Euler, 10 askelmaa |
| CFG:n osuus | 0.7 |
HiFi-GAN Vocoder
Neural Source Filter (NSF) vocoder, joka muuntaa mel spektrogrammit aaltomuotoja.
| Parametri | Arvo |
|---|---|
| Harmoniikka | 8 |
| Yläotoksen suhde | 480x (8 x 5 x 3 x ISTFT 4) |
| ISTFT | n_fft = 16, hyppy = 4 |
| Otosotosnopeus | 24 kHz |
Mallin painot
| Variantti | LLM | DiT | Koko | HuggingFace |
|---|---|---|---|---|
8bit | int8, ryhmä=64 | bf16 | ~1,4 GB | aufklarer/CosyVoice3-0.5B-MLX-8bit |
8bit-full | int8, ryhmä=64 | int8, ryhmä=64 | ~1,6 GB | aufklarer/CosyVoice3-0.5B-MLX-8bit-full |
bf16 | bf16 | bf16 | ~2,1 GB | aufklarer/CosyVoice3-0.5B-MLX-bf16 |
Jokaiseen nippuun sisältyy LLM, DiT-virtaajaa vastaava dekooderi, HiFi-GAN-äänenvaimentaja ja S3-Tokenizer -vertailukoodain, jota tarvitaan nollaäänen kloonaukseen. Valitse pienempiä nippuja pienempään lataamiseen / levynjalanjälkeen; poimi bf16 kun LLM/DiT-määrällistä melua tulee ongelmaksi (pitkämuotoinen synteesi, äänen kloonaus fedellity).
CLI-käyttö
# 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
Esimerkit
# 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
Äänen kloonaus
Kloonaa kaikki ääni lyhyen viiteääninäytteen avulla --voice-sample lippu. CosyVoice3 käyttää CAM++-kaiutinkoodainta poimiakseen 192-diimin, joka peittää diT-virtausmallin.
# 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
Miten se toimii
- CAM++-kaiutinkooderi uutteet 192-dim upottamalla viiteäänestä CoreML (Neural Engine)
- Affine projection (192 → 80) ehdot DiT-virtaa vastaava dekooderi kohdeäänellä
- HiFi-GAN-vocoder muuntaa kaiuttimen ilmastoidun mel-spektrogrammin 24kHz-ääneksi
Kaiutinkooderi
| Omaisuus | Arvo |
|---|---|
| Malli | CAM++ (Context-Aware Masking++) |
| Upottaminen | 192 ulottuvuutta |
| Taustaosa | CoreML (Neural Engine, FP16) |
| Koko | ~14 Mt |
| HuggingFace | aufklarer/CamPlusPlus-Speaker-CoreML |
CAM++-malli ladataan automaattisesti, kun käytetään ensimmäistä kertaa --voice-sample. Katso Voice Cloning -opas viiteäänivinkkejä varten ja Swift API.
Monipuheinen vuoropuhelu
Useiden puhujien väliset yhteenkokoamiskeskustelut käyttäen inline-kaiutintunnisteita. Jokainen kaiutin on osoitettu ääni viiteäänitiedostosta --speakers -lipun kautta.
# 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
Kaiuttimen nimet tageissa ovat tapaus-herkkiä ja sopivat kartoitusavaimiin. Asennettava hiljaisuusväli (oletusarvo 0,2s) lisätään vuorojen väliin.
| Vaihtoehto | Oletus | Tavaran kuvaus |
|---|---|---|
--speakers | Kaiutinkartoitus: s1=file.wav,s2=file.wav | |
--turn-gap | 0.2 | Hiljaisuus kierrosten välillä (sekunteja) |
--crossfade | 0.0 | Crossfade päällekkäisyys kierrosten välillä (sekuntia) |
Emotion & Style Tunnisteet
Ohjaa puhumistyyliä segmenttiä kohti käyttäen inline-tuntemustunnisteita. CosyVoice3 käyttää tekstin etuliitettä ennen <|endofprompt|> kuponkia tyyliohjeena ... emotional tags karttaan, joka korvaa tämän etuliitteen.
# 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
Sisäänrakennettu tunnetagit
| Merkintä | Ohje |
|---|---|
happy / excited | Puhu iloisesti ja jännityksellä. |
sad | Puhu surullisesti melankolisella äänellä. |
angry | Puhu vihalla ja intensiteetillä. |
whispers / whispering | Puhu pehmeästi ja lempeästi. |
laughs / laughing | Puhu nauraen. |
calm | Puhu rauhallisesti ja rauhallisesti. |
surprised | Puhu yllätyksin ja hämmästyksin. |
serious | Puhukaa vakavalla ja muodollisella äänellä. |
Tuntematon tagi kulkee vapaamuotoisina ohjeina, joten (Speak in a slow, dramatic voice) toimii sellaisena kuin se on.
Malli Control Tokens (fl_ tokens)
Sisäisesti CosyVoice3 LLM käyttää erityisiä ohjauspoletteja fl_ . Nämä kuponkit ovat osa yläjuoksulla FunAudioLLM tokeneizer; Soniqo runtime lähettää oikean automaattisesti perustuu CLI lippu tai Swift API soittaa käytät, joten et koskaan kirjoittaa niitä käsin.
| Hallintamerkki | Tila | Kuinka vedota Soniqo |
|---|---|---|
<|fl_speaker_clone|> | Nollaäänen kloonaus viiteääninäytteestä | Ohita --voice-sample reference.wav CLI:ssä tai aseta voiceSample: on the Swift API. |
<|fl_speaker_instruct|> | Ohje- tai tyyli-ehdollinen synteesi oletusäänellä | Ohita --cosy-instruct "Speak cheerfully" tai käytä inline (happy) tagi ilman --voice-sample. |
<|fl_speaker_instruct2|> | Ohjesynteesi yhdistettynä kloonattuun viiteääneen | Yhdistä --voice-sample reference.wav ja --cosy-instruct "..." (tai inline emotion tag) samassa kutsussa. |
<|fl_save_speaker|> | Tunnista kaiuttimen uudelleenkäyttöä varten asentamatta uudelleen viiteääntä jokaiseen puheluun | Ei ole suoraan altistunut Soniqo CLI ... upotukset lasketaan puhelua kohti. Välimuistiin, ota 192-dim CAM++ -vektori itse Kaiuttimen upotukset -moduulin kautta ja siirry eteenpäin. |
<|fl_speaker_clone_zh|>, <|fl_speaker_clone_en|>, … | Alkuvaiheen instrumenttilaitteen käyttämät kielikohtaiset nolla-ampuvat kloonausvinkit | Yhdistä --voice-sample kun --language german|spanish|chinese|.... Soniqo valitsee oikean kielen vihjeen --language Lippu. |
Taulukko edellä karttoja kukin ylävirtaan fl_ Control polet sen Soniqo-ekvivalentin. Sinun ei tarvitse koskaan liittää fl_ poletit sinun pikaviestissäsi ... ojenna korkean tason Clien liput tai Swift API-parametrit ja ajoaika lähettää oikean sekvenssin: klooni → ohje → instruct2 → save_speaker.
Näytteenotto
LLM vaiheessa käytetään seuraavaa näytteenottokokoonpanoa:
| Parametri | Arvo |
|---|---|
| Yläk | 25 |
| Ylä-p | 0.8 |
| Uusintatietoinen näytteenotto | Käytössä (ikkuna = 10, tau_r=0.1) |
Toistaminen Aware Sampling (RAS), alkaen VALL-E 2, rankaisee rahakkeita, jotka ilmestyivät viimeisten 10 luotua kuponkia. Tämä estää toistuvia ääniesineitä ja parantaa tuotannon vakautta.
Tulos
M2 Max, CosyVoice3 saavuttaa RTF noin 0,5 .
| Vaihe | Latenssi |
|---|---|
| LLM (yhdistetty) | ~13 ms/token |
| DiT-virran vastaavuus | 370-520 ms |
| HiFi-GAN | 50- 170 ms |
Kvantitoitu LLM variantit (8-bittinen / 8-bit-täydellinen) käyttö compile(shapeless: true) autoregressiivinen silmukka, joka poistaa rekompilaatio yläpuolella eri sekvenssipituudet. bf16 variantti hypätä, joka kokoaa . MLX-Swiftin muototon merkki ei voi päätellä ulostulon muoto harhaan fuusioitu matmul, joka tasanko Linear käyttää . Erän tuplannut CFG puolittaa diT eteenpäin kulkee 20:stä 10:een kaikissa varianteissa.
Qwen3-ASR puhe-text · Parakeet TDT puhe-table · Kokoro-82M TTS