Maskinoversættelse · Engelsk original

Arkitektur

Indfødt instruktion TTS

Byg native SDK støtte fra hovedkilden. Homebrew og andre præbyggede CLI udgivelser kan ikke inkludere disse motorer endnu.

Gennemførelse (PR # 541): main

Published MLX bundter: aufklarer/FireRedTTS3-Instruct-MLX-fp32 · aufklarer/MOSS-VoiceGenerator-MLX-bf16

FireRedTTS3-Instruct — FireRedTTS3TTS: FireRedTTS3-Instruct bevarer Float32 model og dekoder vægte. Det returnerer buffered audio: udelt --stream. Engelsk og kinesisk --language aliaser accepteres. En generation grænse hæver en fejl i stedet for at returnere trunkeret succes.

MOSS- VoiceGenerator — MossVoiceGeneratorTTS: MOSS- VoiceGenerator bibeholder BF16 sprogvægte og FP32 syntesecodec. Brug --stream til trinvis PCM. Omit --language og sætte sprogkrav i --instruct. Færdiggørelse dræn alle seksten kodebøger.

Hvert tekst- og instruktionsfelt er begrænset til 32,768 UTF-8 bytes. Den komplette afleverede inddataport, herunder dens skabelon, skal passe inden for 4,096 tokens. Indgange, der overskrider begge grænser, afvises.

Instruction- følgende kvalitet er uscoret. Kortscriptmålinger beskriver den testede opsætning; eksisterende-model latency certificering forbliver ukonklusivt.

Breeze TTS 2 · Breeze tTS

Engelsk / kinesisk TTS med stemme design, reference kloning og retning, og streamet audio (MLX BF16 / 8- bit, 24 kHz; forskning / ikke-kommerciel licens).

BreezeTTS · CLI · Swift API

speech speak "The quick brown fox jumps over the lazy dog." --engine breeze \
  --instruct "A clear, calm English narrator." --stream -o design.wav
  • --breeze-model-id: aufklarer/Breeze-TTS-2-MLX-8bit
  • --breeze-bundle-dir
  • --breeze-cache-limit-mib
  • --breeze-reference-text
  • --breeze-temperature: 0.9
  • --breeze-top-k: 50
  • --breeze-top-p: 1
  • --breeze-cfg-scale: 4
  • --breeze-max-frames: 750
  • --breeze-seed: 42
  • --first-chunk-frames: 3
  • --chunk-frames: 25

Indfødt Apple runtime · PocketTTS

PocketTTS tilføjer indfødt CoreML talesyntesse til speech-swift. Alle trin standard til CPU- kun udførelse. Den engelske Alba forudindstillet streams 1,920- prøvesæt på 24 kHz (80 ms per frame).

Brug af Swift og CLI

speech-swift er organiseret som en modulær Swift pakke med delte protokoller, uafhængige modelmoduler og en samlet CLI. Alle inferens kører on- device ved hjælp af MLX (Metal GPU) eller CoreML (Neural Engine).

Modul afhængighedsdiagram

                    ┌──────────┐
                    │ AudioCLI │  (entry point)
                    └────┬─────┘
                         │
                  ┌──────┴──────┐
                  │ AudioCLILib │  (commands)
                  └──────┬──────┘
                         │
       ┌─────────┬───────┼───────┬──────────┬──────────────┐
       │         │       │       │          │              │
  ┌────┴───┐ ┌──┴──┐ ┌──┴──┐ ┌─┴────┐ ┌───┴────┐ ┌──────┴───────┐
  │Qwen3ASR│ │Qwen3│ │Cosy │ │Perso-│ │Speech- │ │  Speech-     │
  │Parakeet│ │ TTS │ │Voice│ │naPlex│ │  VAD   │ │Enhancement   │
  └────┬───┘ └──┬──┘ └──┬──┘ └──┬───┘ └───┬───┘ └──────┬───────┘
       │        │       │       │         │             │
       └────────┴───────┼───────┴─────────┘             │
                        │                               │
                 ┌──────┴──────┐                        │
                 │ Qwen3Common │  (shared layers)       │
                 └──────┬──────┘                        │
                        │                               │
                 ┌──────┴──────┐                        │
                 │ AudioCommon │ ◄──────────────────────┘
                 └─────────────┘  (protocols, audio I/O)

MLX buffer cache budget

MLX model runtimes deler en standard reusable-buffer cap af min(2 GiB, physical RAM / 4) fra vægtbelastning gennem modelens levetid. Lavere kaldebudget, herunder MLX.Memory.cacheLimit = 0, og eksisterende modelspecifikke budgetter bevares. cap grænser tomgang buffere; aktive vægte, KV cache og total proces hukommelse kan overstige det. MLX trimmer på tildeling, så den sidste frigivne buffer kan midlertidigt sætte cachen over sit budget indtil næste tildeling.

unload() frigiver modellens registrering; runtimes without that method release it on destruction. Den sidste ejer genopretter opkalderens budget, mens tidligere losses bevare de resterende modellers lofter. Corem- kun stier ikke erhverve MLX registreringer.

MOSS Transcribe Diarize

MossTranscribe returnerer specter- attributed tidsstempel segmenter gennem to indfødte backends. CoreML bruger en fast 1,024-MEN MLState til korte optagelser. MLX bruger en dynamisk voksende 131,072-token sammenhæng, affin INT5/INT8 dekodervægte og valgfrie FP16/INT8 KV caches for globalt kontekstualiseret lang form transskription. Begge er offline, autoregressive runtimes snarere end streaming modeller.

VoiceChat 11B

Opgave og reference: duplex speech- to- tale; SALM- Duplex: Effektiv og direkte Duplex-modellering til tale- to- tale- sprogmodel (Intertaly 2025), citeret ved NVIDIA 's opstrømsmodel VoiceChat-kort.

Fuldstændig driftstid M5 Pro 48 GB, Release 80 ms live kadence: protected- head INT5 peak RSS er omkring 8.69 GB; tre kontrollerede helpdepipeline RTF resultater var 0.96, 0.96 og 0.99. Optimeret INT8 ydeevne er endnu ikke blevet genmålt.

VoiceChat implementerer den komplette native MLX audio- to- audio sti: causal FastConformer opfattelse, Nemotron- H duplex tekst / funktion kanaler, den standalone tekst- condition EAR- TTS dekoder med otte MaskGIT iterationer, og en 22.05 kHz neurale codec. Streaming bibeholder afgrænset per- lag opmærksomhed og causal- convolution caches, mens den stabile oight- frame live codec vindue bruger en kompileret graf. Hver 80 ms input ramme producerer en sprogvalg, 31 RVQ koder, og præcis 1,764 output prøver kræver en komplet. encoder/ + llm/ + tts/ bundt og afviser ældre forståelse-kun eksport. INT5 nu opretholder samlet RTF under 1 på den testede M5 Pro, selvom per- frame p95 headroom forbliver smal.

Inferenskomponenter

BackendHardwareModeller
MLX Metal GPU Qwen3-ASR, Qwen3-TTS, Breeze TTS 2, CosyVoice3, IndexTTS2, Qwen3.5-Chat, PersonaPlex, VoiceChat 11B, Omnilingual ASR (300M / 1B / 3B / 7B), Cohere Transcribe 2B Voxtral Mini 3B MOSS Transcribe Diarize, Pyannote, Silero VAD, WeSpeaker, SpeechBrain ECAPA LID, Nemotron 3 Diarisering FireRedTTS3-Instruct, MOSS- VoiceGenerator
CoreML CPU / GPU / Neural Engine (ANE) Qwen3-ASR encoder (hybrid) Parakeet TDT Parakeet EOU streaming, Omnilingual ASR 300M Kokoro-82M, Qwen3.5-Chat (frivilligt) sortformer-diarisering DeepFilterNet3, Silero VAD (frivilligt) WeSpeaker (frivilligt) MOSS Transcribe Diarize, SpeechBrain ECAPA LID, Nemotron 3 Diarisering
Accelerat CPU (SIMD) Den samlede værdi af de aktiver, der er stillet til rådighed som sikkerhed, skal være lig med eller højere end den værdi, der er fastsat i artikel 4, stk. 1, litra a), i forordning (EU) nr. 575 / 2013.

