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

Magpie-TTS Multilingual

NVIDIA Magpie-TTS Multilingual 357M ב Swift על Apple Silicon - מודל רב-קודש אוטומטי של טקסט-to-speech מעל 22.05 kN-codec. תשע שפות (אנגלית, ספרדית, גרמנית, צרפתית, איטלקית, וייטנאמית, סינית מנדרינית, יפנית) עם חמש זהויות מאוישות. INT4 (247 MB) או INT8 (~411 MB) סטרימינג-ready - -120 חבות ראשונה.

מתי להגיע למאגי

Magpie הוא הבחירה הנכונה כאשר אתה צריך חבילה קטנה אחת שמדברת תשע שפות עם קול עקבי. חמשת הדוברים אפויים נשארים זהים-stable-stable ברחבי השפות - שימושי עבור עוזרים רב לשוניים, יישומי חינוך, או קריין עם קידוד. CosyVoice3, בסיס Qwen3-TTSאו VoxCPM2 במקום זאת.

ארכיטקטורה

מגי הוא 4-Bondle MLX צינורות: טקסט encoder , cross-attention decoder - Local Transformer Codebook Head , Causal HiFi-gan Audio Codec.Thepacks Share decoder Weights Between prefill and Step Access נקודות כדי להתאים את נקודות הכניסה של Fluidinference's של Fluid Inference. CoreML הפריסה.

שלב השלבמודולפרטים
1. kenisationMagpiekenizerG2P (IPA dict / byT5 Bytes / pinyin / katakana), משותף 2360-token vocab עם per-tokenizer offsets, תמיד-apped EOS EOS
2.טקסט קודרMagpieTextEncoder6 שכבות Transformer סיבתיות, d=768, k=3 conv FFN
3.Dcoder prefillמאגי-דקודר12 שכבות סיבתיות עם תשומת לב צלבית, רואה את ההקשר של 110-frame אפוי + BOS לתוך ה- KV cache.
4. Local TransformerMagpie Local Transformer1-layer Codebook AR ראש, d=256.מדגים את 8 ספרי קוד למסגרת באופן משמעותי בהתחשב הפעוט הנסתר.
5. Decoderמאגי-דקודרשלב AR למסגרת עד ה- EOS או 500-frame Cap (~23 s).
6.NanocodecMagpieNanocodeccFSQ הפוך - HiFi-gan , 22.05 kHz מונופורציה.

שפות ו G2P

כל תשע השפות עגולות דרך Qwen3-ASR ב SDK testMultilingualRoundTripכל אחד מקבל צינור מותאם:

שפהקוד קודקודG2P צינורות
אנגלית אנגליתenCMU IPA dict (125 k ערכים, ארוז)
ספרדיתesספרד IPA dict (Bredled)
גרמניה גרמניתdeגרמני IPA dict (Bredled)
צרפתית צרפתית צרפתיתfrbyT5 UTF-8 byte encoder
איטלקי איטלקי איטלקי איטלקיitbyT5 UTF-8 byte encoder
וייטנאם וייטנאמיvibyT5 UTF-8 byte encoder
הינדhiDevanagari Codepoint Lookup + האחרון-wins sub-vocab
מנדרינית סיניתzhNLTokenizer(.simplifiedChinese) מילה ,Sg + Apple .mandarinToLatin + packd pinyin , IPA dict + #N
יפן יפניתjaCFStringTokenizer kanji קורא + NFC-prened dakuten + heiban מגרשי + חלקיקים / חיתוך overrides Overrides

ה- 2360-entry vocab concatenates כל שפה תת-העתיד של שפה עם a per- Language Offset (הרשמה ב MagpieSubVocab) הטקסט-embed מוסיף שתי שורות נוספות לפני ה- Vocab עבור BOS / EOS; eos_id = 2361

יושב ראשים

המחסומים הטמיעו חמישה קונטקסטים של דוברים (110 מסגרות × 768 dim כל אחד) המשמש כקידומת של כל קוד AR.

מדד Index Indexשם CLIזהות זהות
0sofiaסופיה (default)
1ariaAria
2jasonג'ייסון
3leoליאו ליאו
4johnג'ון סטן

מודלים

משתנהדיסק דיסקRAM (load + decode)HuggingFace
INT4 (default)247 MB1.3 GBaufklarer / Magpie-TTS-Multilingual-357M-MLX-4bit
INT8411 MB1.6 GBaufklarer/Magpie-TTS-Multilingual-357M-MLX-8bit

שתי הלהקות משתמשות ב- MLX שטוח Affine קוונטיזציה (התכמת ה- ZXXQ0XZ)mlx_affine_flatגודל הקבוצה 64(ו) וגרוע מכך FP32 בזמן הטעינה - הפעלת זמן ריצה היא מדויקת לחלוטין. INT4 הוא בלתי נמנע מ INT8 עבור המודל הזה; בחר INT4 אלא אם כן יש לכם אחסון כדי לחסוך.

CLI Usage

# English, greedy decoding
speech speak "Hello, world." --engine magpie --magpie-speaker aria \
    --magpie-temperature 0 -o out.wav

