תרגום מכונה · המקור באנגלית
VibeVoice
Microsoft VibeVoice היא מודל טקסט-ל-ל-speech עבור אנגלית וסינית. TTSזה נועד ליצור דיאלוג באורך פודקאסט, קריין של ספרי אודיו, וסצנות מרובות-רמקולים במעבר יחיד - עד 90 דקות עם עד 4 קולות שונים וזהות עקבית לאורך כל הספינה: Realtime-0.5B עבור זרימה דלת-latency 1.5B איכות הדגל לטווח ארוך.
מה זה
- Long-form in one Pass - עד 90 דקות של אודיו עם קולות עקביים על פני כל התפוקה; לא יד ביד של טינה
- Multi-רמקול הדיאלוג - 4 רמקולים נפרדים בבת אחת, כל אחד מהם מותנה על ידי שפם הקולי שלו
- אנגלית + סינית - נתונים אודיו מאומן הוא EN / ZH בלבד; שפות אחרות אינן נתמכות (לkenizer מקבל אותם אבל הפלט הוא בלתי ניתן להשגה)
- 24 kHz מונו פלט Float32 PCM, Drop-in עבור
AudioCommon.WAVWriterוStreamingAudioPlayer - MIT - משקל מודל ו- Swift הם MIT; INT4 נגזרות קוונטיות מותרות
ארכיטקטורה
ארבעה מרכיבים לשיתוף פעולה מייצרים אודיו אחד 7.5 Hz מאוחר יותר בזמן:
| המונחים | תיאור תיאור |
|---|---|
| פיצול Qwen2 עמוד השדרה | 24-layer Qwen2.5 קודר (Duncoder)896 חבוי, GQA 14/2 עבור Realtime-0.5Bהמודל מתחלק: התחתון 4 שכבות יוצרות טקסט LM, העליון 20 שכבות לרוץ כמו TTS חלונות טקסט (WEB5 אסימונים בזמן) זורמים דרך שניהם; יצר דיבור מאוחרים זורם רק דרך TTS LM. |
| תגית: VAE אקוסטית tokenizer | ערימה של סטרימינג מקודמת 24 אודיו kHz עד 64-dim מאוחר יותר ב 7.5 הרץ (3200 × temporal downsample) וקודמים מאוחרנים חזרה לגלפור.שימוש הן ליצירת קול-cache והן אודיו הסופי דה קוד. |
| ראש Diffusion | קטן קטן 4ראשי התיבות של AdaLN Modulation. 20שלב DPM-Solver עם הדרכה ללא מתווך (cfg = =) 1.3 ברירת מחדל Realtime-0.5B, 1.5 עבור 1.5B). |
| תגית: EOS Classifier | Per-step binary Classifier on the TTS המדינה הנסתרת האחרונה של LM.כאשר הסתברות של סיגמאואיד עולה על 0.5, הדור מפסיק. |
שפות
כרטיסי מודל של Microsoft: Realtime-0.5B הוא אנגלי רק (הגרסה למעלה של ספינות 9 קולות לא-EN מהירות כמו exploratory; איכות אינה מובטחת) 1.5B תומך אנגלית וסינית; שפות אחרות עשויות לייצר plaus-siblesounding but Unful וכדאי להיחשב אודיו ניסיוני.
זהות קולית – שתי דרכים נפרדות
שתי הגרסאות נוקטות גישות שונות מאוד למיזוג הדוברים, ולכל נתיב יש מגבלות ששווה לדעת מראש.
Realtime-0.5B - קפיות קול שנבנו מראש
זהות הדוברת מגיעה מ- .safetensors עמוד קול המכיל את המיזוג KV caches ומצבים נסתרים עבור דובר מסוים.
מחסום Realtime-0.5B מופץ בהקצאה בלבד - Microsoft אינה שולחת את הקוד האקוסטי, כך שחצני קול לא יכולים להימנות מדיו גולמי נגד המודל הזה. Microsoft's pre-Build .pt קול צ'יפס (קרטר, דייוויס, אמה, פרנק, גרייס, מייק, שמואל לאנגלית, בתוספת בירור דה/פרי/זי/קרי/שיר/נד/פל/קולות), השתמטו לקולות. .safetensors הפריסה הזו מצפה.
1.5B ארוך-form - קול משובץ מ אודיו גולמי
המחסום 1.5B Does ספינה הקוקוס האקוסי, כך שהוא יכול לשכט דובר שרירותי מ גלפורש הפניה + תמליל בנורה אחת.האנתרופולוגיה מוקצה על כל שיחת סינתזזה - אין קובץ קול-cache נפרד כדי לנהל.
speech vibevoice-encode-voice הוא שערקפני השטח CLI ליצירת קול-קוקה לא מקוונת נגד Realtime-0.5B ייכשלו במהירות עם מצביע על זרימת העבודה של 1.5B הגולמית, שכן משקל קודר אינם נוכחים במחסום 0.5B. עד ש- Microsoft אוניות אותם, זהו הנתיב היחיד מקצה לקצה עבור שיבוט דובר מותאם אישית.
מודל מודל
| Bundle | המונחים | גודל | HuggingFace |
|---|---|---|---|
| Realtime-0.5B | BF16 (מקור) | 1 GB | microsoft/VibeVoice-Realtime-0.5B |
| Realtime-0.5B INT4 | Qwen2 INT4, tokenizer + diffusion FP16 | 350 MB | aufklarer/VibeVoice-Realtime-0.5B-MLX-INT4 |
| Realtime-0.5B INT8 | Qwen2 INT8 | 570 MB | aufklarer/VibeVoice-Realtime-0.5B-MLX-INT8 |
| 1.5B ארוך-form | BF16 (מקור) | 3 GB | microsoft/VibeVoice-1.5B |
| 1.5B INT4 (ייצור) | Qwen2 INT4 + קוד זדוני | 1 GB | aufklarer/VibeVoice-1.5B-MLX-INT4 |
Quantization משתמש MLX קבוצה-wise קוונטית (32-קבוצה) Embeddings, נורמות, קונסטרוקציות אקוסטיות-טוkenizer, ואת מחלקת ה- EOS להישאר במקור שלהם dtype.
התחלה מהירה
import VibeVoiceTTS
let tts = try await VibeVoiceTTSModel.fromPretrained()
try tts.loadVoice(from: "/path/to/voice_cache/en-Mike_man.safetensors")
let pcm = try await tts.generate(text: "Hello world.")
// pcm: [Float] at 24 kHz mono
1.5B (שונה API)
1.5B יש ארכיטקטורה שונה (לאified Qwen2 LM, קודים כפולים, LM token sampling) כך שהיא אוניות כמעמד נפרד - VibeVoice15BTTSModel
let tts = try await VibeVoice15BTTSModel.fromPretrained()
let pcm = try await tts.generate(
text: "Long English script.",
referenceAudio: refSamples, // [Float] mono speech, any rate
referenceTranscript: "",
sampleRate: 24000
)
שום שפם קולי לא צריך - המודל מקודש את אודיו ההתייחסות דרך שניהם. acoustic_tokenizer (64-dim) semantic_tokenizer (128-dim, ASR-מוגבל) ו מסכם אותם בעמדות מהירות אודיו.דור פועל LM token samplinged על sampinged על <speech_diffusion> / <speech_end> טקסט - מאריך את המאוחר האקוסטי רק כאשר ה-LM פולט את אות הדיבור.
ASR-verified on M2 Max INT4 (RTFx 1.48): עבור קלט "שלום העולם, זו אחת מ-5 מיליארד גרסאות וייבקול של הטקסט של Microsoft למודל דיבור".Nemotron תיאר את הפלט כ- "שלום העולם, זו הנקודה החמישית של 5 מיליארד באמצעות גרסה קולית של מודל הדיבור המיקרו רך". כל מילת תוכן תואמת, רק תחליף אקוסטי. VibeVoice ו תגית: texas.
קולות בין הדורות
try tts.loadVoice(from: "en-Mike_man.safetensors")
let a = try await tts.generate(text: "First speaker line.")
try tts.loadVoice(from: "en-Emma_woman.safetensors")
let b = try await tts.generate(text: "Second speaker line.")
CLI C
Realtime-0.5B עם מטמון קולי של Microsoft מומר (אנגלית):
speech vibevoice "Hello world." \
--voice-cache voice_cache/en-Mike_man.safetensors \
--output hello.wav
1.5B ארוך-form עם אודיו + תמליל (כולל דובר שרירותי, אנגלית או סינית):
speech vibevoice "Long paragraph ..." \
--long-form \
--reference-audio voice.wav \
--reference-transcript "what was actually said in voice.wav" \
--max-tokens 4000 \
--output episode.wav
דגלים: --steps (DPM-Solver Steps) --cfg (צילום) --model / --tokenizer עקבו אחרי HuggingFace IDs --long-form כדי לעבור ל- 1.5B preset, --verbose לתזמון.
איסוף בין speech-swift TTS
| Kokoro-82M | Qwen3-TTS | CosyVoice3 | VibeVoice בזמן אמת | וייבקול 1.5B | |
|---|---|---|---|---|---|
| Params | 82M | 7B | 7B | 500 מיליון | 1.5B |
| חזרה | CoreML (ANE) | MLX | MLX | MLX | MLX |
| שפות | 8 | 10+ | 10+ | EN רק | תגית + ZH |
| שיבוט קול | המונחים: presets | המונחים: | תגית: Zero-shot | ראשי תיבות של Voice caches Only | Raw Audio + תמליל |
| לטווח ארוך | קצר / mdium | הזרמת הזרמתסטרימינג | הזרמת הזרמתסטרימינג | הזרמת הזרמתסטרימינג | 90 דקות / 4 |
אתה צריך רפורמות ארוכות, רב-רמקול, או פודקאסט/קולנוע באנגלית או סינית, עם זהות קולית עקבית לאורך דקות של אודיו. עבור multilingual TTS, Qwen3-TTS או או CosyVoice3 הם מתאימים יותר לביטויים קצרים של iOS, Kokoro זו האפשרות הקטנה ביותר.