Model for vægt format

MLX modeller bruger safetensors format med 4- bit eller 8-bit kvantisering (gruppe størrelse 64). CoreML modeller bruger .mlmodelc kompileret format. Konvertering scripts i scripts/ konvertere fra PyTorch checkpoints.

Cohere og Voxtral også anvendelse MLX affin INT5 bundter. MLX ikke understøtter affin INT7; INT8 er den støttede mulighed for højere kvalitet.

ModelParambolerKvantificeringStørrelse på disk
Qwen3-ASR 0.6 (MLX)~ 600M4- bit / 8- bit680 MB / 1.0 GB
Qwen3-ASR 0.6 (CoreML)~ 186M (encoder)INT8~ 180 MB
Qwen3-ASR 1.7 (MLX)~ 1.7B4- bit / 8- bit2.1 GB / 3.2
Parakeet- TDT 0.6B (CoreML)~ 600MINT8500 MB
Whisper Large-v3 Turbo (CoreML)809MFP161.6 GB
MOSS Transcribe Diarize 0.9B (MLX)908.5MFP16 audio + INT5 / INT8 dekoder987,0 MiB / 1,200.1 MiB
MOSS Transcribe Diarize 0.9B (CoreML)~ 900MFP16 / INT8 block-321.7 GB / 1.2
Parakeet- EOU 120M (CoreML)~ 120MINT8~ 120 MB
Omnilingual- ASR- CTC 300M (CoreML)326MINT8312 MB
Omnilingual- ASR- CTC 300M (MLX)326M4- bit / 8- bit193 MB / 342 MB
Omnilingual- ASR- CTC 1B (MLX)1.01B4- bit / 8- bit549 MB / 1006 MB
Omnilingual- ASR- CTC 3B (MLX)~ 3B4- bit / 8- bit1.71 GB / 3.16
Omnilingual- ASR- CTC 7B (MLX)~ 7B4- bit / 8- bit3.55 GB / 6.63
Cohere Transcribe 2B (MLX)2BFP16 / INT5 / INT83.85 / 1.62, 2.25 GiB
Voxtral Mini 3B 2507 (MLX)3BFP16 / INT5 / INT88.71 / 3.77, 5.18 GiB
Qwen3-ForcedAligner 0.6 (MLX)~ 600M4- bit / 8- bit979 MB / 1,4 GB
Qwen3-ForcedAligner 0.6 (CoreML)~ 600MINT4 / INT8630 MB / 1.0 GB
Qwen3-TTS 0.6 (MLX)~ 600M4- bit / 8- bit1.7 GB / 2.4
Qwen3-TTS 1.7 (MLX)~ 1.7B4- bit / 8- bit3.2 GB / 4.8
CosyVoice3 0.5 (MLX)~ 500M4- bit LLM~ 1,2 GB
IndexTTS2 ekspanderet bundt (MLX)1.5B- klasseFP16 + hjælpemodeller~ 4,8 GB
Kokoro-82M (CoreML)82MINT8 (1 spand)~ 89 MB
Qwen3.5-Chat 0.8 (MLX)~ 800MINT4418 MB
Qwen3.5-Chat 0.8 (CoreML)~ 800MINT8981 MB
PersonaPlex 7 (MLX)~ 7B4- bit / 8- bit4.9 GB / 9.1
VoiceChat 11 (MLX)~ 11BINT5 / INT88.56 GB / 12.11
Pyannote VAD (MLX)~ 1,49Mfloat32~ 5,7 MB
Silero VAD v5~ 309Kfloat32~ 1.2 MB (MLX & CoreML)
p99 turn-1-mini5.3MFloat3222 MB (CoreML)
VAP (otoTale)5.8MFloat3239 MB (CoreML) / 40 MB (ONNX)
WeSpeaker ResNet34~ 6,6Mfloat32~ 25 MB (MLX & CoreML)
SpeechBrain ECAPA VoxLingua10721.25MFP16~40.6 MiB (MLX) / ~40.8 MiB (CoreML)
ReDimNet2-B612.3Mfloat16~ 25 MiB (CoreML)
Pyannote Community-1 (CoreML)8.35Mfloat32 + native VBx~ 32 MB
Nemotron 3 Diarisering (CoreML / MLX)100MINT8~ 100 MB pr. motor
Ssortformer (CoreML)—float16~ 50 MB
DeepFilterNet3 (CoreML)~ 2.1MFP16~ 4,2 MB
LocalVQE v1.4-AEC (CoreML + C++)200K + 2,742FP16 + FP32~ 732 KB

