Awtomatikong salin · Orihinal sa Ingles

Magpie-TTS Multilingual

NVIDIA Magpie-TTS Multilingual 357M sa loob Swift tungkol sa Apple Silicon – isang awtoregresibong multi-codebook na teksto-to-speech na modelo sa ibabaw ng NeMo's 22.05 KHz Nano-Codec. Siyam na wika (Ingles, Kastila, Aleman, Pranses, Italyano, Vietnamese, Hindi, Mandarin Intsik, Hapones) na may limang hinurnong tagapagsalita. INT4 (EX247 MB) o INT8 (Axi411 MB). Streaming-handa, i120 mis first-packet latency.

Kung kailan aabutin ang Magpie

Ang Magpie ang tamang pili kapag kailangan mo ang isang maliit na bungkos na nagsasalita ng siyam na wika na may di-nagbabagong boses.Ang limang hinurnong tagapagsalita ay nananatiling pagkakakilanlan-stable sa mga wika – kapaki-pakinabang sa mga katulong na may iba't ibang wika, mga app ng edukasyon, o audiobook relation na may code-switching. para sa sero-shot voice cloning gamit ang mga ap. CosyVoice3, Qwen3-TTS Base, o VoxCPM2 sa halip.

Arkitektura

Ang Magpie ay isang 4-bundle MLX pipeline: text reciever → cross-tension decoder → LocalTransformand codebook head → Causal HiFi-GAN audio codec. Ang mga bungkos ay nagbabahagi ng mga decoder weight sa pagitan ng prefill at step ent points upang itugma ang ranid Fluid Inference's CoreML direcle.

BagsagModule Mga Detalye
Paggising 1Magpie TonkenizerPer-wika G2P (IPA dict / byT5 bytes / pinyin / katanakna), ibinahagi ang 2360-token vocab na may per-tokenizer offsets, laging-append na EOS
2. Tagapag - ingat ng TekstoMagpieTextEncoder6 mga patong na causal Transformer, d=768, k=3 conv FFN
3. Kumpleto ang decoderMagpie Decoder12 causal layers na may cross-tension. Binhi ang 110-frame hinurno speaker konteksto + BOS sa loob ng KV cache.
4.MagpieLokalTransilyo1-layer codebook AR head, d=256. Samples ang 8 codebooks kada frame sequentially ibinigay ang decoder nakatago.
5. hakbang sa pag - aalis ng hanginMagpie Decoder Isang hakbang kada frame ng AR hanggang EOS o 500-frame cap (if23 s).
6.MagpieNanoCodecFSQ inverse → causal HiFi-GAN → 22.05 kHz mono waveform.

Mga wika at G2P

Ang lahat ng siyam na wika round-trip sa Qwen3-ASR sa SDK's testMultilingualRoundTrip. Ang bawat isa ay nakakakuha ng isang naka-angkop na tubo:

Wika KodigoG2P pipeline
TagalogenCMU IPA dict (125 kcript, bunde)
Kastilaes Kastilang IPA dict (binabaybay)
Alemande Alemang IPA dict (ihinala)
PransesfrbyT5 UTF-8 byte regulator
ItalyanoitbyT5 UTF-8 byte regulator
VietnamesevibyT5 UTF-8 byte regulator
HindihiDevanagari codepoint + huling-wins sub-vocab
Tsinong MandarinzhNLTokenizer(.simplifiedChinese) salitang seg + Apple .mandarinToLatin + nakabubnilyong pinyin → IPA ict + #N tone markers
HaponesjaCFStringTokenizer kanji na nagbabasa ng + NFC-invested dakuten + heiban pitch markers + particle/greeting surges

Ang kabahaging 2360-entry vocab concates ng bawat wika ang sub-tokeniser end-to-end na may per-wika offset (nakasulat sa MagpieSubVocab). Ang teksto-embeding ay nagdadagdag ng dalawang ekstrang hanay na lampas sa vocab para sa BOS / EOS; eos_id = 2361 ay isang appended sa bawat pagkakasunud-sunod.

Mga Mangusap na May Bakuti

Ang checkpoint embeds limang kontekstong speaker (110 frames × 768 mark bawat isa) na ginagamit bilang unlapi ng bawat AR decode.Ang speaker identity ay hindi nagbabago sa ibayo ng lahat ng siyam na wika.

Indise Pangalan ng CLI Pagkakakilanlan
0sofiaSofia (pagbagsak)
1ariaAria
2jasonSi Jason
3leoLeo
4johnJohn Van Stan

Modelong mga Variante

