תרגום מכונה · המקור באנגלית
VoxCPM2 קול שיבוט ב Mac
הפעל VoxCPM2 באופן מקומי על Apple Silicon עם MLX כדי לשכפל קול או עיצוב אחד מתיאור טקסט.מודל OpenBMB זה מייצר 48 דיבור k ב -30 שפות. הקשב לדוגמאות, ולאחר מכן נסה את CLI עם הסימון ואת תמליל שלו.
דוגמיות אודיו · קול עם CLI · VoxCPM2 לעומת Qwen3-TTS
דוגמיות קול
קליפים אנגליים אלה באים מ- FLEURS השוואה.הפניה והוליד דיבור שימוש משפטים שונים.כל פלט הוא מדגם מייצג אחד; מדדי ההשוואה בממוצע מספר קליפים.
Reference תמליל: ניתן רק לתהות מה המקלדת תהפוך כאשר משהו חדש יותר מגיע.
טקסט שנוצר: בעודו עובד בבית החולים ליגינס החל לחקור עבודה מוקדמת במהלך תקופתו הפנויה.
טקסט שנוצר: בעודו עובד בבית החולים ליגינס החל לחקור עבודה מוקדמת במהלך תקופתו הפנויה.
קול עם CLI
הורד Reference Audio כהערה.wav. הפקודה משתמשת בתעתיק המדויק שלה; להחליף הן את הקלטת והן את תמליל בעת שימוש במדגם הקול שלך.
speech speak "Hello from the cloned voice." \
--engine voxcpm2 \
--voxcpm2-variant bf16 \
--voice-sample reference.wav \
--voxcpm2-prompt-audio reference.wav \
--voxcpm2-prompt-text "One can only wonder what the keyboard will become when something newer comes along." \
--seed 42 \
--output clone.wav
מה זה
- 48 תפוקה kHz - המנוע היחיד על-יד בערימה זו עם שיעור דגימה סטודיו.כל אחד TTS מודולים ב 24 kHz.
- קול עיצוב - שליטה בסגנון טבעי:
--voxcpm2-instruct "young female voice, warm and gentle"אף אחד מהמנועי האחרים לא חושף את זה. - Voice cloning - סינגל של טיג של 16 kHz; "להטיט גבוה" (reference אודיו + תמליל) לשימור פרוזודי.
- 30 שפות - אנגלית, סינית, אינדונזית, יפנית, קוריאנית ועוד. Auto-detected מטקסט.
- Apache 2.0 - משקל מודל יורשה upstream Openbmb רישיון; נמל Swift הוא אותו הדבר.
ארכיטקטורה
חמישה מרכיבים לשיתוף פעולה מייצרים גלפור 48 kHz:
| המונחים | תיאור תיאור |
|---|---|
| MiniCPM-4 בסיס LM | 28-layer MiniCPM-4 עם LongRoPE, GQA (16 Q / 2 KV ראשי, 128 ראש dim), ו-SwiGLU MLP. |
| Residual LM | 8-layer MiniCPM-4 גרסה ללא קידוד רוטארי. Refines את המדינה הנסתרת הבסיסית LM עבור תיקון אודיו שנוצר. |
| FSQ + Local DiT estimator | מדינות מוסתרות מפזורות מניעות 12 שכבות Diffusion Transformer (V2) הפועלות על 64-dim אודיו איחורים בכתמים של 4.CG-zero-star Euler, 10 נקודות ברירת מחדל. |
| AudioVAE V2 | פעמוני מהפכתיים קורא 16 kHz אודיו + פולט 48 kHz גלפור (3× Upsample אפוי בשנת). |
| לעצור ראש | Per-Step binary Classifier on the LM Hidden State. Argmax = 1 מסתיים דור אחרי minTokens כתמים. |
בונדלס
ה- CLI הנוכחי תומך bf16 ו int8חבילות מומרים מ- upstream openbmb/VoxCPM2. Quantization חל על מודל שפה ותחזיות דיפוזיה; אודיו נשאר במדוייק מלא.
| Bundle | המונחים | גודל | HuggingFace |
|---|---|---|---|
| bf16 | אף אחד (הקצאה) | -5.0 GB | aufklarer/VoxCPM2-MLX-bf16 |
| int8 | MLX QuantizedLinear, גודל הקבוצה 64 | - 3.0 GB | aufklarer/VoxCPM2-MLX-int8 |
ASR (Qwen3-ASR 0.6B, 8-Sentenceרת, M-series Apple Silicon):
| משתנה | WER | RTF |
|---|---|---|
| bf16 | 2.04 % | 1.38 |
| int8 | 0.00 % | 1.02 |
| int4 (retired) | 4.08 % | 0.83 |
CLI ברירת מחדל bf16; בחר int8 עבור הורדה קטנה יותר int4 הוא פרש ונראה בטבלה רק כמדידה היסטורית.
התחלה מהירה
import VoxCPM2TTS
let tts = try await VoxCPM2TTSModel.fromPretrained() // defaults to bf16
let audio = try await tts.generate(text: "Hello from VoxCPM2.", language: "english")
// audio: [Float] at 48 kHz mono
בחר את החבילה int8 במפורש:
let tts = try await VoxCPM2TTSModel.fromPretrained(
modelId: "aufklarer/VoxCPM2-MLX-int8"
)
עיצוב קול (instruction-oriented)
לעבור תיאור סגנון טבעי בשפה; תנאי המודל מסנתזות על זה ללא דגימת אודיו הפניה:
let audio = try await tts.generateVoxCPM2(
text: "Welcome to the show.",
instruct: "A young woman, gentle and warm voice."
)
שיבוט קול
סינגל יחיד של קליפ מונו מ 16 kHz:
let ref = try AudioFileLoader.load(url: URL(fileURLWithPath: "speaker.wav"),
targetSampleRate: 16000)
let audio = try await tts.generateVoxCPM2(
text: "This is a cloned voice.",
refAudio: ref
)
השיבוט האולטימטיבי - לעבור את אודיו ההתייחסות ואת תמליל ההתאמה כך LM יכול גם להיות מותנה על ההקשר האלכסוני, שמירה על פרוזודי ומבטא נאמנה יותר:
let audio = try await tts.generateVoxCPM2(
text: "Hello from the cloned voice.",
refAudio: ref,
promptText: "this is what the reference clip actually said",
promptAudio: ref
)
CLI C
speech speak "Hello there." \
--engine voxcpm2 \
--voxcpm2-variant int8 \
--output hello.wav
# Voice design
speech speak "Welcome to the show." \
--engine voxcpm2 \
--voxcpm2-instruct "A young woman, gentle and warm voice." \
--output design.wav
# Voice cloning
speech speak "This is a cloned voice." \
--engine voxcpm2 \
--voice-sample speaker.wav \
--output clone.wav
דגלים: --voxcpm2-variant {bf16,int8}, --voxcpm2-instruct, --voxcpm2-ref-audio, --voxcpm2-prompt-audio + --voxcpm2-prompt-text, --voxcpm2-cfg-value, --voxcpm2-timesteps, --voxcpm2-max-tokens, --voxcpm2-min-tokens, --seed עבור סינתזה מחודשת.
VoxCPM2 לעומת Qwen3-TTS
תוצאות באנגלית עבור 10 FLEURS הפניה / target זוגות למודל: WER ו UTMOS, Median RTFנמוך יותר WER ו RTF טוב יותר; UTMOS חיזוי טבעי ולא דירוג אנושי.התוצאות הללו אינן קובעות דירוג אוניברסלי.
| מודל מודל | WER ↓ | RTF ↓ | UTMOS ↑ |
|---|---|---|---|
| VoxCPM2 bf16 | 1.8% | 1.11 | 2.97 |
| Qwen3-TTS בסיס 1.7B bf16 ICL | 2.4% | 1.70 | 3.50 |
מלא חמש שפה קול-קול השוואת ומתודולוגיה.
איסוף בין speech-swift TTS
| Kokoro-82M | Qwen3-TTS | CosyVoice3 | VoxCPM2 | וייבקול 1.5B | |
|---|---|---|---|---|---|
| Params | 82M | 0.6 / 1.7 B | 0.5B | 2B | 1.5B |
| שיעור | 24 kHz | 24 kHz | 24 kHz | 48 kHz | 24 kHz |
| חזרה | CoreML (ANE) | MLX, CoreML | MLX | MLX | MLX |
| שפות | 10 | 10 | 9 | 30 | תגית + ZH |
| עיצוב קול | המונחים: presets | — | — | Instruction-oriented | — |
| שיבוט קול | — | המונחים: | תגית: Zero-shot | המונחים + Ultimate | Raw Audio + תמליל |
| לטווח ארוך | קצר / mdium | הזרמת הזרמתסטרימינג | הזרמת הזרמתסטרימינג | סטרימינג | עד 90 דקות |
...אתה צריך 48 kHz פלט (מוסיקה / שידור יישומים) או עיצוב קול טבעי בשפה טבעית ללא קליפ הפניה. עבור אנגלית באיכות גבוהה יחסית TTS עם הורדות קטנות יותר, CosyVoice3 או או Qwen3-TTS הם קלים יותר עבור פודקאסט / אודיו ב EN / ZH, VibeVoice 1.5B הוא נבנה בכוונה.
שימוש אחראי
שיבוט קול כלול.הסכמת הסכמה עבור כל קול שאתה מבוטא ואינו משתמש במודל לחיקוי אנשים, ליצור דיסאינפורמציה, או לבצע הונאה.ההנחיות המלאות של בטיחות מ openbmb/VoxCPM2 חלות.
אינדיאנית מקומית
VoxCPM2 תומך בהכנת משקל: .float16 למחסום לא צפוי.הפרמטרים העיקריים שלו משתמשים ב- FP16; AudioVAE וכמה חישובים נותרו FP32. INT8 נדחו עבור מצב זה.
טעינת אסימונים Explicit tokenizer משתמשת בקבצי אסימונים ממולאים מבלי לשנות אותם או צורך בדיבור נפרד.comremental decodes כבולים לחלונות סיבתיים תוך שמירה על ההקשר השמאלי של AudioVAE.
נאומו עם זרם: החזרה האמיתית של NDJSON Audio Events 48 kHz, לאחר מכן נעשה או שגיאה.תבטל על ידי בקשה ל- /v1/ Inference / Cancel. GETv1/ סודיות / נקודות ו /v1/ הערכה / שיפור דוח מודל זהויות, פרמטר dtypes, סיכות נכסים ודלפק זיכרון.