MLX modelinitialisering

QuantizedLinear.preQuantized opretter nuludfyldte pladsholdere til kvantiserede lineære lag indlæst fra checkpoints og undgår dermed tilfældige vægte og deres midlertidige kvantiseringsgrafer. withThrowawayRandomState holder den kasserede flydende-komma-initialisering uden for kalderens kæde af tilfældige nøgler. Sammensatte indlæsere afgrænser hver komponent: MAGNeT med T5 og EnCodec, Stable Audio 3 med T5Gemma og SAME-L samt CSM med Mimi-codec. CSMs kvantiserede indlejringer bruger stadig upstream-initialiseringen og bevarer dens kendte begrænsning i initialiseringsgrafen.

Præstationsoptimering

Lydbehandling

Alle lyd I / O bruger Float32 PCM. Intern resampling håndterer format konvertering:

ModelForventet satsFormat
Qwen3-ASR16 kHzMono Float32
Cohere Transcribe 2B16 kHzMono Float32
Voxtral Mini 3B16 kHzMono Float32
Qwen3-TTS24 kHz outputMono Float32
CosyVoice324 kHz outputMono Float32
Kokoro-82M24 kHz outputMono Float32
PersonaPlex24 kHz I / OMono Float32
Pyannote VAD16 kHzMono Float32
Silero VAD16 kHzMono Float32
WeSpeaker16 kHzMono Float32
SpeechBrain ECAPA LID16 kHzMono Float32
ReDimNet2-B616 kHzMono Float32
DeepFilterNet348 kHzMono Float32

