Kiến trúc
TTS thuần theo chỉ dẫn
Biên dịch SDK native từ mã nguồn main. Homebrew và các bản CLI dựng sẵn khác có thể chưa bao gồm những engine này.
Gói MLX đã công bố: aufklarer/FireRedTTS3-Instruct-MLX-fp32 · aufklarer/MOSS-VoiceGenerator-MLX-bf16
FireRedTTS3-Instruct — FireRedTTS3TTS: FireRedTTS3-Instruct giữ trọng số Float32 của mô hình và bộ giải mã. Âm thanh được trả trọn vẹn từ bộ đệm: bỏ --stream. --language chấp nhận bí danh tiếng Anh và tiếng Trung. Chạm giới hạn sẽ báo lỗi, không coi âm thanh bị cắt là thành công.
MOSS-VoiceGenerator — MossVoiceGeneratorTTS: MOSS-VoiceGenerator giữ trọng số ngôn ngữ BF16 và codec tổng hợp FP32. Dùng --stream để nhận PCM từng phần. Bỏ --language và đặt yêu cầu ngôn ngữ trong --instruct. Kết thúc sẽ xuất đủ cả mười sáu bảng mã.
Mỗi trường văn bản và chỉ dẫn được giới hạn ở 32.768 byte UTF-8. Toàn bộ prompt đầu vào sau khi dựng, gồm cả mẫu, phải nằm trong 4.096 token. Đầu vào vượt một trong hai giới hạn sẽ bị từ chối.
Chất lượng làm theo chỉ dẫn chưa được chấm điểm. Số đo văn bản ngắn chỉ mô tả cấu hình đã thử; kiểm chứng hồi quy độ trễ vẫn chưa có kết luận.
Breeze TTS 2 · BreezeTTS
TTS tiếng Anh và tiếng Trung với thiết kế giọng, nhân bản và điều khiển giọng tham chiếu, phát âm thanh trực tuyến (MLX BF16/8-bit, 24 kHz; giấy phép nghiên cứu và phi thương mại).
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
Bộ chạy gốc cho Apple · PocketTTS
PocketTTS bổ sung tổng hợp giọng nói CoreML gốc cho speech-swift. Mọi giai đoạn mặc định chỉ dùng CPU. Giọng Alba tiếng Anh phát từng khung 1.920 mẫu ở 24 kHz, tương đương 80 ms mỗi khung.
speech-swift được tổ chức như một gói Swift module hóa với các giao thức chung, các module mô hình độc lập và một CLI thống nhất. Tất cả suy luận chạy trên thiết bị bằng MLX (GPU Metal) hoặc CoreML (Neural Engine).
Đồ thị phụ thuộc module
┌──────────┐
│ AudioCLI │ (điểm vào)
└────┬─────┘
│
┌──────┴──────┐
│ AudioCLILib │ (các lệnh)
└──────┬──────┘
│
┌─────────┬───────┼───────┬──────────┬──────────────┐
│ │ │ │ │ │
┌────┴───┐ ┌──┴──┐ ┌──┴──┐ ┌─┴────┐ ┌───┴────┐ ┌──────┴───────┐
│Qwen3ASR│ │Qwen3│ │Cosy │ │Perso-│ │Speech- │ │ Speech- │
│Parakeet│ │ TTS │ │Voice│ │naPlex│ │ VAD │ │Enhancement │
└────┬───┘ └──┬──┘ └──┬──┘ └──┬───┘ └───┬───┘ └──────┬───────┘
│ │ │ │ │ │
└────────┴───────┼───────┴─────────┘ │
│ │
┌──────┴──────┐ │
│ Qwen3Common │ (lớp dùng chung) │
└──────┬──────┘ │
│ │
┌──────┴──────┐ │
│ AudioCommon │ ◄──────────────────────┘
└─────────────┘ (giao thức, I/O âm thanh)Ngân sách bộ nhớ đệm vùng đệm MLX
Các mô hình MLX dùng chung giới hạn mặc định cho vùng đệm tái sử dụng là min(2 GiB, physical RAM / 4), từ lúc tải trọng số đến hết vòng đời mô hình. Ngân sách thấp hơn của bên gọi, kể cả MLX.Memory.cacheLimit = 0, và ngân sách riêng hiện có của mô hình đều được giữ nguyên. Giới hạn này áp dụng cho vùng đệm nhàn rỗi; trọng số đang dùng, bộ nhớ đệm KV và tổng bộ nhớ tiến trình có thể vượt giới hạn. MLX thu gọn bộ nhớ đệm khi cấp phát, nên vùng đệm được giải phóng cuối cùng có thể tạm thời làm vượt ngân sách cho đến lần cấp phát tiếp theo.
unload() giải phóng đăng ký của mô hình; mô hình không có phương thức này giải phóng đăng ký khi bị hủy. Chủ sở hữu cuối cùng khôi phục ngân sách của bên gọi; các lần dỡ trước đó vẫn giữ giới hạn cho mô hình còn lại. Các đường chạy chỉ dùng CoreML không đăng ký ngân sách MLX.
MOSS Transcribe Diarize
MossTranscribe trả về các đoạn có người nói và mốc thời gian qua backend CoreML và MLX gốc. CoreML dùng trạng thái cố định 1.024 token cho bản ghi ngắn. MLX dùng ngữ cảnh động 131.072 token, trọng số decoder affine INT5/INT8 và bộ đệm KV FP16/INT8 tùy chọn. Cả hai đều là runtime tự hồi quy ngoại tuyến, không streaming.
VoiceChat 11B
Tác vụ và tài liệu: speech-to-speech duplex; SALM-Duplex: Efficient and Direct Duplex Modeling for Speech-to-Speech Language Model (Interspeech 2025), được model card VoiceChat upstream của NVIDIA trích dẫn.
Runtime đầy đủ, M5 Pro 48 GB, Release, nhịp live 80 ms: INT5 với head được bảo vệ có RSS đỉnh khoảng 8.69 GB; ba kết quả RTF toàn pipeline có kiểm soát là 0.96, 0.96 và 0.99. Hiệu năng INT8 sau tối ưu chưa được đo lại.
VoiceChat triển khai đường âm thanh-sang-âm thanh MLX native hoàn chỉnh: nhận thức FastConformer nhân quả, kênh văn bản/chức năng duplex Nemotron-H, decoder EAR-TTS độc lập điều kiện theo văn bản với tám vòng MaskGIT và neural codec 22,05 kHz. Streaming giữ cache attention và tích chập nhân quả giới hạn theo từng layer, còn cửa sổ codec live tám frame ổn định dùng graph đã compile. Mỗi frame đầu vào 80 ms tạo một quyết định ngôn ngữ, 31 mã RVQ và đúng 1.764 mẫu đầu ra. Loader yêu cầu bundle đầy đủ encoder/ + llm/ + tts/ và từ chối export cũ chỉ có phần hiểu. INT5 hiện duy trì RTF trung bình dưới 1 trên M5 Pro đã thử nghiệm, dù dư địa p95 theo frame vẫn hẹp.
Backend suy luận
| Backend | Phần cứng | Mô hình |
|---|---|---|
| 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) | Encoder của Qwen3-ASR (hybrid), Parakeet TDT, Parakeet EOU streaming, Omnilingual ASR 300M, Kokoro-82M, Qwen3.5-Chat (tùy chọn), phân tách người nói Sortformer, DeepFilterNet3, Silero VAD (tùy chọn), WeSpeaker (tùy chọn), MOSS Transcribe Diarize, SpeechBrain ECAPA LID, Nemotron 3 Diarization |
| Accelerate | CPU (SIMD) | Tiền xử lý âm thanh (STFT, mel, FFT), xử lý tín hiệu |
Định dạng trọng số mô hình
Các mô hình MLX dùng định dạng safetensors với lượng tử hóa 4-bit hoặc 8-bit (kích thước nhóm 64). Các mô hình CoreML dùng định dạng đã biên dịch .mlmodelc. Các script chuyển đổi trong scripts/ chuyển đổi từ checkpoint PyTorch.
Cohere và Voxtral cũng có gói MLX INT5 affine. MLX không hỗ trợ INT7 affine; INT8 là lựa chọn chất lượng cao hơn được hỗ trợ.
| Mô hình | Tham số | Lượng tử hóa | Kích thước trên đĩa |
|---|---|---|---|
| Qwen3-ASR 0.6B (MLX) | ~600M | 4-bit / 8-bit | 680 MB / 1.0 GB |
| Qwen3-ASR 0.6B (CoreML) | ~186M (encoder) | INT8 | ~180 MB |
| Qwen3-ASR 1.7B (MLX) | ~1.7B | 4-bit / 8-bit | 2.1 GB / 3.2 GB |
| Parakeet-TDT 0.6B (CoreML) | ~600M | INT8 | 500 MB |
| Whisper Large-v3 Turbo (CoreML) | 809M | FP16 | 1.6 GB |
| MOSS Transcribe Diarize 0.9B (MLX) | 908.5M | FP16 audio + INT5 / INT8 decoder | 987.0 MiB / 1,200.1 MiB |
| MOSS Transcribe Diarize 0.9B (CoreML) | ~900M | FP16 / INT8 block-32 | 1.7 GB / 1.2 GB |
| Parakeet-EOU 120M (CoreML) | ~120M | INT8 | ~120 MB |
| Omnilingual-ASR-CTC 300M (CoreML) | 326M | INT8 | 312 MB |
| Omnilingual-ASR-CTC 300M (MLX) | 326M | 4-bit / 8-bit | 193 MB / 342 MB |
| Omnilingual-ASR-CTC 1B (MLX) | 1.01B | 4-bit / 8-bit | 549 MB / 1006 MB |
| Omnilingual-ASR-CTC 3B (MLX) | ~3B | 4-bit / 8-bit | 1.71 GB / 3.16 GB |
| Omnilingual-ASR-CTC 7B (MLX) | ~7B | 4-bit / 8-bit | 3.55 GB / 6.63 GB |
| Cohere Transcribe 2B (MLX) | 2B | FP16 / INT5 / INT8 | 3.85 / 1.62 / 2.25 GiB |
| Voxtral Mini 3B 2507 (MLX) | 3B | FP16 / INT5 / INT8 | 8.71 / 3.77 / 5.18 GiB |
| Qwen3-ForcedAligner 0.6B (MLX) | ~600M | 4-bit / 8-bit | 979 MB / 1.4 GB |
| Qwen3-ForcedAligner 0.6B (CoreML) | ~600M | INT4 / INT8 | 630 MB / 1.0 GB |
| Qwen3-TTS 0.6B (MLX) | ~600M | 4-bit / 8-bit | 1.7 GB / 2.4 GB |
| Qwen3-TTS 1.7B (MLX) | ~1.7B | 4-bit / 8-bit | 3.2 GB / 4.8 GB |
| CosyVoice3 0.5B (MLX) | ~500M | LLM 4-bit | ~1.2 GB |
| IndexTTS2 expanded bundle (MLX) | 1.5B-class | FP16 + auxiliary models | ~4.8 GB |
| Kokoro-82M (CoreML) | 82M | INT8 (1 bucket) | ~89 MB |
| Qwen3.5-Chat 0.8B (MLX) | ~800M | INT4 | 418 MB |
| Qwen3.5-Chat 0.8B (CoreML) | ~800M | INT8 | 981 MB |
| PersonaPlex 7B (MLX) | ~7B | 4-bit / 8-bit | 4.9 GB / 9.1 GB |
| VoiceChat 11B (MLX) | ~11B | INT5 / INT8 | 8.56 GB / 12.11 GB |
| Pyannote VAD (MLX) | ~1.49M | float32 | ~5.7 MB |
| Silero VAD v5 | ~309K | float32 | ~1.2 MB (MLX và CoreML) |
| p99 turn-1-mini | 5.3M | Float32 | 22 MB (CoreML) |
| VAP (otoSpeech) | 5.8M | Float32 | 39 MB (CoreML) / 40 MB (ONNX) |
| WeSpeaker ResNet34 | ~6.6M | float32 | ~25 MB (MLX và CoreML) |
| SpeechBrain ECAPA VoxLingua107 | 21.25M | FP16 | ~40.6 MiB (MLX) / ~40.8 MiB (CoreML) |
| ReDimNet2-B6 | 12.3M | float16 | ~25 MiB (CoreML) |
| Pyannote Community-1 (CoreML) | 8.35M | float32 + native VBx | ~32 MB |
| Nemotron 3 Diarization (CoreML / MLX) | 100M | INT8 | ~100 MB per backend |
| Sortformer (CoreML) | — | float16 | ~50 MB |
| DeepFilterNet3 (CoreML) | ~2.1M | FP16 | ~4.2 MB |
| LocalVQE v1.4-AEC (CoreML + C++) | 200K + 2.742 | FP16 + FP32 | ~732 KB |
Khởi tạo mô hình MLX
QuantizedLinear.preQuantized tạo các mảng giữ chỗ bằng không cho lớp tuyến tính lượng tử hóa được nạp từ checkpoint, tránh tạo trọng số ngẫu nhiên và đồ thị lượng tử hóa tạm thời. withThrowawayRandomState tách phần khởi tạo dấu phẩy động sẽ bị loại bỏ khỏi chuỗi khóa ngẫu nhiên của bên gọi. Bộ nạp mô hình tổng hợp cô lập từng thành phần: T5 và EnCodec của MAGNeT, T5Gemma và SAME-L của Stable Audio 3, cùng bộ mã hóa/giải mã Mimi của CSM. Các embedding lượng tử hóa của CSM vẫn dùng hàm khởi tạo từ thư viện gốc và vẫn có giới hạn đã biết về vòng đời đồ thị khởi tạo.
Tối ưu hóa hiệu năng
- MLX compile() — Hợp nhất kernel cho các vòng lặp tự hồi quy. Talker dùng
compile(shapeless: true), Code Predictor dùngcompile(shapeless: false)với kích thước cache cố định. - Thư viện shader Metal — metallib biên dịch sẵn tránh chi phí biên dịch JIT ~5x. Được xây dựng qua
scripts/build_mlx_metallib.sh. - Giải mã codec theo chunk — Decoder TTS xử lý giọng nói trong các chunk 25 frame với chồng lấp ngữ cảnh 10 frame để tránh timeout GPU.
- CFG nhân đôi batch — DiT của CosyVoice3 giảm một nửa số lần flow matching bằng cách gộp conditional + unconditional vào cùng batch.
- RoPE hợp nhất — Dùng
MLXNN.RoPEđược hỗ trợ bởi kernel Metal thay vì xoay thủ công. - Hợp nhất BN — Batch normalization của WeSpeaker được hợp nhất vào trọng số Conv2d tại thời điểm chuyển đổi.
Xử lý âm thanh
Tất cả I/O âm thanh dùng PCM Float32. Việc lấy mẫu lại nội bộ xử lý chuyển đổi định dạng:
| Mô hình | Tần số mong đợi | Định dạng |
|---|---|---|
| Qwen3-ASR | 16 kHz | Mono Float32 |
| Cohere Transcribe 2B | 16 kHz | Mono Float32 |
| Voxtral Mini 3B | 16 kHz | Mono Float32 |
| Qwen3-TTS | 24 kHz đầu ra | Mono Float32 |
| CosyVoice3 | 24 kHz đầu ra | Mono Float32 |
| Kokoro-82M | 24 kHz đầu ra | Mono Float32 |
| PersonaPlex | 24 kHz I/O | Mono Float32 |
| Pyannote VAD | 16 kHz | Mono Float32 |
| Silero VAD | 16 kHz | Mono Float32 |
| WeSpeaker | 16 kHz | Mono Float32 |
| SpeechBrain ECAPA LID | 16 kHz | Mono Float32 |
| ReDimNet2-B6 | 16 kHz | Mono Float32 |
| DeepFilterNet3 | 48 kHz | Mono Float32 |
Cấu trúc mã nguồn
Sources/
AudioCommon/ Giao thức dùng chung, I/O âm thanh, thu đầu ra hệ
thống (SystemAudioTap), trình tải HuggingFace,
SentencePieceModel (bộ đọc protobuf)
MLXCommon/ Tiện ích MLX: tải trọng số, helper QuantizedLinear,
helper attention đa đầu SDPA, ngân sách metal
Qwen3Common/ Thành phần mô hình dùng chung (cache KV, RoPE, lượng tử hóa)
Qwen3ASR/ Qwen3-ASR giọng nói thành văn bản
ParakeetASR/ Parakeet TDT giọng nói thành văn bản (CoreML)
ParakeetStreamingASR/ Parakeet EOU 120M chính tả streaming (CoreML)
OmnilingualASR/ Meta wav2vec2 + CTC, 1.672 ngôn ngữ
(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 văn bản thành giọng nói
FireRedTTS3TTS/ FireRedTTS3-Instruct (MLX, Float32)
MossVoiceGeneratorTTS/ MOSS-VoiceGenerator (MLX, BF16 + FP32)
CosyVoiceTTS/ CosyVoice3 văn bản thành giọng nói
KokoroTTS/ Kokoro-82M văn bản thành giọng nói (CoreML)
Qwen3Chat/ Qwen3.5-0.8B chat LLM trên thiết bị (MLX + CoreML)
PersonaPlex/ PersonaPlex giọng nói thành giọng nói
SpeechVAD/ VAD (Silero + Pyannote), phân tách người nói, embedding người nói
SpeechLanguageID/ Nhận dạng ngôn ngữ nói (SpeechBrain ECAPA, MLX + CoreML, 107 nhãn)
SpeechEnhancement/ Khử nhiễu 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/ Cài đặt các lệnh CLI
AudioCLI/ Điểm vào CLI
scripts/ Chuyển đổi mô hình (PyTorch → MLX/CoreML), benchmarking
Tests/ Kiểm thử đơn vị và tích hợp
Examples/ Ứng dụng demo (PersonaPlexDemo, SpeechDemo)GLiNER2.5-Decide: phân loại và đoạn thực thể gốc trên MLX (trọng số INT8, FP16 hoặc FP32); không cần Python khi suy luận.
⚠ 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
Tổng hợp và nhân bản giọng nói qua CoreML, âm thanh stereo 48 kHz và khối 80 ms.
MossTTSNanoModel xử lý yêu cầu tuần tự và tạo trạng thái CoreML mới cho mỗi câu. synthesize và synthesizeStream giữ stereo; SpeechGenerationModel trả về bản trộn mono. Truyền language: nil. Luồng kết thúc bằng dấu cuối rỗng.
Cần macOS 15+ / iOS 18+; bốn mô hình biên dịch tổng cộng 367,6 MB. Prompt, tham chiếu và số khung yêu cầu dùng chung ngữ cảnh 1.024 hàng. Vượt ngữ cảnh hoặc đạt maxFrames trước khi kết thúc tự nhiên sẽ gây lỗi. CPU mặc định; gpu cho phép CPU+GPU. Hạt giống PCG64 tương thích NumPy; sai khác số học giữa các bộ xử lý vẫn có thể đổi đầu ra.
Quản lý mô hình tùy chọn
SpeechRuntime cung cấp tải dùng chung, tiếp nhận FIFO có thể hủy và thực thi tuần tự. Qwen3ASRRuntime chọn MLX hoặc CoreML đầy đủ bằng bộ mô tả rõ ràng; API gốc và cờ CLI vẫn được hỗ trợ.
Máy chủ giữ một quyền thực thi trong toàn bộ yêu cầu, kể cả đầu ra truyền trực tiếp, với tối đa 32 yêu cầu chờ. Lỗi ASR tạo lỗi HTTP hoặc sự kiện lỗi WebSocket; bản chép lời rỗng hợp lệ vẫn thành công. Phát lại giữ các mẫu dư. Mô hình lưu đệm và âm thanh đang chờ vẫn chiếm bộ nhớ.
Voxtral TTS
Voxtral 4B TTS 2603 chạy cục bộ trên Apple Silicon qua mô-đun VoxtralTTS: 20 giọng cài sẵn, chín ngôn ngữ và âm thanh đơn kênh 24 kHz.
VoxtralTTS → 26-layer LM → 3-layer acoustic transformer → 24 kHz PCMChỉ hỗ trợ giọng có sẵn; chưa hỗ trợ nhân bản từ âm thanh tham chiếu. SDK, CLI, WebSocket và HTTP PCM xuất âm thanh trong khi tạo. Phải cung cấp toàn bộ văn bản đầu vào ngay từ đầu. Trọng số mô hình dùng giấy phép CC BY-NC 4.0.
Fish Audio Drama 3
Hỗ trợ MLX gốc ở mức thử nghiệm cho Drama 3 có qua FishAudioDrama3Model. MoE 35 tỷ tham số với cơ chế chú ý lai, bộ giải mã âm thanh theo thời gian và codec Fish DAC tạo âm thanh mono 44,1 kHz. Bản 4 bit đã vượt qua kiểm tra dạng sóng và ASR độc lập cho tạo giọng từ văn bản, nhân bản giọng tham chiếu và đầu ra CLI trên Apple M5 Pro. Các bản 8 bit và BF16 vẫn chưa được kiểm chứng.
Chế độ mặc định balanced giải phóng vùng đệm MLX nhàn rỗi trên 512 MiB tại ranh giới các giai đoạn. Giới hạn bộ nhớ đệm chung cũng áp dụng trong suốt vòng đời mô hình, giữ nguyên ngân sách thấp hơn của bên gọi; cả hai đều không giới hạn tổng bộ nhớ tiến trình. --fish-drama3-memory-mode unrestricted hoặc memoryOptions: .unrestricted tải trước trọng số và bỏ qua dọn dẹp giữa các giai đoạn, nhưng vẫn giữ giới hạn vòng đời.
Tạo tiếng nói chỉ từ văn bản trì hoãn nạp 794.4 MiB trọng số bộ mã hóa tham chiếu. Lần mã hóa tham chiếu đầu tiên nạp và giữ chúng; hãy giữ codec.safetensors khả dụng đến lúc đó. Mã tham chiếu tính sẵn không cần bộ mã hóa.
FishAudioTTS: FishAudioDrama3Model · backbone.model.* · semantic_head.* · tower.* · codec.safetensors
Được xây dựng với Fish Audio. Các gói giữ lại Community License và NOTICE.
Có thể truyền PCM qua generateStreaming, generateStream và --stream. Mỗi khối mặc định gồm 3 khung codec, khoảng 139 ms âm thanh. Chưa hỗ trợ tự chia văn bản dài hoặc đầu vào văn bản dạng luồng.
Mỗi bảng mã của tháp âm thanh sử dụng 4.096 giá trị token. Cả giải mã Fish DAC theo bộ đệm và theo luồng đều giới hạn mã phần dư trong phạm vi bảng mã phần dư 1.024 mục của bộ mã hóa. Các bảng mã trả về giữ nguyên giá trị gốc của tháp.
Các chiều mã hóa vị trí xoay không hợp lệ bị từ chối trước khi tải trọng số mô hình.