สถาปัตยกรรม

TTS ตามคำสั่งแบบเนทีฟ

สร้าง SDK แบบเนทีฟจากซอร์ส main โดย Homebrew และ CLI ที่สร้างไว้ล่วงหน้าอื่นอาจยังไม่มีเอนจินเหล่านี้

การนำไปใช้ (PR #541): main

บันเดิล MLX ที่เผยแพร่แล้ว: aufklarer/FireRedTTS3-Instruct-MLX-fp32 · aufklarer/MOSS-VoiceGenerator-MLX-bf16

FireRedTTS3-Instruct — FireRedTTS3TTS: FireRedTTS3-Instruct คงน้ำหนักโมเดลและตัวถอดรหัสแบบ Float32 ส่งคืนเสียงที่บัฟเฟอร์ครบแล้ว จึงต้องไม่ใช้ --stream ส่วน --language ยอมรับชื่อภาษาอังกฤษและจีน เมื่อถึงขีดจำกัดจะเกิดข้อผิดพลาดแทนการส่งเสียงที่ตัดขาดเป็นผลสำเร็จ

MOSS-VoiceGenerator — MossVoiceGeneratorTTS: MOSS-VoiceGenerator คงน้ำหนักภาษา BF16 และโคเดกสังเคราะห์ FP32 ใช้ --stream สำหรับ PCM ทีละส่วน ไม่ต้องระบุ --language แต่ให้ใส่ภาษาใน --instruct การจบงานจะระบายข้อมูลครบทั้งสิบหกโค้ดบุ๊ก

ช่องข้อความและคำสั่งแต่ละช่องจำกัดที่ 32,768 ไบต์ UTF-8 พรอมป์ต์อินพุตทั้งหมดหลังประกอบรวมเทมเพลตต้องไม่เกิน 4,096 โทเค็น ระบบจะปฏิเสธอินพุตที่เกินขีดจำกัดใดก็ตาม

ยังไม่ได้ให้คะแนนคุณภาพการทำตามคำสั่ง ผลวัดข้อความสั้นอธิบายเฉพาะชุดทดสอบนี้ การรับรองการถดถอยด้านเวลาแฝงยังสรุปไม่ได้

Breeze TTS 2 · BreezeTTS

สังเคราะห์เสียงภาษาอังกฤษและจีน พร้อมออกแบบเสียง โคลนและกำกับเสียงจากเสียงอ้างอิง และสตรีมเสียง (MLX BF16/8-bit, 24 kHz; สำหรับการวิจัยและการใช้งานที่ไม่ใช่เชิงพาณิชย์).

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

รันไทม์แบบเนทีฟสำหรับ Apple · PocketTTS

PocketTTS เพิ่มการสังเคราะห์เสียง CoreML แบบเนทีฟให้ speech-swift ทุกขั้นตอนใช้ CPU เท่านั้นโดยค่าเริ่มต้น เสียง Alba ภาษาอังกฤษส่งเฟรมขนาด 1,920 ตัวอย่างที่ 24 kHz หรือ 80 มิลลิวินาทีต่อเฟรม

การใช้ Swift และ CLI

speech-swift จัดเป็นแพ็กเกจ Swift แบบโมดูลาร์ พร้อมโปรโตคอลที่ใช้ร่วมกัน โมดูลโมเดลที่เป็นอิสระ และ CLI แบบรวม การอนุมานทั้งหมดทำงานบนอุปกรณ์โดยใช้ MLX (GPU Metal) หรือ CoreML (Neural Engine)

กราฟการพึ่งพาของโมดูล

                    ┌──────────┐
                    │ AudioCLI │  (จุดเข้า)
                    └────┬─────┘
                         │
                  ┌──────┴──────┐
                  │ AudioCLILib │  (คำสั่ง)
                  └──────┬──────┘
                         │
       ┌─────────┬───────┼───────┬──────────┬──────────────┐
       │         │       │       │          │              │
  ┌────┴───┐ ┌──┴──┐ ┌──┴──┐ ┌─┴────┐ ┌───┴────┐ ┌──────┴───────┐
  │Qwen3ASR│ │Qwen3│ │Cosy │ │Perso-│ │Speech- │ │  Speech-     │
  │Parakeet│ │ TTS │ │Voice│ │naPlex│ │  VAD   │ │Enhancement   │
  └────┬───┘ └──┬──┘ └──┬──┘ └──┬───┘ └───┬───┘ └──────┬───────┘
       │        │       │       │         │             │
       └────────┴───────┼───────┴─────────┘             │
                        │                               │
                 ┌──────┴──────┐                        │
                 │ Qwen3Common │  (เลเยอร์ใช้ร่วมกัน)    │
                 └──────┬──────┘                        │
                        │                               │
                 ┌──────┴──────┐                        │
                 │ AudioCommon │ ◄──────────────────────┘
                 └─────────────┘  (โปรโตคอล, I/O เสียง)

งบประมาณแคชบัฟเฟอร์ MLX

โมเดล MLX ใช้ขีดจำกัดเริ่มต้นร่วมกันสำหรับบัฟเฟอร์ที่นำกลับมาใช้ได้ คือ min(2 GiB, physical RAM / 4) ตั้งแต่โหลดน้ำหนักจนสิ้นสุดอายุโมเดล โดยคงงบประมาณที่ต่ำกว่าของผู้เรียก รวมถึง MLX.Memory.cacheLimit = 0 และงบประมาณเฉพาะโมเดลเดิมไว้ ขีดจำกัดนี้ใช้กับบัฟเฟอร์ที่ไม่ได้ใช้งาน น้ำหนักที่ใช้งานอยู่ แคช KV และหน่วยความจำรวมของโปรเซสอาจเกินขีดจำกัดได้ MLX ลดแคชเมื่อจัดสรรหน่วยความจำ ดังนั้นบัฟเฟอร์ที่คืนล่าสุดอาจทำให้แคชเกินงบประมาณชั่วคราวจนกว่าจะมีการจัดสรรครั้งถัดไป

unload() คืนการลงทะเบียนของโมเดล ส่วนโมเดลที่ไม่มีเมธอดนี้จะคืนเมื่อทำลายออบเจ็กต์ เจ้าของรายสุดท้ายจะคืนงบประมาณของผู้เรียก ขณะที่การยกเลิกโหลดก่อนหน้านั้นยังคงขีดจำกัดของโมเดลที่เหลือ เส้นทางที่ใช้เฉพาะ CoreML จะไม่ลงทะเบียนงบประมาณ MLX

MOSS Transcribe Diarize

MossTranscribe ส่งคืนช่วงเวลาที่ระบุผู้พูดผ่าน backend CoreML และ MLX แบบเนทีฟ CoreML ใช้สถานะคงที่ 1,024 token สำหรับไฟล์สั้น ส่วน MLX ใช้ context แบบไดนามิก 131,072 token, น้ำหนัก decoder affine INT5/INT8 และ KV cache FP16/INT8 ที่เลือกได้ ทั้งสองเป็น runtime แบบ autoregressive ออฟไลน์ ไม่ใช่ streaming

VoiceChat 11B

งานและเอกสารอ้างอิง: duplex speech-to-speech; SALM-Duplex: Efficient and Direct Duplex Modeling for Speech-to-Speech Language Model (Interspeech 2025) ซึ่ง model card VoiceChat ต้นทางของ NVIDIA อ้างอิง

runtime ครบถ้วน, M5 Pro 48 GB, Release, จังหวะ live 80 ms: INT5 แบบ protected-head มี RSS สูงสุดประมาณ 8.69 GB; ผล whole-pipeline RTF แบบควบคุมสามครั้งคือ 0.96, 0.96 และ 0.99 ยังไม่ได้วัด performance ของ INT8 หลัง optimize ซ้ำ

VoiceChat ใช้เส้นทางเสียงสู่เสียงแบบ native MLX อย่างครบถ้วน: การรับรู้ FastConformer แบบ causal, ช่องข้อความ/ฟังก์ชัน duplex ของ Nemotron-H, EAR-TTS decoder แบบกำหนดเงื่อนไขด้วยข้อความที่แยกอิสระพร้อม MaskGIT แปดรอบ และ neural codec 22.05 kHz Streaming เก็บ cache ของ attention และ causal convolution แบบจำกัดต่อ layer ขณะที่หน้าต่าง live codec แปด frame แบบ steady ใช้ graph ที่ compile แล้ว ทุก input frame 80 ms จะสร้างการตัดสินใจภาษา รหัส RVQ 31 รหัส และ output sample 1,764 ตัวอย่างพอดี Loader ต้องใช้ bundle ที่มี encoder/ + llm/ + tts/ ครบ และปฏิเสธ export รุ่นเก่าที่มีเฉพาะความเข้าใจ INT5 รักษา average RTF ต่ำกว่า 1 บน M5 Pro ที่ทดสอบได้แล้ว แม้ per-frame p95 headroom ยังแคบ

แบ็กเอนด์การอนุมาน

แบ็กเอนด์ฮาร์ดแวร์โมเดล
MLX GPU Metal 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, Pyannote, Silero VAD, WeSpeaker, MOSS Transcribe Diarize, SpeechBrain ECAPA LID, Nemotron 3 Diarization, FireRedTTS3-Instruct, MOSS-VoiceGenerator
CoreML CPU / GPU / Neural Engine (ANE) เอ็นโคเดอร์ของ Qwen3-ASR (ไฮบริด), Parakeet TDT, Parakeet EOU streaming, Omnilingual ASR 300M, Kokoro-82M, Qwen3.5-Chat (ตัวเลือก), การแยกผู้พูด Sortformer, DeepFilterNet3, Silero VAD (ตัวเลือก), WeSpeaker (ตัวเลือก), MOSS Transcribe Diarize, SpeechBrain ECAPA LID, Nemotron 3 Diarization
Accelerate CPU (SIMD) การประมวลผลเสียงเบื้องต้น (STFT, mel, FFT), การประมวลผลสัญญาณ

รูปแบบน้ำหนักโมเดล

โมเดล MLX ใช้รูปแบบ safetensors พร้อมการควอนไทเซชัน 4-bit หรือ 8-bit (ขนาดกลุ่ม 64) โมเดล CoreML ใช้รูปแบบที่คอมไพล์แล้ว .mlmodelc สคริปต์การแปลงใน scripts/ แปลงจากเช็คพอยต์ PyTorch

Cohere และ Voxtral มีบันเดิล MLX affine INT5 ด้วย MLX ไม่รองรับ affine INT7 โดย INT8 คือตัวเลือกคุณภาพสูงกว่าที่รองรับ

โมเดลพารามิเตอร์การควอนไทเซชันขนาดบนดิสก์
Qwen3-ASR 0.6B (MLX)~600M4-bit / 8-bit680 MB / 1.0 GB
Qwen3-ASR 0.6B (CoreML)~186M (encoder)INT8~180 MB
Qwen3-ASR 1.7B (MLX)~1.7B4-bit / 8-bit2.1 GB / 3.2 GB
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 decoder987.0 MiB / 1,200.1 MiB
MOSS Transcribe Diarize 0.9B (CoreML)~900MFP16 / INT8 block-321.7 GB / 1.2 GB
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 GB
Omnilingual-ASR-CTC 7B (MLX)~7B4-bit / 8-bit3.55 GB / 6.63 GB
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.6B (MLX)~600M4-bit / 8-bit979 MB / 1.4 GB
Qwen3-ForcedAligner 0.6B (CoreML)~600MINT4 / INT8630 MB / 1.0 GB
Qwen3-TTS 0.6B (MLX)~600M4-bit / 8-bit1.7 GB / 2.4 GB
Qwen3-TTS 1.7B (MLX)~1.7B4-bit / 8-bit3.2 GB / 4.8 GB
CosyVoice3 0.5B (MLX)~500MLLM 4-bit~1.2 GB
IndexTTS2 expanded bundle (MLX)1.5B-classFP16 + auxiliary models~4.8 GB
Kokoro-82M (CoreML)82MINT8 (1 bucket)~89 MB
Qwen3.5-Chat 0.8B (MLX)~800MINT4418 MB
Qwen3.5-Chat 0.8B (CoreML)~800MINT8981 MB
PersonaPlex 7B (MLX)~7B4-bit / 8-bit4.9 GB / 9.1 GB
VoiceChat 11B (MLX)~11BINT5 / INT88.56 GB / 12.11 GB
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 (otoSpeech)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 Diarization (CoreML / MLX)100MINT8~100 MB per backend
Sortformer (CoreML)—float16~50 MB
DeepFilterNet3 (CoreML)~2.1MFP16~4.2 MB
LocalVQE v1.4-AEC (CoreML + C++)200K + 2,742FP16 + FP32~732 KB

การเริ่มต้นโมเดล MLX

QuantizedLinear.preQuantized สร้างอาร์เรย์ตัวแทนที่มีค่าเป็นศูนย์สำหรับชั้นเชิงเส้นแบบควอนไทซ์ที่โหลดน้ำหนักจากเช็กพอยต์ จึงไม่ต้องสร้างน้ำหนักสุ่มและกราฟควอนไทซ์ชั่วคราว withThrowawayRandomState แยกการเริ่มต้นแบบทศนิยมลอยตัวที่จะถูกแทนที่ออกจากสายโซ่คีย์สุ่มของผู้เรียก ตัวโหลดโมเดลแบบประกอบแยกขอบเขตของแต่ละองค์ประกอบ ได้แก่ T5 และ EnCodec ของ MAGNeT, T5Gemma และ SAME-L ของ Stable Audio 3 และโคเดก Mimi ของ CSM ส่วนเอ็มเบดดิงแบบควอนไทซ์ของ CSM ยังคงใช้ตัวเริ่มต้นจากต้นทาง จึงยังมีข้อจำกัดที่ทราบเกี่ยวกับอายุของกราฟการเริ่มต้น

การปรับปรุงประสิทธิภาพ

การประมวลผลเสียง

I/O เสียงทั้งหมดใช้ PCM Float32 การสุ่มซ้ำภายในจัดการการแปลงรูปแบบ:

โมเดลอัตราที่คาดหวังรูปแบบ
Qwen3-ASR16 kHzMono Float32
Cohere Transcribe 2B16 kHzMono Float32
Voxtral Mini 3B16 kHzMono Float32
Qwen3-TTSเอาต์พุต 24 kHzMono Float32
CosyVoice3เอาต์พุต 24 kHzMono Float32
Kokoro-82Mเอาต์พุต 24 kHzMono 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

โครงสร้างซอร์สโค้ด

Sources/
  AudioCommon/            โปรโตคอลที่ใช้ร่วมกัน, ออดิโอ I/O,
                          การจับเอาต์พุตของระบบ (SystemAudioTap),
                          ตัวดาวน์โหลด HuggingFace, SentencePieceModel
                          (ตัวอ่าน protobuf)
  MLXCommon/              ยูทิลิตี MLX: การโหลดน้ำหนัก, ตัวช่วย QuantizedLinear,
                          ตัวช่วย attention หลายหัว SDPA, งบประมาณ metal
  Qwen3Common/            องค์ประกอบโมเดลที่ใช้ร่วมกัน (แคช KV, RoPE, การควอนไทเซชัน)
  Qwen3ASR/               Qwen3-ASR การถอดเสียงเป็นข้อความ
  ParakeetASR/            Parakeet TDT การถอดเสียงเป็นข้อความ (CoreML)
  ParakeetStreamingASR/   Parakeet EOU 120M การพิมพ์ตามคำบอก streaming (CoreML)
  OmnilingualASR/         Meta wav2vec2 + CTC, 1,672 ภาษา
                          (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 การสังเคราะห์เสียงพูด
  FireRedTTS3TTS/         FireRedTTS3-Instruct (MLX, Float32)
  MossVoiceGeneratorTTS/  MOSS-VoiceGenerator (MLX, BF16 + FP32)
  CosyVoiceTTS/           CosyVoice3 การสังเคราะห์เสียงพูด
  KokoroTTS/              Kokoro-82M การสังเคราะห์เสียงพูด (CoreML)
  Qwen3Chat/              Qwen3.5-0.8B LLM chat บนอุปกรณ์ (MLX + CoreML)
  PersonaPlex/            PersonaPlex เสียงพูดเป็นเสียงพูด
  SpeechVAD/              VAD (Silero + Pyannote), การแยกผู้พูด, เอ็มเบดดิงผู้พูด
  SpeechLanguageID/       การระบุภาษาพูด (SpeechBrain ECAPA, MLX + CoreML, 107 ป้าย)
  SpeechEnhancement/      การลดเสียงรบกวน DeepFilterNet3 (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
  AudioCLI/               จุดเข้า CLI

scripts/              การแปลงโมเดล (PyTorch → MLX/CoreML), การทำเบนช์มาร์ก
Tests/                การทดสอบหน่วยและการทดสอบรวม
Examples/             แอปเดโม (PersonaPlexDemo, SpeechDemo)

GLiNER2.5-Decide: การจัดประเภทและช่วงข้อความเอนทิตีแบบเนทีฟบน MLX (น้ำหนัก INT8, FP16 หรือ FP32) ไม่ต้องใช้ Python ขณะอนุมาน

⚠ Translation out of date — English guide. The new Clef section below awaits translation.

Clef-flash: development preview of local text decisions (9B, affine 4-bit MLX), with a joint schema head and a separate output-embedding prior.

MOSS-TTS-Nano

สังเคราะห์และโคลนเสียงแบบสตรีมด้วย CoreML ให้เสียงสเตอริโอ 48 kHz เป็นช่วงละ 80 ms

MossTTSNanoModel ประมวลผลคำขอตามลำดับและสร้างสถานะ CoreML ใหม่ทุกประโยค synthesize และ synthesizeStream เก็บสเตอริโอ ส่วน SpeechGenerationModel ให้เสียงผสมโมโน ใช้ language: nil สตรีมจบด้วยตัวทำเครื่องหมายสุดท้ายที่ว่าง

ต้องใช้ macOS 15+ / iOS 18+ โมเดลคอมไพล์สี่ตัวรวม 367.6 MB พรอมป์ต์ เสียงอ้างอิง และเฟรมที่ขอใช้บริบท 1,024 แถวร่วมกัน หากเกินบริบทหรือถึง maxFrames ก่อนจบเสียงตามธรรมชาติจะเกิดข้อผิดพลาด ค่าเริ่มต้นเป็น CPU; gpu อนุญาต CPU+GPU ค่า seed ของ PCG64 เข้ากันได้กับ NumPy แต่ความต่างเชิงตัวเลขของแบ็กเอนด์อาจเปลี่ยนผลลัพธ์

MOSS-TTS-Nano

การจัดการโมเดลแบบเลือกใช้

SpeechRuntime รองรับการโหลดร่วมกัน การรับงาน FIFO ที่ยกเลิกได้ และการรันตามลำดับ Qwen3ASRRuntime เลือก MLX หรือ CoreML แบบเต็มผ่านตัวอธิบายที่ชัดเจน โดยยังใช้ API ดั้งเดิมและตัวเลือก CLI ได้

เซิร์ฟเวอร์ถือสิทธิ์รันตลอดคำขอ รวมถึงเอาต์พุตสตรีม และให้รอได้สูงสุด 32 คำขอ ความล้มเหลว ASR ส่งเป็นข้อผิดพลาด HTTP หรือเหตุการณ์ผิดพลาด WebSocket ส่วนผลถอดเสียงว่างที่ถูกต้องยังสำเร็จ การเล่นเสียงเก็บตัวอย่างที่ล้นไว้ โมเดลในแคชและเสียงรอเล่นยังใช้หน่วยความจำ

Voxtral TTS

Voxtral 4B TTS 2603 ทำงานในเครื่องบน Apple Silicon ผ่านโมดูล VoxtralTTS รองรับเสียงที่ตั้งไว้ล่วงหน้า 20 เสียง 9 ภาษา และเสียงโมโน 24 kHz

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

รองรับเฉพาะเสียงที่กำหนดไว้ล่วงหน้า ยังไม่รองรับการโคลนจากเสียงอ้างอิง SDK, CLI, WebSocket และ HTTP PCM ส่งเสียงได้ระหว่างการสร้าง ต้องส่งข้อความอินพุตทั้งหมดตั้งแต่เริ่มต้น น้ำหนักโมเดลใช้สัญญาอนุญาต CC BY-NC 4.0

อ่านคู่มือ Voxtral TTS

Fish Audio Drama 3

รองรับ Drama 3 แบบ MLX เนทีฟในขั้นทดลองผ่าน FishAudioDrama3Model โมเดล MoE ขนาด 35 พันล้านพารามิเตอร์พร้อม attention แบบผสม ตัวถอดรหัสเสียงตามเวลา และตัวแปลงสัญญาณ Fish DAC สร้างเสียงโมโน 44.1 kHz โมเดล 4 บิตผ่านการตรวจสอบรูปคลื่นและ ASR อิสระสำหรับการสร้างเสียงจากข้อความ การโคลนเสียงอ้างอิง และเอาต์พุต CLI บน Apple M5 Pro แล้ว รุ่น 8 บิตและ BF16 ยังไม่ได้รับการตรวจสอบ

โหมดเริ่มต้น balanced ล้างบัฟเฟอร์ MLX ที่ไม่ได้ใช้งานเมื่อเกิน 512 MiB ระหว่างขั้นตอน ขีดจำกัดแคชร่วมยังคงใช้ตลอดอายุโมเดลและคงงบประมาณที่ต่ำกว่าของผู้เรียกไว้ ทั้งสองอย่างไม่ใช่ขีดจำกัดหน่วยความจำรวมของโปรเซส --fish-drama3-memory-mode unrestricted หรือ memoryOptions: .unrestricted จะโหลดน้ำหนักล่วงหน้าและข้ามการล้างระหว่างขั้นตอน แต่ยังคงขีดจำกัดตลอดอายุโมเดล

การสร้างจากข้อความอย่างเดียวจะเลื่อนการโหลดน้ำหนักตัวเข้ารหัสเสียงอ้างอิง 794.4 MiB ไปจนถึงการเข้ารหัสเสียงอ้างอิงครั้งแรก จากนั้นเก็บน้ำหนักไว้ จึงต้องเก็บ codec.safetensors ให้เข้าถึงได้จนถึงตอนนั้น รหัสอ้างอิงที่คำนวณไว้แล้วไม่จำเป็นต้องใช้ตัวเข้ารหัส

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

สร้างด้วย Fish Audio ชุดโมเดลคง Community License และ NOTICE ไว้

ผลทดสอบรุ่น 4 บิต

รองรับการสตรีม PCM ผ่าน generateStreaming, generateStream และ --stream โดยปริยายแต่ละชังก์มี 3 เฟรมโคเดก หรือเสียงประมาณ 139 มิลลิวินาที ยังไม่รองรับการแบ่งข้อความยาวอัตโนมัติหรือป้อนข้อความแบบสตรีม

แต่ละโค้ดบุ๊กของทาวเวอร์ใช้ค่าโทเคน 4,096 ค่า การถอดรหัส Fish DAC ทั้งแบบบัฟเฟอร์และสตรีมจะจำกัดรหัสส่วนตกค้างให้อยู่ในช่วงโค้ดบุ๊กส่วนตกค้าง 1,024 รายการของตัวแปลงสัญญาณ โค้ดบุ๊กที่ส่งกลับยังคงค่าดั้งเดิมของทาวเวอร์ไว้

มิติการเข้ารหัสตำแหน่งแบบหมุนที่ไม่ถูกต้องจะถูกปฏิเสธก่อนโหลดน้ำหนักโมเดล