Kildestruktur

Sources/
  AudioCommon/            Shared protocols, audio I/O, system-output capture
                          (SystemAudioTap), HuggingFace downloader,
                          SentencePieceModel (protobuf reader)
  MLXCommon/              MLX utilities: weight loading, QuantizedLinear helpers,
                          SDPA multi-head attention helper, metal budget
  Qwen3Common/            Shared model components (KV cache, RoPE, quantization)
  Qwen3ASR/               Qwen3-ASR speech-to-text
  ParakeetASR/            Parakeet TDT speech-to-text (CoreML)
  ParakeetStreamingASR/   Parakeet EOU 120M streaming dictation (CoreML)
  OmnilingualASR/         Meta wav2vec2 + CTC, 1,672 languages
                          (CoreML 300M + MLX 300M / 1B / 3B / 7B)
  CohereTranscribeASR/  Cohere Transcribe 2B speech-to-text (MLX)
  VoxtralASR/            Voxtral Mini 3B speech-to-text (MLX)
  Qwen3TTS/               Qwen3-TTS text-to-speech
  FireRedTTS3TTS/         FireRedTTS3-Instruct (MLX, Float32)
  MossVoiceGeneratorTTS/  MOSS-VoiceGenerator (MLX, BF16 + FP32)
  CosyVoiceTTS/           CosyVoice3 text-to-speech
  KokoroTTS/              Kokoro-82M text-to-speech (CoreML)
  Qwen3Chat/              Qwen3.5-0.8B on-device LLM chat (MLX + CoreML)
  PersonaPlex/            PersonaPlex speech-to-speech
  SpeechVAD/              VAD (Silero + Pyannote), diarization, speaker embeddings
  SpeechLanguageID/       Spoken language identification (SpeechBrain ECAPA, MLX + CoreML, 107 labels)
  SpeechEnhancement/      DeepFilterNet3 noise suppression (CoreML)
  SourceSeparation/       Open-Unmix HQ / UMX-L + HTDemucs (Demucs v4) music source separation (MLX, 4 stems)
  MAGNeTMusicGen/         MAGNeT text-to-music generation (MLX, 30 s @ 32 kHz, INT4/INT8)
  VoxCPM2TTS/             VoxCPM2 text-to-speech (MLX, 48 kHz, voice cloning + voice design)
  IndexTTS2TTS/           IndexTTS2 voice cloning (MLX, semantic GPT + emotion/tempo/pause control + S2Mel + BigVGAN)
  VibeVoiceTTS/           VibeVoice long-form / multi-speaker TTS (MLX, EN/ZH)
  MagpieTTS/              NVIDIA Magpie-TTS Multilingual 357M (MLX INT4/INT8,
                          9 languages, 5 baked speakers, streaming)
  MagpieTTSCoreML/        Magpie CoreML backend (4 .mlmodelc + Swift-side
                          FSQ inverse; 8 languages, batch-only; hybrid
                          with MagpieTTS for LocalTransformer + audio
                          embeddings)
  MADLADTranslation/      MADLAD-400 many-to-many translation (MLX, 400+ languages)
  GLiNER/                 GLiNER2.5-Decide classification + entity spans (MLX, INT8/FP16/FP32)
  AudioCLILib/            CLI command implementations
  AudioCLI/               CLI entry point

