תרגום מכונה · המקור באנגלית

CosyVoice3

Run CosyVoice3 מקומי ב Mac עם MLX עבור דיבור בתשע שפות ושמיעה קולית מהקלטה קצרה. הקשב לדוגמאות, משובצות וסטייל מבוקרות, ולאחר מכן נסה לשכט עם התייחסות אודיו ואת התמליל המדויק שלה.

דוגמיות אודיו · קול עם CLI · שפות תמיכה · השוואה ומתודולוגיה קול-קולית מלאה

דוגמיות אודיו

הקשב לקול ברירת המחדל הקיים, ההטמעה שנעשתה מ Kokoro af_heart, והדוגמה הנשלטת על ידי סגנון.דוגמה CLI להלן משתמשת בהפניה נפרדת FLEURS הפניה.

Default EnglishCosyVoice3 8-bit

8 סיביות CosyVoice3 סינתזה עם זרע קבוע.

Voice Cloeaf_heart Reference

CosyVoice3 משוב מתוך Kokoro Af_heart Reference קליפ.

Style הוראה--cosy-instruct

משלוח בהיר ומרגש באמצעות --cosy-instruct.

קול עם CLI

הורד Reference Audio כהערה.wav. הפקודה משתמשת בתעתיק המדויק שלה; להחליף הן את הקלטת והן את תמליל בעת שימוש במדגם הקול שלך.

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 לעומת 3.5 זמינות

מה Soniqo תומך

מדריך זה ו Soniqo's Runtime Support the Open Fun-CosyVoice 3-0.5B (3.0) קו.The קוד פתוח רשמי כיום מפרסם ומסמכים 3.0 - כולל Fun-CosyVoice3-0.5B-2512- ואינו חושף את משקלו של CosyVoice 3.5 או קוד ההקצאה. cosyvoice-v3.5-plus שם הוא מודל של Alibaba Cloud Model Studio API, לא מחסומים שניתן להורידם ב-Expository הזה, כך Soniqo אינו טוען תמיכה מקומית 3.5.

שפות תמיכה

שפהקוד קודקוד
סין הסיניתסין
אנגלית אנגליתאנגלית
יפן יפניתיפן
קוריאה הקוריאניתkorean
גרמניה גרמניתגרמניה גרמניה גרמניה
ספרדיתהמונחים:
צרפתית צרפתית צרפתיתצרפתית צרפתית
איטלקי איטלקי איטלקי איטלקיאיטלקית איטלקית איטלקית איטלקית יפנית איטלקית איטלקית איטלקית
רוסיה רוסיהרוסיה

המונחים:

CosyVoice3 בשלוש שלבים:

  1. LLM - Qwen2.5-0.5B עמוד השדרה יוצר את FSQ (Finite Scalar Quantization) דיבור אסימונים מטקסט
  2. DiT Flow Matching - A 22-layer Diffusion Transformer ממיר אסימוני דיבור לתוך spectrograms אבטיח באמצעות שילוב ODE
  3. HiFi-gan - Neural Filter Source vocoder ממיר spectrograms לתוך 24 kHz גלפורות

ארכיטקטורה

LLM (Qwen2.5-0.5B)

זמן הריצה הנוכחי תומך bf16 (default), 8bit ו- 8bit-מלא. בחר חבילה עם --cosyvoice-variant.מודל השפה יוצר דיבור דיסקרטי לסימון אוטומטי.

Parameterערך
שכבות24
ממד נסתר896
ראשי קווירי14
ראשי מפתח / Value2 (GQA)
אוצר מילים FSQ6561
המונחיםbf16 / 8 סיביות

DiT Flow

ה Diffusion Transformer מחדד את הדיבור לתוך ספקטרוגרמה של אבטיח באמצעות זרימה מותנית התאמה עם הדרכה ללא מרשם.

Parameterערך
שכבות22
המימד המימד1024
שימו לב16
המונחים:AdaLN (AdaLN) (AdalN)
ODE Solrאוילר, 10 צעדים
שיעור CFG0.7

