תרגום מכונה · המקור באנגלית
Qwen3-TTS
ה-Apple Runtime- PocketTTS
PocketTTS מוסיף Native CoreML סינתזה דיבור ל speech-swift.כל השלבים חדלו מביצוע CPU בלבד.The English Alba presets 1,920-sample מסגרות ב 24 kHz (80 ms למסגרת).
Voxtral TTS הורדה מוקדמת
Voxtral TTS מוריד את משקל המודל, אסימייזר, תצורה וכל קבצי הקול 20 לפני תחילת השימוש הראשון. Offline טעינה דורש את החבילה המלאה, כולל כל קובץ בקובץ בקובץ ב- ZXQ 2QXZ. voice_embedding/.
Qwen3-TTS הוא 12Hz קודק מודל שפה עם מודל Mimi קודר עבור סינתזה באיכות גבוהה טקסט-to-speech.The ברירת המחדל MLX עכשיו הדרך משתמשת 1.7בסיס B bf16 תגית: 8חבילות סיביות נשארות זמינות להורדה קטנה יותר. int4 הוא בוטל. TTS איכות.
VoxCPM2 לעומת Qwen3-TTS · השוואה ומתודולוגיה קול-קולית מלאה.
המונחים:
סינתזת דיבור עוקבת אחר צינור תלת-שלבי:
- Talker - 28-layer הופך ממיר טקסט קלט לתוך אסימוני קוד ראשונים ב 12.5 Hz
- Code Predictor - 5-layer הופך צופה שאר 15 חוברות קוד מתוך הספר הראשון מוסתר מדינות
- Mimi Codec Decoder - מה שממיר את כל 16 ספרי קוד אסימונים לתוך גלי אודיו 24 kHz
ארכיטקטורה
שיחה
הרמקול הוא מודל אוטומטי הליבה אשר יוצר אסימוני קודק מקלט טקסט.
| Parameter | ערך |
|---|---|
| שכבות | 28 |
| ממד נסתר | 1024 |
| ראשי קווירי | 16 |
| ראשי מפתח / Value | 8 (GQA) |
| MLP | SwiGLU |
| מיקום: | RoPE |
קוד חיזוי
מהפך של 5layer קל משקל לוקח את המדינות הנסתרות מן הספר הראשון קוד ומנבא את 15 ספרי הקוד הנותרים באופן אוטומטי. עבור סינתזה חד-טימית, לולאת 15 הקבוצה הקבועה פועלת כגרף אחד.
Mimi Codec Decoder
Mimi decoder ממיר אסימוני קוד מבוזרים קוונטיים בחזרה לתוך אודיו:
- RVQ decode (16 ספרי קוד)
- Pre-convolution (512 עד 1024 ערוצים)
- Pre-transformer (1024 עד 512 צוואר בקבוק, 8 שכבות, SwiGLU + LayerScale)
- Upsample (2x, 2x)
- SeaNet decoder (8x, 5x, 4x, 3x upsample שלבים)
- 24 kHz waveform
מודלים
| מודל מודל | גודל | HuggingFace |
|---|---|---|
| Qwen3-TTS-0.6B בסיס (8 סיביות) | 1.3 GB | aufklarer/Qwen3-TTS-12Hz-0.6B-Base-MLX-8bit |
| Qwen3-TTS-1.7B בסיס (8 סיביות) | 2.4 GB | aufklarer/Qwen3-TTS-12Hz-1.7B-Base-MLX-8bit |
| Qwen3-TTS-1.7B Base (bf16, ברירת מחדל) | 3.9 GB | aufklarer/Qwen3-TTS-12Hz-1.7B-Base-MLX-bf16 |
| Qwen3-TTS-0.6B CustomVoice (bf16) | 1.8 GB | Aufklarer / Qwen3-TTS-12Hz-0.6B-CustomVoice-MLX-bf16 |
| Qwen3-TTS CoreML (FP16) | 2.1 GB | aufklarer/Qwen3-TTS-CoreML |
CoreML חזרה
CoreML פועל שישה מרכיבים מורכבים.מיקום Compute תלוי בחבילה שנבחרה.
- TextProjector - אסימונים של פרויקטים הטמיעו את החלל הנסתר המשותף
- codebedder - Embeds First-codebook tokens ו- Control tokens
- Multicode Embedd - Embeds tokens from codebooks 1-15
- CodeDecoder - 28-layer autoregressive Transformer with Stateless KV cache (מקסימום 256 עמדות)
- Multicoder - 5-layer קוד צופה עבור ספרי קוד 1-15
- SpeechDecoder Mimi codec decoder, ממיר 16 ספרי קוד ל 24 kHz אודיו
# CoreML synthesis
.build/release/speech speak "Hello, world!" --engine coreml -o hello.wav
# CoreML uses temperature 0.8 by default (required for quality output)
.build/release/speech speak "Long text here." --engine coreml --temperature 0.9 -o out.wav
0.6B: CoreML CodeDecoder משתמש קבוע 256-position KV cache.מעברים ארוכים יותר צריך להיות מחולק משפטים בודדים. Decode אסימונים הם באופן אוטומטי להיות מתאים בתוך חריצים הנותרים caches לאחר prefill.
ניסויי 1.7B CoreML יצוא
הפעוט משתמש ב- FP32 חישוב כי FP16 אימות מחסומים כושל; cache עשרות נותרו FP16
הממיר השש-מופקד תומך בבסיס 1.7B ו- 1024-position CodeDecoder.The Talker and Speakerהטמיעו 2048 ערוצים; ה- 1024 ערוצים כולל את הקרנה המאולמנת שלו.
Swift תמיכה 0.6B / B256 ו 1.7B / B1024 חבילות; 0.6B נשאר ברירת המחדל.הניסוי 1.7חבילת B ברירת מחדל CPU דורש מוכן 2048ערוצים Float32 .npy הדוברים הטמיעו באמצעות --speaker-embeddingGPU/ANE ו- iOS אימות נותרו נפרדים.
הטמון כולל עמדות מהירות ושמיעות.לנאום דקודר יש גבול ברירת מחדל נפרד של 125 מסגרות (10 שניות); מטמון קודקודקוד גדול יותר אינו מרחיב אותו.
speech qwen3-tts-coreml "Hello world" \
--model aufklarer/Qwen3-TTS-1.7B-CoreML \
--speaker-embedding speaker-17b.npy --output hello-17b.wav
CLI Usage
יצירת דיבור מטקסט:
.build/release/speech speak "Hello, world!" --output hello.wav
אפשרויות אפשרויות
| דגל דגל דגל | תיאור תיאור |
|---|---|
--engine | מנוע TTS: qwen3 (MLX, ברירת מחדל) coreml (CoreML/GPU) cosyvoice |
--output, -o | Output WAV נתיב קובץ |
--language | שפה (default: english) Omit כדי להשתמש בדיאלקט הילידים של הדובר. |
--model | מודל גרסה: base או customVoice |
--speaker | קול יושב הראש (requires --model customVoice) |
--temperature | טמפרטורת עישון (default: 0.3) |
--top-k | Top-k samplingפרמטר |
--max-tokens | כמות מקסימלית של אסימונים לייצר (default: 500) |
--stream | הזרמת אכילה - פולטת נתחי אודיו במהלך הדור |
--first-chunk-frames | מספר מסגרות בחלק הראשון של הזרם |
--chunk-frames | מספר מסגרות ל-Switched Stock |
--batch-file | דרך לקובץ טקסט עם מבטא אחד לכל קו עבור סינתזה אצווה |
--batch-size | מספר ביטויים מקבילים במצב אצווה |
דוגמאות
# Basic synthesis
.build/release/speech speak "The quick brown fox." -o fox.wav
# Streaming output
.build/release/speech speak "Long passage of text..." --stream -o stream.wav
# Batch synthesis from file
.build/release/speech speak --batch-file sentences.txt --batch-size 4 -o output_dir/
הזרמת הזרמתסטרימינג
The The The --stream הדגל מאפשר פלט אודיו מותש במהלך הדור, במקום לחכות לכל הדיבור כדי להשלים, אודיו הוא פולט בחלקים כמו אסימונים מופקים. --first-chunk-frames ו --chunk-frames לשלוט בגודל של כל נתח.
מצב Batch Mode
עבור סינתזציות מרובות, השתמש --batch-file עם קובץ טקסט המכיל קו אחד לביטוי. --batch-size שולט כמה הצהרות רבות מעובדות במקביל.
ביצועי ביצועים
על M2 מקס, Qwen3-TTS משיג RTF (גורם בזמן אמת) של בערך 0.55, כלומר הוא יוצר דיבור מהיר יותר מאשר בזמן אמת. compile() חימום, כל צעד לוקח על 37 ms.
המרבי של ברירת המחדל הוא 500 אסימונים, אשר מייצרת כ-40 שניות של אודיו ב 12.5 הרץ.קביעת סיכונים גבוהים יותר על Metal GPU שעון כלבים, אשר יכול לגרום למערכת להתבוסס על Apple Silicon מאז GPU
שפות
Qwen3-TTS תומך סינתזת טקסט רב לשונית ל-Speech.המודל מזהה באופן אוטומטי את שפת הקלט ומייצר דיבור בהתאם.
Swift API
import Qwen3TTS
import AudioCommon
let model = try await Qwen3TTSModel.fromPretrained()
let audio = model.synthesize(text: "Hello, world!", language: "english")
try WAVWriter.write(samples: audio, sampleRate: 24000, to: URL(filePath: "hello.wav"))
חבילות מקומיות בלבד
שימוש בשימוש fromLocal כאשר האפליקציה שלך מחזיקה ברכישת מודל ואחסון.עבור את מודל TTS הראשי ומנהלי הרצאות דיבור ל-Tokenizer בנפרד.הקריאה לעולם לא פותרת מטמון או מתקשרת לרשת, וקוראת את עיקרי החבילה. config.json לפני הקצאת MLX מודולים.
let model = try Qwen3TTSModel.fromLocal(
modelDirectory: ttsDirectory,
tokenizerDirectory: speechTokenizerDirectory
)
fromLocal מחדלים .noneלכן, זה לא משנה את כל תהליך Metal רצף של יונקים. fromPretrained מחזיק את .pin(fraction: 0.9) כברירת מחדל, שני העומסים המאומנים מקבלים בנפרד tokenizerCacheDir.
אבחון
Qwen3-TTS שולח דוגמיות ואבחון מודלים ל AudioLog.modelLoading ו AudioLog.inference במקום סטפרט או סטדר. Counts, צורות, ותזמון נותרו גלויים; שפה וערכים פרטיים, וכתוב אף פעם לא מחובר.
Voxtral TTS
Voxtral 4B TTS 2603 פועל באופן מקומי על Apple Silicon דרך מודול Voxtral TTS: 20 קולות מוקדמים, תשע שפות ו-24 דיבור מונו הרץ.
speech speak "Hello, welcome to Voxtral." --engine voxtral --voxtral-voice casual_male --stream --voxtral-chunk-frames 3 -o hello.wav
speech speak --engine voxtral --list-speakers
speech speak "Bonjour." --engine voxtral --voxtral-voice fr_female --voxtral-max-frames 500 --voxtral-seed 0 -o bonjour.wavקולות מוקדמים בלבד; שיבוט הפניה-קולי אינו זמין. SDKCLI, WebSocket ו-HTTP PCM. לספק את הטקסט המלא של קלט למעלה הקדמי.מודל משקולות להשתמש CC BY-NC 4.0.