scripts/              Model conversion (PyTorch → MLX/CoreML), benchmarking
Tests/                Unit and integration tests
Examples/             Demo apps (PersonaPlexDemo, SpeechDemo)

GLiNER2.5-Decide: indfødte MLX klassificering og enhed spænder (INT8, FP16 eller FP32 vægte); ingen Python på inferens tid.

Clef- flash: udvikling preview af lokale tekstbeslutninger (9B, affine 4- bit MLX), med et fælles skema hoved og en separat output- embedding før.

MOSS- TTS- Nano

Streaming tale syntese og stemme kloning med CoreML, 48 kHz stereo audio og 80 ms stykker.

MossTTSNanoModel serialiserer anmodninger og skaber frisk CoreML tilstand for hver ytter. syntetisering og synthesize Stream bevare stereo; SpeechGenerationModel returnerer en mono downmix. Pass sprog: nul. Streams slutter med en tom sidste markør.

macOS 15+ / iOS 18+; fire kompilerede grafer i alt 367.6 MB. Prompt, reference og ønskede rammer deler en 1,024-række sammenhæng. Runtime afviser overløb og rejser en fejl, hvis maxFrames er nået før naturlige slut- af-tale. CPU er standard; gpu tillader CPU+GPU henrettelse. PCG64 prøver bruger NumPy- kompatible frø; backend numeriske forskelle kan stadig ændre output.

MOSS- TTS- Nano

Lokal indfødt inferens