# Spanish (any of the 9 languages — pick with --language)
speech speak "Hola, mundo." --engine magpie --language es \
    --magpie-speaker aria -o out.wav

# Japanese — needs stochastic decoding (greedy gets stuck on first phrase)
speech speak "こんにちは世界、これは音声合成システムです。" \
    --engine magpie --language ja --magpie-temperature 0.6 \
    --magpie-top-k 80 --seed 42 -o out.wav

# Streaming synthesis with playback
speech speak "Streaming test" --engine magpie --stream --play

# List the 5 baked speakers
speech speak --engine magpie --list-speakers

# Pre-phonemised IPA bypasses the per-language G2P
speech speak "həˈloʊ" --engine magpie --magpie-prephonemized -o out.wav

אפשרויות אפשרויות

אפשרותDefaultתיאור תיאור
--magpie-variantint4המונחים: int4 או או int8
--magpie-speakersofiaדובר בכר: sofia, aria, jason, leo, john
--magpie-temperature0.6הטמפרטורה (0= חמדנית)
--magpie-top-k80מסנן Top-k עבור דגימה
--magpie-max-frames500כובע קשה על מסגרות קודק (~23 s)
--magpie-min-frames4מסגרות מינימום לפני ה- EOS מותר
--magpie-prephonemizedבחוץטיפול בקלט כ- IPA/טלפון זרם; לדלג על כל שפה G2P
--languageenglishלקט ספרים The per- Language tokeniser tube
--streamבחוץEmit AsyncStream<AudioChunk> במקום אחד WAV
--seed—המונחים: Gumbel aampling
טיפ יפני sampling

קלט יפני ארוך יותר ממילה אחת צריך קידוד סטוצ'י (--magpie-temperature 0.6 --magpie-top-k 80 --seed 42 מראות מבחן ההתייחסות של NeMo) נתקע על הביטוי הראשון כי heiban-accent-accent heviates מן האמת.

מחיאות כפיים - לא נתמך

למאגי אין רמקולים אפסיים במודל; רק ספינת הזהות 5 אפוית בחבילה. --voice-sample, --speakerו --instruct דגלים עם טעות מעשית מצביעים על המשתמשים --magpie-speaker דגל או מנועים שתומכים בשטוט (בסיס Qwen3-TTS, CosyVoice3, VoxCPM2).

(M4 Pro)

קביעתאודיו AudioחומהRTF
Batch, INT4, חמדן, קצר2.80.880.32
בינץ', INT4, חמדן, משפט5.81.350.23
Batch, INT4, מדגם, 23 s פלט235.60.24
סטרימינג INT4, מדגם2321.60.93

שקיפות ראשונה במצב הזרמה היא סמן 120 מ"מ לאחר עומס מודל. RTF

Swift API

import MagpieTTS

let model = try await MagpieTTS.fromPretrained(variant: .int4)

// Batch synthesis (en/es/de/fr/it/vi/hi/zh — greedy works)
let audio = try model.synthesize(
    text: "Hello, world.",
    speaker: .aria,
    language: .english,
    params: MagpieTTSParams(temperature: 0, topK: 1, maxSteps: 500))

// Japanese — use stochastic sampling
let audioJA = try model.synthesize(
    text: "こんにちは世界、これは音声合成システムです。",
    speaker: .aria,
    language: .japanese,
    params: MagpieTTSParams(temperature: 0.6, topK: 80,
                              maxSteps: 300, seed: 42))

// Streaming (AsyncStream<AudioChunk>)
let stream = model.synthesizeStream(
    text: "Streaming text",
    speaker: .aria,
    language: .english,
    firstChunkFrames: 8,
    framesPerChunk: 25)
for try await chunk in stream {
    // chunk.samples is 22.05 kHz mono Float32
}

CoreML backend (--engine magpie-coreml)

לצד חבילת MLX, Magpie Ship A CoreMLAufklarer / Magpie-TTS-Multilingual-357M-CoreML-8bit342 MB INT8 .mlmodelc חבילות – text_encoder, decoder_prefill, decoder_step, nanocodec_decoder - לרוץ על ANE / GPU; a Swift-side FSQ הפוך את הקודים המדגם לתוך 32-dim Latents the Codec צורכת.

# 8 languages (no Japanese), 5 baked speakers
speech speak "Hello world." --engine magpie-coreml --magpie-speaker aria -o hi.wav
speech speak "Hola mundo." --engine magpie-coreml --language es --magpie-speaker leo -o es.wav

# --language ja auto-routes to the MLX backend (stderr note)
speech speak "こんにちは" --engine magpie-coreml --language ja -o ja.wav

Caveats vs --engine magpie:

יושב ראש ההזמנה תואם CoreML החבילה של speaker_info.json (0=John, 1=Sofia, 2=Aria, 3=Jason, 4=Leo - שונה מ MLX

הערות יישום

שלושה באגים שכדאי לדעת אם אתה קונה רב לשוני TTS:

כל שלושת התיקונים מתועדים בקו רוחב Swiftמודול.

מקור Source

רישיון רישיון רישיון