KaurianDiskRAM (nakakarga + decode)HuggingFace
INT4 (default)°247 MB°1.3 GB Aufklarer/Magpie-TTS-Multilingual-357M-MLX-4bit
INT8°411 MB°1.6 GB Aufklarer/Magpie-TTS-Multilingual-357M-MLX-8bit

Ang parehong mga bungkos ay gumagamit ng MLX flat affine quantiation (pagkakaiba-iba)mlx_affine_flat, grupo sukat 64) at dequantise to FP32 sa oras ng pagkarga – ang mga runtime acceptions ay ganap na prepektura. INT4 ay distansyad mula sa INT8 para sa modelong ito; pumili ng INT4 malibang may imbakan upang makakuha ng ekstra.

Paggamit ng CLI

# 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

Mga Mapagpipilian

Mapagpipilian Pagkawasak Paglalarawan
--magpie-variantint4 Kakaibang mga salita: int4 o int8
--magpie-speakersofiaBaked speaker: sofia, aria, jason, leo, john
--magpie-temperature0.6 Nakapanlulupaypay na temperatura (0 = sakim)
--magpie-top-k80Pansalang pang-itaas para sa mga halimbawa
--magpie-max-frames500hard cap sa mga balangkas ng codec (imperyo23 s)
--magpie-min-frames4 Mga balangkas ng Minimum bago pahintulutan ang EOS
--magpie-prephonemizedoffTreatment input bilang IPA / phoneme stream; dive per-wika G2P
--languageenglishPipiin ang per-wikang toliser pipeline
--streamoffEmit AsyncStream<AudioChunk> sa halip na nag-iisang WAV
--seed—Kapani - paniwalang mga Halimbawa ng Gumbel
Ang dulo ng mga halimbawang Hapones

Ang mga input na Hapones na mas mahaba kaysa sa isang salita ay nangangailangan ng stochastic decoding (--magpie-temperature 0.6 --magpie-top-k 80 --seed 42 salamin ng reperensiyang pagsubok ng NeMo).Ang kasakiman ay naiipit sa unang parirala dahil ang heiban pitch-accent heuristic ay lumilihis sa per-word na katotohanan.

Boses cloning — hindi suportado

Si Magpie ay walang zero-shot speaker conditioning sa modelo; tanging ang 5 na hinde na crew ship sa brock.Ang CLI ay itinatakwil ang pinagsasaluhan. --voice-sample, --speaker, at --instruct mga bandilang may mali na maaaring itutok sa mga gumagamit --magpie-speaker bandila o ang mga makina na sumusuporta sa cloning (mga makina na sumusuporta ritoQwen3-TTS Base, CosyVoice3, VoxCPM2).

Performance (M4 Pro)

PagtatakdaAudio PaderRTF
Batch, INT4, sakim, maikling hakbang2.8 s0.88 s0.32
Batch, INT4, sakim, na pangungusap5.8 s1.35 s0.23
Batch, INT4, sampol, 23 s output23 s5.6 s0.24
Pag - iimbak, INT4, tikman23 s21.6 s0.93

Unang-packet latency sa streaming mode ay if.120 Mga m pagkatapos ng modelong karga. RTF ay mas mataas dahil ang codec ay re-invoked sa buong code buffer sa bawat fraget emission (ang isang hinaharap na rebisyon ay maaaring magkaroon ng cache codec state).

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)

Sa tabi ng bungkos ng MLX, ang Magpie ay nagpapadala ng isang CoreML brock (build na ZXQXZ) Aufklarer/Magpie-TTS-Multilingual-357M-CoreML-8bit, EX342 MB INT8). .mlmodelc mga pakete — text_encoder, decoder_prefill, decoder_step, nanocodec_decoder – run on ANE / GPU; isang Swift-side FSQ inverse ang gumagawa sa sampol na mga code na maging 32-dim na latents ang codec na nakukunsumo.

# 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

Mga vs v sa Caveat --engine magpie:

Ang speaker ordering ay tumutugma sa CoreML brock's speaker_info.json (0=John, 1=Sofia, 2=Aria, 3=Jason, 4=Leo — iba sa MLX), at ang tagapagsalitang enum para sa mga internasyunal na mapa kaya't ang CLI para sa parehong makina.

Mga nota ng pag - iihaw

Tatlong bugs na karapat - dapat malaman kung ikaw ay nag-aanunsyo ng NeMo-style languagesword TTS:

Ang lahat ng tatlong setting ay dokumentadong nasa loob ng talaan Swift module.

Pinagmumulan

Lisensiya