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

Qwen3-TTS

ה-Apple Runtime- PocketTTS

PocketTTS מוסיף Native CoreML סינתזה דיבור ל speech-swift.כל השלבים חדלו מביצוע CPU בלבד.The English Alba presets 1,920-sample מסגרות ב 24 kHz (80 ms למסגרת).

Swift ו- CLI Use

Voxtral TTS הורדה מוקדמת

Voxtral TTS מוריד את משקל המודל, אסימייזר, תצורה וכל קבצי הקול 20 לפני תחילת השימוש הראשון. Offline טעינה דורש את החבילה המלאה, כולל כל קובץ בקובץ בקובץ ב- ZXQ 2QXZ. voice_embedding/.

Swift דרישות החבילה ודרישות החבילה

Qwen3-TTS הוא 12Hz קודק מודל שפה עם מודל Mimi קודר עבור סינתזה באיכות גבוהה טקסט-to-speech.The ברירת המחדל MLX עכשיו הדרך משתמשת 1.7בסיס B bf16 תגית: 8חבילות סיביות נשארות זמינות להורדה קטנה יותר. int4 הוא בוטל. TTS איכות.

VoxCPM2 לעומת Qwen3-TTS · השוואה ומתודולוגיה קול-קולית מלאה.

המונחים:

סינתזת דיבור עוקבת אחר צינור תלת-שלבי:

  1. Talker - 28-layer הופך ממיר טקסט קלט לתוך אסימוני קוד ראשונים ב 12.5 Hz
  2. Code Predictor - 5-layer הופך צופה שאר 15 חוברות קוד מתוך הספר הראשון מוסתר מדינות
  3. Mimi Codec Decoder - מה שממיר את כל 16 ספרי קוד אסימונים לתוך גלי אודיו 24 kHz

ארכיטקטורה

שיחה

הרמקול הוא מודל אוטומטי הליבה אשר יוצר אסימוני קודק מקלט טקסט.

Parameterערך
שכבות28
ממד נסתר1024
ראשי קווירי16
ראשי מפתח / Value8 (GQA)
MLPSwiGLU
מיקום:RoPE

קוד חיזוי

מהפך של 5layer קל משקל לוקח את המדינות הנסתרות מן הספר הראשון קוד ומנבא את 15 ספרי הקוד הנותרים באופן אוטומטי. עבור סינתזה חד-טימית, לולאת 15 הקבוצה הקבועה פועלת כגרף אחד.

Mimi Codec Decoder

Mimi decoder ממיר אסימוני קוד מבוזרים קוונטיים בחזרה לתוך אודיו:

  1. RVQ decode (16 ספרי קוד)
  2. Pre-convolution (512 עד 1024 ערוצים)
  3. Pre-transformer (1024 עד 512 צוואר בקבוק, 8 שכבות, SwiGLU + LayerScale)
  4. Upsample (2x, 2x)
  5. SeaNet decoder (8x, 5x, 4x, 3x upsample שלבים)
  6. 24 kHz waveform

מודלים

מודל מודלגודלHuggingFace
Qwen3-TTS-0.6B בסיס (8 סיביות)1.3 GBaufklarer/Qwen3-TTS-12Hz-0.6B-Base-MLX-8bit
Qwen3-TTS-1.7B בסיס (8 סיביות)2.4 GBaufklarer/Qwen3-TTS-12Hz-1.7B-Base-MLX-8bit
Qwen3-TTS-1.7B Base (bf16, ברירת מחדל)3.9 GBaufklarer/Qwen3-TTS-12Hz-1.7B-Base-MLX-bf16
Qwen3-TTS-0.6B CustomVoice (bf16)1.8 GBAufklarer / Qwen3-TTS-12Hz-0.6B-CustomVoice-MLX-bf16
Qwen3-TTS CoreML (FP16)2.1 GBaufklarer/Qwen3-TTS-CoreML

CoreML חזרה

CoreML פועל שישה מרכיבים מורכבים.מיקום Compute תלוי בחבילה שנבחרה.

  1. TextProjector - אסימונים של פרויקטים הטמיעו את החלל הנסתר המשותף
  2. codebedder - Embeds First-codebook tokens ו- Control tokens
  3. Multicode Embedd - Embeds tokens from codebooks 1-15
  4. CodeDecoder - 28-layer autoregressive Transformer with Stateless KV cache (מקסימום 256 עמדות)
  5. Multicoder - 5-layer קוד צופה עבור ספרי קוד 1-15
  6. 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
CoreML KV Cache Limit

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, -oOutput WAV נתיב קובץ
--languageשפה (default: english) Omit כדי להשתמש בדיאלקט הילידים של הדובר.
--modelמודל גרסה: base או customVoice
--speakerקול יושב הראש (requires --model customVoice)
--temperatureטמפרטורת עישון (default: 0.3)
--top-kTop-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.

קרא את Voxtral TTSמדריך