HiFi-gan Vocoder

מקור נידור (NSF) vocoder שממיר spectrograms mel כדי גלפורות.

Parameterערך
הרמוניים8
יחס Upsample480x (8 x 5 x 3 x ISTFT 4
ISTFTn_fft=16, הופ=4
המונחים: rate24 kHz

משקל מודל

משתנהLLMDiTגודלHuggingFace
8bitint8, קבוצה=64bf161.4 GBaufklarer/CosyVoice3-0.5B-MLX-8bit
8bit-fullint8, קבוצה=64int8, קבוצה=641.6 GBaufklarer/CosyVoice3-0.5B-MLX-8bit-full
bf16bf16bf16-2.1 GBaufklarer/CosyVoice3-0.5B-MLX-bf16

כל חבילה כוללת את LLM, DiT זורם coder, HiFi-gan vocoder, ואת ה- S3-Tokenizer הפנה קודר נדרש עבור קול אפס-shot שיבוט. bf16 כאשר LLM/DiT קוונטיזציה רעש הופכת לבעיה (סינתזה לטווח ארוך, קולי שיבוט נאמנות).

CLI Usage

# 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

דוגמאות

# 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

שכפול קול

Clone כל קול מדגימה אודיו קצרה תוך שימוש ב- --voice-sample דגל CosyVoice3 משתמש ברמקול CAM ++קודר כדי לחלץ 192-dim המטביע את התנאים האלה מודל זרימת DiT.

# 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

איך זה עובד

  1. רמקול ++ coder תמצית 192-dim המטביעה מהשמע ההתייחסות באמצעות CoreML (Neural Engine)
  2. Affine Projection (192 80) תנאים זרימת DiT התאמה של קודקוד על קול היעד
  3. HiFi-gan vocoder ממיר את spectrogram מותאמת הדובר עד 24kHz אודיו

תגית: Encoder

רכושערך
מודל מודלCAM++ (Context-Aware Masking++)
Embedding192 ממדים
חזרהCoreML (Neural Engine, FP16)
גודל14 MB
HuggingFaceaufklarer/CamPlusPlus-Speaker-CoreML

מודל CAM++ הורד באופן אוטומטי על השימוש הראשון של --voice-sample. ראה את Cloning מדריך לטיפים אודיו ו Swift API.

דיאלוג רב-דבר

שיחות סינת גודל בין דוברים מרובים באמצעות תגי דוברים ברשת.כל דובר מוקצה קול מקובץ אודיו הפניה באמצעות דגל --speakers.

# 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

שמות הדוברים בתגיות הם רגישים במקרה ותואמים למפתחי המיפוי. פער שתיקה חד-משמעי (default 0.2s) מוכנס בין סיבובים.

אפשרותDefaultתיאור תיאור
--speakersמיפוי: s1=file.wav,s2=file.wav
--turn-gap0.2שתיקה בין סיבובים (שניים)
--crossfade0.0Crossfade חפיפה בין סיבובים (שניים)

Emotion & סטיילס

לשלוט בסגנון הדיבור על פלח תוך שימוש בתגי רגש פנימיים. CosyVoice3 משתמשת בקידומת הטקסט לפני <|endofprompt|>

# 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-in Emotion

Tag Tagהוראה
happy / excitedדברו בשמחה ובהתרגשות.
sadלדבר בעצב עם טון מלנכוליה.
angryלדבר עם כעס ועוצמה.
whispers / whisperingלדבר בלחש רך ועדין.
laughs / laughingדברו בזמן צחוק.
calmדברו בשלווה ובשקט.
surprisedלדבר עם הפתעה ומדהימה.
seriousלדבר בטון רציני ופורמלי.

תגים לא ידועים עוברים כהנחיות חינם, כך (Speak in a slow, dramatic voice) עובד כמו-is.

מודל בקרת Tokens (fl_ אסימונים)

באופן פנימי, CosyVoice3 LLM משתמש ב אסימוני בקרה מיוחדים - prefixededed fl_ - כדי לעבור בין מצבים (תיקון אפסי, סינתזת הוראה, שמירת רמקול, וכו ') אסימונים אלה הם חלק מהפטרון Upstream FunAudioLLM tokenizer; The The the the the tokenizers; the the the the upstream FunAullier; the Upstream Fun AudioLLM Tokenizer. Soniqo זמן ריצה פולט את הדבר הנכון באופן אוטומטי על בסיס דגל CLI או Swift API התקשרו אליכם, לכן אתם אף פעם לא כותבים אותם ביד.

המונחים:מצב Modeאיך להגות Soniqo
<|fl_speaker_clone|>קול Zero-shot משובץ מדגימה אודיומעבר --voice-sample reference.wav על CLI, או להגדיר voiceSample: Swift API
<|fl_speaker_instruct|>סינתזה מותנית של הוראה או סגנון עם קול ברירת מחדללעבור --cosy-instruct "Speak cheerfully" או להשתמש בקו Inline (happy) תג ללא --voice-sample.
<|fl_speaker_instruct2|>סינתזת הוראה בשילוב עם קול הפניה משובץשלב --voice-sample reference.wav עם --cosy-instruct "..." (או תג רגש פנימי) באותה שיחה.
<|fl_save_speaker|>Persist a Speaker's הטמיע לשימוש חוזר מבלי להחזיר את אודיו ההתייחסות לכל שיחהלא להיחשף ישירות ב Soniqo CLI - הטמעת קידוד לכל שיחה. to cache, לחלץ את 192-dim CAM + ו- CAM באמצעות דבר Embeddings מודול ולהעביר אותו קדימה.
<|fl_speaker_clone_zh|>, <|fl_speaker_clone_en|>, …שפה ספציפית אפס-shot cloning רמזים בשימוש על ידי tokenizerשלב --voice-sample עם --language german|spanish|chinese|... Soniqo בוחר את הרמז בשפה הנכונה מן הדגל --language.
אם אתם יוצאים מ-FunAudioLLM/CosyVoice

השולחן מעל המפות כל זרם fl_ שליטה על ה- Soniqo שווה ערך.You Never Need to splice fl_ אסימונים לתוך עצמך המהיר - להעביר את דגלי CLI ברמה גבוהה או Swift API טיעונים ואת הזמן לרוץ פולטים את הרצף הנכון: השיבוט, כדי ללמד instruct2, להציל_רמקולer.

פשטות

שלב LLM משתמש בתצורת הדגימה הבאה:

Parameterערך
Top-k25
Top-p0.8
Repetition Aware SamplingEnabled (window=10, tau_r=0.1)

Repetition Aware Sampling (RAS), מ-VALL-E 2, מעניש אסימונים שהופיעו ב-10 האחרון שנוצר אסימונים.זה מונע פריטים אודיו חוזרים ומשפר את יציבות התפוקה.

ביצועי ביצועים

על M2 Max, CosyVoice3 משיגה RTF של כ-0.5 - מהר יותר מאשר בזמן אמת.

שלב השלבחוסר יציבות
LLM (מעודכן)13 ms/token
DiT Flow370 - 520 מ"ס
HiFi-gan50 - 170 ms
תגית:

הגרסאות LLM (8-bit / 8 סיביות-bit-מלא) compile(shapeless: true) עבור לולאה autoregressive, אשר מבטלת recompilation overhead על פני אורך רצף משתנה. bf16 גרסאות לדלג כי להרכיב - MLX-Swift חסר צורה לא יכול להפר את צורת הפלט של הזדומולה חד-משמעית כי ברור כי ברור זה ברור כי פשוט Linear שימושים - ומנהלים את הדור לולאה בשקיקה. halved CFG halves את המספר של DiT קדימה עובר 20 ל 10 בכל הגרסאות.