Valgfri agentDirectory indlæser en iscenesat Gemma 4 12B Ensartet INT4 tekstmodel ved siden af E4B. Brug model: "gemma4-12b-it"for chat med indfødte værktøjer, resultat historie, og annullering. E4B forbliver til rådighed for andre anmodninger. Gemma4UnifiedChat bruger den fæstnede MLX tekst implementering og frigiver hver anmodning KV cache. Response parsing fjerner kanal delimiters fra returneret tekst. Orphoned tool- call terminatorer afvises som misdannede svar.

Den indfødte service serialiserer chat, syntese og transskription; letvægts VAD har separat stream tilstand. Gemma prefill bruger 256- token batcher, anmodning KV tilstand er frigivet, og MLX cache er begrænset til 128 MiB med en 20 GiB tildelingsgrænse.

API-oplysninger

Valgfri modelejerskab

SpeechRuntime giver delt indlæsning, annullerbar FIFO optagelse og serialiseret udførelse. Qwen3ASRRuntime vælger MLX eller fuld CoreML via eksplicitte deskriptorer; indfødte API 'er og CLI-flag forbliver tilgængelige.

Lydserveren har en udførelsestilladelse gennem hver komplet anmodning, herunder streamet output, med op til 32 anmodninger venter. ASR fejl producerer HTTP fejl eller WebSocket fejlbegivenheder; gyldige tomme udskrifter forbliver vellykket. Playback bevarer overløb prøver. Cached modeller og venter afspilning lyd stadig optager hukommelse.

Voxtral TTS

Voxtral 4B TTS 2603 kører lokalt Apple Silicon gennem Voxtral TTS-modulet: 20 forudindstillet stemmer, ni sprog, og 24 kHz mono tale.

VoxtralTTS → 26-layer LM → 3-layer acoustic transformer → 24 kHz PCM

Foretag kun stemmer; reference- audio kloning er ikke tilgængelig. Lydoutput strømme gennem SDK, CLI, WebSocket og HTTP PCM. Levere den komplette input tekst op foran. Model vægte bruge CC BY-NC 4.0.

Læs vejledningen Voxtral TTS

Fish Audio DramaCity in Italy 3

Eksperimentel indfødt MLX støtte til Drama 3 er tilgængelig gennem FishAudioDrama3ModelA 35B hybridopmærksomhed MoE rygrad, temporal audio tårn og Fish DAC codec producere 44.1 kHz mono audio. 4-bit checkpoint passerede kurveform og uafhængig ASR kontroller for text- only generation, reference kloning og CLI output på Apple M5 Pro. 8- bit og BF16 forblive uvalideret.

Standard balanced mode trim tomgang MLX buffere over 512 MiB på trin grænser. Den delte model-levetid cache cap gælder også, bevare lavere opkaldsbudgetter; hverken kontrol begrænser total proces hukommelse. --fish-drama3-memory-mode unrestricted eller memoryOptions: .unrestricted belastninger vægte ivrigt og skipper fase trimning, samtidig med at livstidshætten.

Tekst- kun generations deferers 794.4 MiB af referenceindkodningsvægte. Den første reference kodning belastninger og bevarer dem, så hold codec.safetensors tilgængelige indtil da. Præberegnede referencekoder behøver ikke encoder.

FishAudioTTS: FishAudioDrama3Model · backbone.model.* · semantic_head.* · tower.* · codec.safetensors

Bygget med Fish Audio. Bundles bevarer fællesskabstilladelsen og ANMELDELSE.

4- bit benchmark

PCM streaming er tilgængelig gennem generateStreaming, generateStream og --stream. Standard chunk indeholder 3 codec rammer, om 139 ms af lyd. Automatisk lang- tekst chunking og streamet tekst input forbliver utilgængelig.

Hvert tårn kodebook bruger 4,096 token værdier. Bufferet og streaming Fish DAC dekodning begge tang restkoder til codec 's 1.024- indgang resterende kodebøger. Returnerede kodebøger bevarer de oprindelige tårn værdier.

Ugyldige rotationsdimensioner afvises før lastmodelvægte.