Terjemahan mesin · Versi asli bahasa Inggris

Referensi CLI

Breeze TTS 2 Breeze TS

Inggris / Cina TTS dengan desain suara, referensi kloning dan arah, dan streaming audio (MLX BF16/8-bit, 24 kHz; penelitian / non-komersial lisensi).

BreezeTTS 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: Proses opsional-luas dapat digunakan kembali anggaran cache MLX di MiB; 0 menonaktifkan cache.
  • --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

Asli Apple waktu jalan

PocketTTS menambahkan asli CoreML speech synthesis to speech-swift. Semua tahap baku ke CPU hanya eksekusi. Aliran Alba Inggris preset 1,920-sampel frame di 24 kHz (80 ms per frame).

Penggunaan Swift dan CLI

speech speak "Hello world." --engine pocket --stream \
  --pocket-bundle-dir /path/to/bundle --pocket-seed 42 -o hello.wav
# --pocket-model-id, --pocket-max-frames, --list-speakers

The speech perintah adalah titik masukan untuk pemrosesan bicara lokal.

Pasang dengan Homebrew

Pada Apple Silicon dengan macOS 15 atau yang lebih baru, instal CLI menggunakan Homebrew:

brew install speech
speech --help

Untuk memperbarui instalasi yang telah ada, jalankan brew upgrade speech.

Alternatif: bangun dari sumber

Dalam speech-swift checkout, jalankan make build, lalu gunakan .build/release/speechLihat Sedang Memulai panduan untuk prasyarat dan petunjuk pembangunan.

translate

Terjemahkan berkas audio ke teks.

speech transcribe <file> [options]
OpsiBakuDeskripsi
<file>Berkas audio untuk di-translate (WAV, M4A, MP3, CAF)
--engineqwen3Mesin ASR: qwen3, qwen3-coreml, parakeet, nemotron, omnilingual, cohere, voxtral, moss, whisper
--model, -m0.6BVarian model: 0.6B, 1.7B, atau ID model HuggingFace penuh (hanya qwen3) [whisper]: default, turbo, atau penuh CoreML HuggingFace Repo ID.
[cohere/voxtral]: INT5 (bawaan), INT8, FP16, a Hugging Face ID model, atau direktori lokal. [moss coreml]: int8 (bawaan) atau fp16; [moss mlx]: int5 (bawaan) atau int8MOSS juga menerima sebuah ID repositori Hugging Face yang kompatibel atau direktori lokal.
--max-tokensCoreML: 512
MLX: 5120
[moss] Token transkrip maksimum yang dihasilkan.
--kv-cachefp16[moss mlx] Presisi KV-cache dinamis: fp16 atau int8.
--languagePetunjuk bahasa (opsional, diabaikan oleh omnibahasa)
--window10[omnilingual] CoreML ukuran jendela dalam detik: 5 atau 10
--backendcoreml[omnilingual/moss] Backend: coreml (Neural Engine) atau mlx (Metal GPU). MOSS MLX menyediakan dinamis 131,072-token konteks; MOSS CoreML menggunakan tetap 1,024-Token negara.
--variant300M[omnilingual mlx] Ukuran: 300M, 1B, 3B, atau 7B
--bits4[omnilingual mlx] Bagian Kuantisasi: 4 atau 8
--streamAktifkan transkripsi streaming dengan VAD
--max-segment10Durasi segmen maksimum dalam detik (streaming)
--partialKeluarkan hasil parsial selama pidato (streaming)

Contoh:

# Basic transcription
speech transcribe recording.wav

# Use larger model
speech transcribe recording.wav --model 1.7B

# CoreML encoder (Neural Engine + MLX decoder)
speech transcribe recording.wav --engine qwen3-coreml

# Use Parakeet (CoreML) engine
speech transcribe recording.wav --engine parakeet

# Use Nemotron Streaming (CoreML, English with native punctuation)
speech transcribe recording.wav --engine nemotron                                 # batch
speech transcribe recording.wav --engine nemotron --stream --partial              # streaming

# Omnilingual (CoreML, 1,672 languages)
speech transcribe recording.wav --engine omnilingual                              # 10 s window
speech transcribe recording.wav --engine omnilingual --window 5                     # 5 s window

# Omnilingual (MLX, any length up to 40 s)
speech transcribe recording.wav --engine omnilingual --backend mlx                              # 300M @ 4-bit
speech transcribe recording.wav --engine omnilingual --backend mlx --variant 1B                  # 1B @ 4-bit
speech transcribe recording.wav --engine omnilingual --backend mlx --variant 3B --bits 8         # 3B @ 8-bit
speech transcribe recording.wav --engine omnilingual --backend mlx --variant 7B                  # 7B @ 4-bit

# Cohere Transcribe 2B (MLX, INT5 default)
speech transcribe recording.wav --engine cohere
speech transcribe recording.wav --engine cohere --model int8 --language de

# Voxtral Mini 3B (MLX, INT5 default)
speech transcribe recording.wav --engine voxtral
speech transcribe recording.wav --engine voxtral --model int8 --language fr

# MOSS Transcribe Diarize (CoreML short-form)
speech transcribe recording.wav --engine moss
speech transcribe recording.wav --engine moss --model fp16

# MOSS Transcribe Diarize (MLX 128K offline context; INT5 default)
speech transcribe meeting.wav --engine moss --backend mlx
speech transcribe meeting.wav --engine moss --backend mlx --model int8 --kv-cache int8

# Whisper Large-v3 Turbo (CoreML)
speech transcribe recording.wav --engine whisper
speech transcribe recording.wav --engine whisper --model turbo --language de

# Streaming with VAD
speech transcribe recording.wav --stream --partial

align

Perataan tingkat dipaksa - mendapatkan penanda waktu yang tepat untuk setiap kata.

speech align <file> [options]
OpsiBakuDeskripsi
<file>Berkas audio
--text, -tTeks yang akan dialign (jika diabaikan, transmitter pertama)
--model, -m0.6BASR model untuk transkripsi: 0.6B, 1.7B, atau ID penuh
--aligner-modelID model aligner yang dipaksakan
--languagePetunjuk bahasa

Contoh:

# Auto-transcribe then align
speech align recording.wav

# Align with known text
speech align recording.wav --text "Can you guarantee that the replacement part will be shipped tomorrow?"

bicara

SMS-to-speech sintesis.

speech speak "<text>" [options]
OpsiBakuDeskripsi
<text>Teks yang akan disintesis (opsional jika memakai --batch-file)
--engineqwen3Mesin TTS: qwen3, cosyvoice, voxcpm2, indextts2, f5, higgs, breeze, indic-mio, magpie, atau magpie-coreml, moss-nano, fireredtts3, moss-voicegenerator
--output, -ooutput.wavPath berkas keluaran WAV
--languageenglishBahasa. Abaikan untuk menggunakan logat pembicara ketika --speaker Sudah diatur.
--streamAktifkan synthesis streaming
--voice-sampleReferensi audio untuk kloning suara (bekerja dengan qwen3, cosyvoice, voxcpm2, f5, higgs, dan indextts2)
--verboseTampilkan info waktu rinci

Opsi Qwen3-TTS

OpsiBakuDeskripsi
--modelbaseVarian model: base, customVoice, atau ID model HF penuh
--speakerSuara Speaker (memerlukan --model customVoice)
--instructInstruksi gaya (model CustomVoice)
--list-speakersDaftar pembicara yang tersedia dan keluar
--temperature0.3Suhu Sampling
--top-k50Contoh Top- k
--max-tokens500Token maksimum (500 = ~ 40-an audio)
--batch-fileBerkas dengan satu teks per baris untuk batch synthesis
--batch-size4Ukuran batch Max untuk pembuatan paralel
--first-chunk-frames3Frame codec dalam potongan streamed pertama
--chunk-frames25Frame codec per potongan streamed

Opsi CosyVoice3

OpsiBakuDeskripsi
--speakersPemetaan suara untuk dialog multi- speaker: s1=alice.wav,s2=bob.wav
--cosy-instructInstruksi gaya (overrides baku). Kontrol gaya suara untuk CosyVoice3.
--turn-gap0.2Keheningan jeda antara dialog berubah dalam detik
--crossfade0.0Crossfade tumpang tindih antara belokan dalam detik
--model-idID model HuggingFace

Opsi VoxCPM2

OpsiBakuDeskripsi
--voxcpm2-variantbf16Varian kuantisasi: bf16, int8, atau int4. Dipecahkan untuk aufklarer/VoxCPM2-MLX-<variant>.
--voxcpm2-instructDeskripsi suara alfaul- bahasa (desain suara), misalnya "Seorang wanita muda, hangat dan lembut".
--voxcpm2-ref-audioReferensi berkas audio untuk kloning (16 kHz mono, resabled internal).
--voxcpm2-prompt-audio / --voxcpm2-prompt-textPasangan "Ultimate cloning" - klip referensi + transkrip untuk prosodling-preserving kloning.
--voxcpm2-cfg-value2.0Skala panduan klasik gratis untuk sampel difusi.
--voxcpm2-timesteps10Langkah pemecah Euler per patch audio yang dihasilkan.
--voxcpm2-max-tokens2000Max dihasilkan patch sebelum dipaksa berhenti.
--voxcpm2-min-tokens2Min patch sebelum berhenti kepala diizinkan untuk menembak.
--seedBenih MLX RNG sebelum sintesis (deterministik di jalankan).

Opsi IndexTTS2

IndexTTS2 adalah suara zero- tembakan - mesin kloning didukung oleh senyawa diperluas MLX. Ini membutuhkan --voice-sample dan saat ini menjalankan batch synthesis saja.

OpsiBakuDeskripsi
--indextts2-model-idaufklarer/IndexTTS2-MLX-fp16ID model HuggingFace. Default untuk aufklarer/IndexTTS2-MLX-fp16.
--indextts2-bundle-dirMuat suatu local expanded bundle daripada mengunduh dari Hugging Face.
--indextts2-emotion-audioAudio referensi emosi / gaya opsional. Default terhadap acuan speaker.
--indextts2-emotionPreset opsional atau 8-value vektor emosi. Presets dimasukan eager, happy, excited, dan calm.
--indextts2-emotion-weight1.0Skala --indextts2-emotion; tetaplah sederhana ketika identitas speaker penting.
--indextts2-speaking-rate1.0Penguatan tingkat bicara -rate 0.5 ke 1.5; nilai di atas 1.0 lebih cepat.
--indextts2-max-pausePenutup opsional untuk jeda energi internal dalam hitungan detik.
--indextts2-s2mel-steps15S2Mel langkah arus (baku 15, ear- validasi; 25 cocok dengan upstream persis)

Opsi F5-TTS

OpsiBakuDeskripsi
--f5-reference-textTranskrip referensi: isi teks --voice-sample (dibutuhkan)
--f5-steps16Langkah-langkah yang cocok dengan lantai (baku 16; 32 untuk kesetiaan maksimum)
--f5-cfg-strength2.0Kekuatan panduan khusus-bebas
--f5-sway-1.0Sway sampling koefisien
--f5-speed1.0Pengganda tingkat bicara
--f5-seed0Benih untuk keluaran deterministik
--f5-target-rms0.1Referensi target normalisasi RMS
--f5-model-idID model Hugging Face
--f5-bundle-dirMuat suatu bundle dari direktori lokal ini

Higgs TTS pilihan 3

OpsiBakuDeskripsi
--higgs-ref-textTranskrip referensi: isi teks --voice-sample (improvisasi kloning)
--higgs-temperature0.8Temperatur Sampling (baku 0.8)
--higgs-top-pAmbang sampling Nucleus (mati secara baku)
--higgs-top-kTop-k sampling cutoff (mati secara baku)
--higgs-max-new-tokens2048Maksimum frame audio yang dihasilkan (25 per detik)
--higgs-seed0Benih untuk keluaran deterministik
--higgs-model-idID model Hugging Face
--higgs-bundle-dirMuat suatu bundle dari direktori lokal ini

Opsi Magpie

NVIDIA Magpie- TTS Multibahasa 357M, 9 bahasa dengan 5 Pembicara panggang, pilih backend dengan --engine magpie (MLX, baku) atau --engine magpie-coreml (CoreML untuk model besar dengan MLX mengendarai LocalTransformer + audio penggelapan). Lihat Panduan Magpie untuk bahasa G2P yang lengkap. Kloning suara tidak didukung: --voice-sample, --speaker, dan --instruct (Di hari kiamat) dinamakan Al-Qaari 'ah karena kengerian-kengerian yang terjadi di dalamnya sangat menggentarkan kalbu. --magpie-speaker sebagai gantinya.

OpsiBakuDeskripsi
--magpie-variantint4Hanya MLX- Quantisasi: int4 (247 MB) atau int8 (411 MB). Resolves to aufklarer/Magpie-TTS-Multilingual-357M-MLX-<variant>CoreML mesin menggunakan INT8 CoreML bundle dan mengabaikan bendera ini.
--magpie-speakersofiaSpeaker panggang: sofia, aria, jason, leo, atau johnIdentitas konsisten di semua bahasa 9 dan kedua backends.
--magpie-temperature0.6Temperatur Sampling (0 = serakah). Gunakan 0.6 untuk Jepang - serakah terjebak pada frase pertama.
--magpie-top-k80Filter Top- k untuk sampling.
--magpie-max-frames500Tutup keras pada frame codec (~ 23 s).
--magpie-min-frames4Frame minimum sebelum EOS diperbolehkan.
--magpie-prephonemizedPerlakukan masukan sebagai aliran IPA / foneme; lewati bahasa G2P.
--list-speakersCetak 5 speaker panggang dan keluar.

magpie- coreml caveats: NanoCodec bundled ditelusuri pada jendela frame 64, jadi --stream ditolak. --language ja rute otomatis ke MLX backend dengan sebuah stderr catatan ( CoreML bundel belum mengirimkan aset tokenizer JA). CoreML mesin lazy- loads MLX bundel pada sintesis pertama untuk mendorong LocalTransformer dan penggelapan audio rata-rata; penyebaran Pure- CoreML dilacak sebagai berikut-up.

Contoh:

# Basic TTS
speech speak "Hello, world!" --output hello.wav

# Voice cloning (Qwen3-TTS)
speech speak "Hello in your voice" --voice-sample reference.wav -o cloned.wav

# Voice cloning (CosyVoice)
speech speak "Hello in your voice" --engine cosyvoice --voice-sample reference.wav -o cloned.wav

# Voice cloning (IndexTTS2)
speech speak "Hello in your voice" --engine indextts2 \
    --voice-sample reference.wav --indextts2-speaking-rate 1.35 \
    --indextts2-max-pause 0.05 -o indextts2.wav

# CosyVoice multilingual
speech speak "Hallo Welt" --engine cosyvoice --language german -o hallo.wav

# Multi-speaker dialogue
speech speak "[S1] Hello there! [S2] Hey, how are you?" \
    --engine cosyvoice --speakers s1=alice.wav,s2=bob.wav -o dialogue.wav

# Inline emotion/style tags
speech speak "(excited) Wow, amazing! (sad) But I have to go..." \
    --engine cosyvoice -o emotion.wav

# Combined: dialogue + emotions + voice cloning
speech speak "[S1] (happy) Great news! [S2] (surprised) Really?" \
    --engine cosyvoice --speakers s1=alice.wav,s2=bob.wav -o combined.wav

# Custom style instruction
speech speak "Hello world" --engine cosyvoice --cosy-instruct "Speak cheerfully" -o cheerful.wav

# Magpie multilingual TTS — same Aria voice across 9 languages
speech speak "Hello, world." --engine magpie --magpie-speaker aria \
    --magpie-temperature 0 -o en.wav
speech speak "Hola mundo." --engine magpie --language es --magpie-speaker aria \
    --magpie-temperature 0 -o es.wav
# Japanese needs stochastic sampling
speech speak "こんにちは世界、これは音声合成システムです。" \
    --engine magpie --language ja --magpie-temperature 0.6 \
    --magpie-top-k 80 --seed 42 -o ja.wav
speech speak --engine magpie --list-speakers

# Magpie CoreML backend (ANE-accelerated, 8 languages, no streaming)
speech speak "Hello world." --engine magpie-coreml --magpie-speaker aria -o en.wav
speech speak "Hola mundo." --engine magpie-coreml --language es \
    --magpie-speaker leo -o es.wav
# Japanese auto-routes to MLX (CoreML bundle has no JA tokenizer)
speech speak "こんにちは。" --engine magpie-coreml --language ja -o ja.wav

# Streaming synthesis
speech speak "Long text here..." --stream

# Batch synthesis from file
speech speak --batch-file texts.txt --batch-size 4

# VoxCPM2 — 48 kHz studio output
speech speak "Hello there." --engine voxcpm2 --voxcpm2-variant int8 -o hi.wav

# VoxCPM2 — voice design
speech speak "Welcome to the show." --engine voxcpm2 \
    --voxcpm2-instruct "A young woman, warm and gentle voice." -o design.wav

# VoxCPM2 — single-reference cloning
speech speak "This is a cloned voice." --engine voxcpm2 \
    --voice-sample speaker.wav -o clone.wav

Instruksi opsi TTS

Percobaan: Build native SDK dukungan dari sumber utama. Homebrew dan lain prebuilt CLI rilis mungkin tidak termasuk mesin ini belum.

Implementasi (PR # 541): main

Bundel MLX yang diterbitkan: aufklarer/FireRedTTS3-Instruct-MLX-fp32 · aufklarer/MOSS-VoiceGenerator-MLX-bf16

Menyediakan satu argumen teks, --instruct, dan tepat satu direktori paket atau ID model yang kompatibel. Referensi audio, speaker tetap dan masukan batch tidak didukung.

Setiap teks dan daerah instruksi dibatasi 32,768 UTF-8 bytes. Inserm masukan yang telah diberikan lengkap, termasuk template, harus cocok dalam 4,096 Token. "Input" melebihi batas ditolak.

FireRedTTS3-Instruct ditahan Float32 Model dan bobot decoder. Ini mengembalikan audio yang dibanjiri: abaikan --stream. Inggris dan Cina --language Sebuah batas generasi menimbulkan kesalahan bukannya kembali terpotong sukses.

MoSS- Pembuat Suara mempertahankan BF16 bobot bahasa dan FP32 codec sintesis. Gunakan --stream untuk incremental PCM. Abaikan --language dan menempatkan persyaratan bahasa dalam --instructPenyelesaian menguras semua buku kode enam belas.

Instruktuasi - berikut kualitas tidak mencetak. Ukuran skrg-script menggambarkan setup teruji; ada - model sertifikasi latensi tetap tidak meyakinkan.

OpsiBakuDeskripsi
--fireredtts3-bundle-dir—Bundel lokal yang diekspor; pilih ini atau opsi model- ID.
--fireredtts3-model-id—Identifikasi bundel MLX yang kompatibel diterbitkan; pilih ini atau direktori lokal.
--fireredtts3-flow-steps10Flow langkah per akustik patch.
--fireredtts3-max-patches400Generation cap; mencapai itu sebelum penyelesaian menimbulkan kesalahan.
--moss-voicegenerator-bundle-dir—Bundel lokal yang diekspor; pilih ini atau opsi model- ID.
--moss-voicegenerator-model-id—Identifikasi bundel MLX yang kompatibel diterbitkan; pilih ini atau direktori lokal.
--moss-voicegenerator-max-frames750Generation cap; mencapai itu sebelum penyelesaian menimbulkan kesalahan.
--moss-voicegenerator-chunk-frames3Komplete codec frames per pCM chunk (1-32).
--seed2 / 42Meminta benih: FireRedTTS3 default ke 2; MOSS- Pembuat Suara ke 42.

FireRedTTS3-Instruct · MoSS- Pembuat Suara

Kokoro

Teks ringan - to- pidato menggunakan Kokoro-82M pada Neural Engine (CoreML). Non-autoregresif - single forward pass, ~ 45ms latency.

speech kokoro "<text>" [options]
OpsiBakuDeskripsi
<text>Teks yang akan disintesis
--voiceaf_heartPreset suara (50 tersedia di seluruh 10 bahasa)
--languageenKode bahasa: en, es, fr, hi, it, ja, pt, zh, ko, de
--output, -okokoro_output.wavPath berkas keluaran WAV
--list-voicesDaftar semua suara yang tersedia dan keluar
--model, -mID model HuggingFace

Contoh:

# Basic Kokoro TTS
speech kokoro "Hello, world!" --voice af_heart -o hello.wav

# French voice
speech kokoro "Bonjour le monde" --voice ff_siwis --language fr -o bonjour.wav

# List all 50 voices
speech kokoro --list-voices

respon

Dialog pidato penuh dengan PersonaPlex 7B.

speech respond [options]
OpsiBakuDeskripsi
--input, -iBerkas audio masukan WAV (24kHz mono) (Diperlukan)
--output, -oresponse.wavBerkas respon keluaran WAV
--voiceNATM0Pengaturan suara (mis. NATM0, NATF1, VARF0)
--system-promptassistantPreset: assistant, focused, customer-service, teacher
--system-prompt-textTeks prompt sistem gubahan (menimpa preset)
--max-steps200Generasi Max langkah di 12.5Hz (~ 16s)
--streamKeluarkan potongan audio selama generasi
--compileAktifkan transformer terkompile (warmup + kernel fusion)
--list-voicesDaftar presets suara yang tersedia
--list-promptsDaftar presets sistem yang tersedia
--transcriptCetak teks monolog model
--jsonKeluaran sebagai JSON (transkrip, latensi, jalur audio)
--verboseTampilkan info waktu rinci

Sampling Overrides

OpsiBakuDeskripsi
--audio-temp0.8Suhu sampling audio
--text-temp0.7Temperatur sampling teks
--audio-top-k250Kandidat audio top-k
--repetition-penalty1.2Penalti pengulangan audio (1.0 = dinonaktifkan)
--text-repetition-penalty1.2Penalti pengulangan teks (1.0 = dinonaktifkan)
--repetition-window30Penalti jendela pengulangan dalam bingkai
--silence-early-stop15frame Silence sebelum awal stop (0 = dimatikan)
--entropy-threshold0Ambang entropi teks bagi stop awal (0 = dimatikan)
--entropy-window10Konsevatif langkah low-entropi sebelum awal berhenti

Contoh:

# Basic speech-to-speech
speech respond --input question.wav

# Use a female voice with compiled transformer
speech respond -i question.wav --voice NATF1 --compile

# Stream response and show transcript
speech respond -i question.wav --stream --transcript --verbose

Voice-chat

Live full--duplex conversation with Soniqo, powered by NVIDIA Nemotron VoiceChat 11mode B. Mikrofon memungkinkan Apple AEC, streaming RNNT captions, human- menghadapi real time metrics, adaptif 8→2→1-step pemurnian suara, dan terikat input resinkronisasi bukan catch-up diam panjang.

speech voice-chat [options]
OpsiBakuDeskripsi
--model, -maufklarer/VoiceChat-11B-Perception-MLX-int5ID model Hugging Face atau bundel lokal lengkap.
--revisionmainRevisi Hub.
--system-promptTimpa sistem cepat.
--mcp-configMenyediakan konfigurasi JSON netral untuk server perkakas MCP.
--mcp-serversemua dikonfigurasiPilih salah satu server yang dikonfigurasi; ulangi untuk memilih lebih.
--mcp-write-policyallowKebijakan tulis: langsung allow, model-sedang confirm, atau deny.
--mcp-timeout-seconds15MCP tool- call timeout; server startup memungkinkan setidaknya 60 detik.
--greetMinta model untuk menyapa dulu.
--no-aecMatikan pembatalan echo akustik Apple.
--no-transcriptNonaktifkan terjemahan pengguna RNN-T yang hidup.
--no-rnnt-turn-takingMatikan NVIDIA RNNT, berbalik mengambil pengaman.
--prebuffer-frames380 m frame keluaran dibintangi sebelum diputar.
--max-buffered-frames8Maksimum antrian 80 ms microphone frames sebelum audio basi dijatuhkan.
--max-secondsBerhenti menangkap hidup setelah sekian detik.
--inputBaca file audio bukan mikrofon.
--output, -oTulis konteks penuh 22.05 kHz WAV.
--tail-seconds6Silence ditambah setelah file input.
--force-turn-at-endPaksa BOS pada berkas EOF; tes regresi saja.
--plainGunakan tambahan - hanya keluaran daripada menggambar ulang dasbor tetap.
--debug-timelineTampilkan frasa relatif dan pengucapan-akhir timestamp-akhir plus alat yang didekode-sebut acara lifecycle.
--terminal-width120Lebar tampilan terminal.
--temperature0Suhu teks; 0 adalah serakah.
--text-top-p1Teks top-p.
--guidance0.2Kekuatan bimbingan.
--speech-top-p0.95EAR- TTS top- p.
--speech-noise0.001EAR- TTS sampling noise.
--speech-iterations8EAR- TTS Maskgit iterasi per frame.
--realtime-speech-iterations2Anggaran perbaikan suara sementara yang digunakan untuk melindungi kecepatan real time; kelebihan berat menggunakan satu langkah.
--live-speech-context-seconds20Sejarah EAR- TTS terbaru ditahan dalam mode hidup; 0 terus sejarah penuh.

Contoh:

speech voice-chat

speech voice-chat --model /path/to/complete-bundle --prebuffer-frames 3

speech voice-chat --input question.wav --output response.wav

speech voice-chat --mcp-config Examples/VoiceChatMCP/apple-reminders.json

Dengan MCP diaktifkan, model -native call JSON dan mengembalikan token tool- response NVIDIAPath fungsi asinkron tahap dua pada keheningan yang diemban. Tidak ada router transkrip, matcher ekspresi, pengingat keadaan, perbaikan argumen, atau catatan asisten jawaban: pos pemeriksaan hanya memilih sebuah alat dan argumennya. Koordinator hanya memvalidasi asli JSON, berlaku dalam kebijakan baca / tulis, mengeksekusi yang dipilih MCP operasi, dan mengembalikan hasil terstruktur melalui saluran fungsi terlatih. Penulis mengeksekusi segera di bawah baku allow kebijakan, menghapus konfirmasi kedua mengubah dari demo pengingat; sebuah penulisan lengkap identik masih ditekan sampai pidato pengguna segar. Gunakan confirm hanya ketika mode- konfirmasi mediasi secara eksplisit diinginkan, atau deny untuk menolak menulis. Perintah MCP dijalankan secara lokal dengan sistem berkas dan ijin aplikasi pengguna saat ini, jadi gunakan hanya berkas konfigurasi terpercaya dan paket server.

Persepsi Mikrofon dan RNN-T berlanjut di antara langkah-langkah model, ketika eksternal MCP I / O berjalan dalam tugas terpisah. Speech-bearing daerah mikrofon ditangkap sementara berbagi cache fungsi sibuk adalah tetap sebagai diduduki dan dimainkan causally setelah hasil, sehingga captioned follow- up tidak lagi dibuang. Replay terbatas untuk satu frame semantic tua per live callback; frame baru tetap mengantri, replay teks dipaksa ke PAD, dan alreadin-aid audio tidak pernah queed ke chaunding-chainching. MCP round trip, and tool-results cache sinkronisasi. Decode dan hasil baris menunjukkan model / cache cache cate plus live interleave, residu yang digunakan oleh hasil aktor, pembukuan, dan konposisi sistem; audio latar depan RTF tidak ada yang bekerja di latar belakang itu. Setelah panggilan terbuka, gardu teks paksa-PAD melewati proyeksi kosakata penuh yang tidak digunakan. Setelah EOTC, jalur dua-fase membeku bahasa yang sama dan EAR- TTS ketika hasil eksternal tertunda; bingkai mikropon tetap hidup untuk persepsi dan RN-T tetapi tidak menjadi posisi sintetis PAD sebelum hasil. Hasil yang diketahui diputar dalam bounded 16-token causal- prefill potongan. Loop langsung membaca satu fungsi koheren snapshot dan satu MCP snapshot setiap 160 ms bukannya membuat beberapa aktor panggilan setelah setiap bingkai mikrofon. percakapan biasa mempertahankan 40-frame RNN-T safety fallback, sedangkan sebuah already-diusulkan kandidat alat asli dapat melakukan setelah delapan frame kosong. Teks dan saluran fungsi masih berbagi satu singgahan Nmotron-H, sehingga koherent result -conditioned pidato hanya dimulai setelah respon fungsi menutup; percakapan asisten sewenang-wenang tidak dapat secara aman berjalan sebagai causal kedua masa depan dalam paralel.

A bersih M5 Pro 48 Profil rilis GB diukur 3.56–4.00 detik dari akhir dari pidato ke model pertama - pidato posting - alat untuk tiga pengingat-daftar frase dengan tetap 200 ms provider. Native JSON decoding digunakan 27–31 langkah-langkah 1.15–1.28 detik, dan 67-token hasil disinkronkan dalam 0.58–0.72 Dengan sengaja lambat dua detik penyedia, mikrofon bekerja selama menunggu tetap 19.6 ms p95 dan 19.8 ms maksimum a final clean run diukur 118 ms layanan mikrofon- p95 dan 139 ms p95 latiness luar 80 ms menangkap tenggat waktu. Penyedia sehingga menambah jawaban tanpa penangkapan titik beku; batas perhitungan yang tersisa adalah native call decoding ditambah shared- cache hasil replay.

Demo bundled hanya mengekspos list_reminders, create_reminder, dan update_reminder; daftar penemuan tetap adapter- private. Satu pengingat datar membaca mencakup setiap daftar EventKit dan menggantikan UUID penyedia panjang dengan stabil, sesi-scoped referensi seperti r1Pemutakhiran mengembalikan salah satu referensi model- terlihat, dan adaptor memperbaikinya tepat sebelum eksekusi; itu tidak pernah cocok dengan nama yang diucapkan atau teks transkrip. Update dan prioritas fractional Noop ditolak daripada dilaporkan sebagai perubahan sukses. Pemutakhiran terkendali jatuh dari 67 langkah asli / 5.25 detik dengan UUID realistis ke 37 langkah / tentang 2.29 detik dengan r1. Membuat hanya membutuhkan sebuah nama sementara baku penyedia opsional tetap opsional. Antar streaming RNNT memakai padding refleksi NMo-compatible di tepi jendela bergulir daripada nol padding.

Modus berkas adalah jalur yang dapat direproduksi secara hardware- bebas. --force-turn-at-end hanya untuk tes regresi yang dikendalikan dan tidak boleh dilaporkan sebagai perubahan natural.

audio- terjemahkan

Streaming speech- to-speech translation menggunakan Kyutai Hibiki Zero-3B. FR / ES / PT / DE AND, binari tunggal, tanpa awan. Pemandu penuh.

speech audio-translate <input.wav> [options]
OpsiBakuDeskripsi
<input>Berkas audio sumber WAV (mono, diresabled ke 24 kHz internal) (Diperlukan)
--output, -otranslated.wavKeluaran 24 kHz English WAV berkas
--source-langfrPetunjuk bahasa sumber (fr, es, pt, de). Autodeteksi; hanya metadata. FR + ES adalah ketat kanal E2E; PT + DE adalah usaha terbaik.
--quantization4bitVariabel: 4bit (~2.7 GB) atau 8bit (~ 3.9 GB)
--model-idHuggingFace model id override (mengambil predidence atas --quantization)
--compileJalankan sementara transformator warm-up lulus sebelum menerjemahkan
--verboseCetak pemintalan fase per (Mimi encode, generasi, Mimi decode)
--transcriptCetak model 's infer- monolog raw SPM token ID (kabel decode SPM adalah follow- up)

Variabel Lingkungan

VariabelEfek
HIBIKI_GREEDY=1Paksa decoding argmax untuk audio text + target. Reproduksi - digunakan oleh canary CI ketat.
HIBIKI_MODEL_IDTimpa default aufklarer/Hibiki-Zero-3B-MLX-4bit repo at runtime.

Contoh:

# Translate a French clip to English
speech audio-translate input_fr.wav -o out_en.wav --source-lang fr

# Spanish, 8-bit, verbose
speech audio-translate input_es.wav -o out.wav --source-lang es --quantization 8bit --verbose

# Deterministic mode (matches the CI regression canaries)
HIBIKI_GREEDY=1 speech audio-translate input_fr.wav -o out.wav --source-lang fr

vad

Deteksi aktivitas suara offline menggunakan Pyannote Segmentasi.

speech vad <file> [options]
OpsiDeskripsi
<file>Berkas audio untuk dianalisa
--model, -mID model HuggingFace
--onsetAmbang onset (awal pidato)
--offsetAmbang offset (akhir pidato)
--min-speechDurasi bicara minimum dalam detik
--min-silenceDurasi keheningan minimum dalam detik
--jsonKeluaran sebagai JSON

vad-stream

Streaming deteksi aktivitas suara menggunakan Silero VAD v5Proses pidato di 32Ny.

speech vad-stream <file> [options]
OpsiDeskripsi
<file>Berkas audio untuk dianalisa
--engineMesin VAD: mlx (bawaan) atau coreml
--model, -mHuggingFace ID model (auto- dipilih oleh mesin)
--onsetAmbang onset
--offsetAmbang offset
--min-speechDurasi bicara minimum dalam detik
--min-silenceDurasi keheningan minimum dalam detik
--jsonKeluaran sebagai JSON
--smart-turnKonfirmasi setiap jeda dengan Smart Turn sebelum mengakhiri sebuah segmen; jeda mid- kalimat bergabung ke dalam satu segmen
--turn-thresholdSmart Turn threshold pelengkapan (baku 0.5)
--turn-max-silenceDetik keheningan setelah jeda vetoed yang mengakhiri segmen pula (baku 2.0)

putar

End-of -turn deteksi dengan Smart Turn v3.2 (8M params, CoreML, 23 Bahasa). Skor terakhir 8 s dari ucapan direkam dan mencetak probabilitas bahwa pembicara telah selesai, lengkap / lengkap vonis, dan waktu inferensi.

speech turn <file> [options]
OpsiDeskripsi
<file>Berkas audio dengan satu putar pengguna (sembarang sampel); 8 terakhir digunakan
--thresholdProbabilitas di atau di atas yang dihitung sebagai lengkap (baku 0.5)
--model, -mID model HuggingFace. Default untuk aufklarer/Smart-Turn-v3.2-CoreML
--model-dirDirektori lokal memuat smart_turn.mlmodelc dan config.json; melewati pengunduhan
--jsonKeluaran sebagai JSON
# Probability, verdict and inference time for one utterance
speech turn utterance.wav

# Custom threshold, JSON output
speech turn utterance.wav --threshold 0.7 --json

# Streaming VAD with Smart Turn confirming each pause
speech vad-stream call.wav --smart-turn --turn-threshold 0.6 --turn-max-silence 1.5

bangun

On- perangkat wake- word / keyword melihat menggunakan KWS Zipformer (3.49M params, CoreML INT8, 26× real-time, English only).

speech wake <file> [options]
OpsiDeskripsi
<file>Berkas audio untuk dianalisa
--keywordsSatu atau lebih kata kunci. "hey soniqo" (PEREMPUAN GEMAH) "hey soniqo:0.15:0.5" (dengan threshold / bounce) atau "LIGHT UP|▁ L IGHT ▁UP:0.25:2.0" (sherpa- onnx-style eksplisit potongan BPE)
--keywords-fileBerkas kata kunci, satu entri per baris (sintaks sama dengan --keywords); # untuk komentar
--model, -mID model HuggingFace. Default untuk aufklarer/KWS-Zipformer-3M-CoreML-INT8
--jsonKeluaran sebagai JSON
# Plain phrase, tuned defaults
speech wake recording.wav --keywords "hey soniqo"

# Explicit BPE pieces for phrases the greedy tokenizer gets wrong
speech wake recording.wav --keywords "LIGHT UP|▁ L IGHT ▁UP:0.25:2.0"

# Multiple phrases + JSON output
speech wake recording.wav \
  --keywords "lovely child|▁LOVE LY ▁CHI L D:0.25:2.0" \
             "for ever|▁FOR E VER:0.25:2.0" \
  --json

Diarize

Speaker diarization - mengidentifikasi siapa yang berbicara ketika.

speech diarize <file> [options]
OpsiBakuDeskripsi
<file>Berkas audio untuk dianalisa
--enginepyannoteMesin diarisasi: pyannote, community1 (CoreML + PLDA asli / VBx), sortformer, atau nemotron3
--nemotron3-backendcoremlNemotron 3 backend: coreml atau mlx
--nemotron3-directoryDigabung model Nemotron 3 lokal
--nemotron3-compute-unitsaneCoreML unit kompute: ane, cpu, gpu, atau all
--community1-compute-unitsaneCommunity-1 CoreML unit kompute: ane, cpu, gpu, atau all
--num-speakersJumlah pembicara yang dikenal untuk Community-1
--min-speakers1Jumlah pembicara minimum untuk Community-1
--max-speakersJumlah pembicara maksimum untuk Community-1
--target-speakerAudio pendaftaran untuk ekstraksi speaker target (hanya pyannote)
--embedding-enginemlxSpeaker embedding engine: mlx atau coreml (hanya plannote)
--vad-filterPenyaring awal dengan Silero VAD (hanya plannote)
--rttmKeluaran dalam format RTTM
--jsonKeluaran sebagai JSON
--score-againstReferensi berkas RTTM untuk menghitung DER

Contoh:

# Basic diarization (pyannote, default)
speech diarize meeting.wav

# Community-1 (CoreML + native PLDA/VBx)
speech diarize meeting.wav --engine community1 --min-speakers 2 --max-speakers 6

# End-to-end Sortformer (CoreML, Neural Engine)
speech diarize meeting.wav --engine sortformer

# Nemotron 3 (CoreML or MLX INT8)
speech diarize meeting.wav --engine nemotron3
speech diarize meeting.wav --engine nemotron3 --nemotron3-backend mlx

# RTTM output for evaluation
speech diarize meeting.wav --rttm

# Target speaker extraction (pyannote only)
speech diarize meeting.wav --target-speaker enrollment.wav

# Score against reference
speech diarize meeting.wav --score-against reference.rttm

embed-speaker

Ekstrak speaker yang embedding vektor dari audio.

speech embed-speaker <file> [options]
OpsiDeskripsi
<file>Berkas audio berisi suara speaker
--enginemlx (bawaan) atau coreml untuk WeSpeaker 256- dim; redimnet2 untuk identitas gigih CoreML 192-dim; camplusplus untuk CAM + + CoreML 192- dim
--jsonKeluaran sebagai JSON

language- id

Identifikasi bahasa yang diucapkan dalam berkas audio.

speech language-id <file> [options]
OpsiDeskripsi
<file>Berkas audio untuk mengklasifikasikan
--engineInferensi mesin: mlx atau coreml
--modelTimpa ID model Hugging Face
--topJumlah kandidat bahasa peringkat
--jsonKeluaran hasil sebagai JSON
speech language-id recording.wav --top 5
speech language-id recording.wav --engine coreml --json

denoise

Hapus kebisingan latar belakang menggunakan DeepFilterNet3 pada Neural Engine.

speech denoise <file> [options]
OpsiBakuDeskripsi
<file>Berkas audio masukan
--output, -oinput_clean.wavPath berkas keluaran
--model, -mID model HuggingFace

Contoh:

speech denoise noisy-recording.wav -o clean.wav

compose

Hasilkan 30 s dari sebuah prompt teks menggunakan MAGNeT pada MLX.

speech compose <prompt> [options]
OpsiBakuDeskripsi
<prompt>Pesan teks menjelaskan musik untuk dihasilkan (mis. "happy rock")
--output, -omagnet.wavKeluaran WAV path (32 kHz mono)
--variantsmall-int4Varian model: small-int4, small-int8, medium-int4, atau medium-int8. Dipecahkan untuk aufklarer/MAGNeT-{Small,Medium}-30secs-MLX-{4,8}bit.
--temperature3.0Temperatur Sampling, annearled linearly per tahap.
--top-p0.9Nucleus sampling threshold.
--cfg-max10.0Max klasifikasi koefisien panduan gratis.
--cfg-min1.0Koefisien Min CFG (annearled bersama jadwal topeng).
--steps20,10,10,10Dipisah dengan pengkodean iterasi per buku kode (4 nilai).
--seedBenih acak untuk keluaran reproduksi.

Contoh:

# Default: small-int4, ~10 s wall on M-series for a 30 s clip
speech compose "happy rock" -o happy_rock.wav

# Larger model — better prompt following, slower
speech compose "lo-fi hip hop with mellow piano" --variant medium-int4 -o lofi.wav

# Reproducible
speech compose "energetic EDM with synth lead" --seed 42 -o edm.wav

transcribe- batch

Terjemahkan direktori berkas audio; model dimuat sekali.

speech transcribe-batch <input-dir> [options]
OpsiBakuDeskripsi
<input-dir>Direktori berkas audio untuk ditulis (WAV, FLAC, dsb.)
--output-dirDirektori keluaran bagi transkrip
--engineqwen3ASR mesin (nilai sama sebagai translate)
--jsonlHasil keluaran sebagai baris JSON, satu per berkas

restore

Kembalikan pidato (denoise + dereverb) dengan keluaran Sidon - CoreML, 48 kHz.

speech restore <audio-file> [options]
OpsiBakuDeskripsi
--output, -oinput_restored.wavPath berkas WAV keluaran (48 kHz)
--variantfp16Varian presisi / bundle
--compute-unitsCore ML penempatan untuk kedua tahap: ane, gpu, cpu, semua (baku: vocoder gpu, preciktor auto)

terpisah

Pisahkan trek musik ke dalam batang (vokal, drum, bass, lain).

speech separate <input> [options]
OpsiBakuDeskripsi
--stemsvocals,drums,bass,otherStems to extract: vokal, drums, bass, other
--engineumxMesin: umx (baku) atau htdemucs (kualitas lebih tinggi)
--output-dirDirektori keluaran bagi transkrip

contoh-contoh

Resolusi super- audio dengan FlashSR - satu langkah disaring AudioSR, keluaran 48 kHz.

speech upsample <audio-file> [options]
OpsiBakuDeskripsi
--output, -ohr.wavPath berkas WAV keluaran (48 kHz)
--variantint4Varian presisi / bundle
--seedBenih untuk keluaran deterministik

qwen3-tts-coreml

Swift dukungan 0.6B /256 dan 1.7B /1024 bundles; 0.6B tetap yang default. 1.7B bundle default ke CPU dan membutuhkan persiapan 2048-channel Float32 .npy Pembicara embedding via --speaker-embeddingGPU / ANE dan iOS validasi tetap terpisah.

speech qwen3-tts-coreml "<text>" [options]
OpsiBakuDeskripsi
--output, -ooutput.wavPath berkas keluaran WAV
--languageenglishBahasa keluaran
--modelID model Hugging Face
--model-directory—Local compired model bundle; dibutuhkan predidence atas pengunduhan --model.
--speaker-embedding—Bersiap Float32 .npy Pembicara embedding cocok dengan lebar model (1024 atau 2048).

vibevoice

SMS-to- speech dengan Microsoft VibeVoice (MLX).

speech vibevoice "<text>" --voice-cache <cache> [options]
OpsiBakuDeskripsi
--voice-cache, -vPenyimpanan suara dari suara vibevoice -encode-voice (dibutuhkan)
--stepsLangkah inferensi DPM-Solver (lebih tinggi = kualitas yang lebih baik)
--cfg1.3Kekuatan panduan khusus-bebas
--long-formSintesis lama bentuk untuk teks panjang

vibevoices-encode-voice

Mint sebuah singgahan suara VibeVoice dari sebuah rekaman referensi ditambah transkrip.

speech vibevoice-encode-voice <input> "<transcript>" [options]
OpsiBakuDeskripsi
<input>Referensi berkas audio
<transcript>Transkrip dari referensi audio (hanya Inggris)
--output, -oCache suara keluaran (.safetensors)

Terjemahkan

Terjemahkan teks ke dalam bahasa target dengan MADLAD-400 (MLX).

speech translate "<text>" --to <lang> [options]
OpsiBakuDeskripsi
--to, -tKode bahasa target (ISO 639-1, mis. es, zh, ja)
--streamToken stream saat mereka decode
--modelID model Hugging Face

clef

Pilih dari jawaban yang diperbolehkan menggunakan Clef-flash lokal di Apple Silicon. Pratilik pembangunan.

speech clef decide request.json
speech clef decide request.json --model-dir /path/to/Clef-flash-9B-MLX-4bit
speech clef decide request.json --offline --max-tokens 4096

Permintaan berisi teks dalam state dan demi (rombongan) yang melarang dengan sebenar-benarnya (dari perbuatan-perbuatan maksiat), questions Setiap bidang memiliki id dan type: choice dengan choices peta, noul untuk benar / salah, atau score dengan perintah levelsKeluaran adalah JSON dengan probabilitas, jawaban yang dipilih, jumlah token, waktu model-beban, dan waktu keputusan.

Secara baku, perintah mengunduh aufklarer/Clef-flash-9B-MLX-4bitGunakan --model-dir untuk berkas yang ada atau --offline untuk cache. Token membatasi defaults untuk 4096 dan menerima 1- 16384. Lihat Panduan Clef untuk permintaan lengkap dan diukur penggunaan memori.

gliner

Skema klasifikasi teks dan entitas spam dengan GLiNER2.5-Decide (MLX). Pembuatan: belum dalam rilis. Abaikan teks untuk membaca stdin.

speech gliner classify "<text>" --labels <a,b,c> [options]
speech gliner extract "<text>" --labels <a,b,c> [options]
OpsiBakuDeskripsi
--variantint8Penerbitan beban untuk diunduh: fp32, fp16 atau int8
--modelHugging Face override repositori
--model-dirDirektori model lokal ketimbang mengunduh
--labelsLabel kandidat yang dipisah sama (1 sampai 255, berbeda)
--descriptionDeskripsi label sebagai label = teks; diulangi
--taskaksiNama tugas dalam prompt skema (hanya mengklasifikasikan)
--threshold0.5Nilai minimum span (hanya ekstrak)
--evaluate-layersEvaluasi lapisan enkoder satu pada satu waktu untuk menurunkan puncak memori
--jsonJSON dengan setiap probabilitas, atau spans dengan UTF-16 offset, ditambah waktu

avatar-motion

Hasilkan NVIDIA Audio2Face-3D avatar-motion koefisien frame dari audio bicara.

speech avatar-motion <input> [options]
OpsiBakuDeskripsi
--output, -oavatar-motion.jsonlPath berkas JSONL keluaran
--model…James-MLXIdentitas Avatar bundle (James default; Claire dan Mark tersedia)
--verboseWaktu cetak dan jumlah frame

MOSS- TTS- Nano

Gunakan --voice-sample untuk pengkloning suara; tidak ada transkrip referensi dibutuhkan. Referensi Mono diduplikasi ke stereo, diresepkan ke 48 kHz dan padded ke 80 ms. kode referensi sekali dan gunakan kembali kode melalui permintaan.

speech speak "Hello world." --engine moss-nano -o hello.wav
speech speak "The weather is nice today." --engine moss-nano \
  --voice-sample reference.wav --moss-nano-seed 1 -o cloned.wav
speech speak "Hello world." --engine moss-nano --stream --play -o streamed.wav
--moss-nano-modelaufklarer / MOSS-TTS-Nano-100M-CoreMLRepositori model atau direktori lokal
--moss-nano-compute-unitscpucpu atau gpu
--moss-nano-max-frames300Maksimum 80 ms frame; EOS alami dibutuhkan
--moss-nano-seed0Bibit yang diambil ulang Swift

MOSS- TTS- Nano

Inferensi lokal lokal

Untuk 12B, diulang di samping tool- call penutup penanda segera setelah panggilan lengkap, tervalidasi dikonsumsi dengan panggilan tersebut. Mereka tidak membuat panggilan lain atau mengubah argumen. Standally penanda dan argumen tetap salah tetap error; E4B mempertahankan penanganan ketat.

Untuk mempertahankan permintaan obrolan yang gagal, ditata failureCaptureDirectory dalam daftar muatan. Penangkapan tidak aktif secara baku. Direktori harus menolak grup dan akses lain; direktori baru pakai 0700 dan berkas kegagalan digunakan 0600Berkas termasuk tubuh permintaan yang tepat, permintaan ID dan error. Selesai 12B generasi juga mempertahankan prompt yang dirender, ID token, keluaran mentah dan stop alasan sebelum parsing. Kegagalan E4B tidak memiliki catatan pembuatan mentah. Berkas lokal ini berisi percakapan dan konten alat; Galat HTTP dan permintaan sukses tidak termasuk mereka.

Direktori agentDirektori opsional memuat suatu ter-stage Gemma 4 12B Disatukan INT4 model teks di samping E4B Gunakan model: "gemma4-12b-it"untuk chatting dengan alat-alat asli, hasil sejarah, dan pembatalan. E4B tetap tersedia untuk permintaan lain. Gemma4UnifiedChat gunakan jepped MLX implementasi teks dan rilis setiap cache KV permintaan. Menanggapi parsing penghapus saluran dari teks kembali. Orfaned tool- call terminator ditolak sebagai respon salah bentuk.

Sumber membangun menerima --inference-manifest model. json untuk dipentaskan Gemma 4 E4B INT4, VoxCPM2, penuh Whisper Large-v3, dan Silero VADLayanan ini mulai offline dan menolak identitas model yang tidak kompatibel.

speech-server --inference-manifest models.json --port 8080

Rincian API

Voxtral TTS

Voxtral 4B TTS 2603 berjalan lokal pada Apple Silicon melalui modul Voxtral TTS: 20 preset suara, sembilan bahasa, dan 24 KHz mono speech.

speech speak "Hello, welcome to Voxtral." --engine voxtral --voxtral-voice casual_male --stream --voxtral-chunk-frames 3 -o hello.wav
speech speak --engine voxtral --list-speakers
speech speak "Bonjour." --engine voxtral --voxtral-voice fr_female --voxtral-max-frames 500 --voxtral-seed 0 -o bonjour.wav

Hanya preset suara; reference-audio cloning tidak tersedia. Keluaran stream audio melalui SDK, CLI, WebSocket dan HTTP PCM. Pasokan teks masukan lengkap di depan. Model bobot menggunakan CC BY- NC 4.0.

Baca Voxtral TTS Panduan

Fish Audio Drama 3

Support asli MLX untuk Drama 3 tersedia melalui FishAudioDrama3ModelA 35B hibrid- perhatian tulang punggung MoE, menara audio temporal dan produksi codec Fish DAC 44.1 KHz mono audio. 4-bit titik pemeriksaan melewati bentuk gelombang dan independen ASR cek untuk teks- hanya generasi, referensi kloning dan CLI keluaran di Apple M5 Pro. 8-bit dan BF16 tetap tak validasi.

Mode memori balanced adalah bakunya. MLX buffer dipangkas di atas 512 MiB pada batas tahap; ini bukan batas total- memori. Batas allocator global tetap tidak berubah. Pilih --fish-drama3-memory-mode unrestricted atau memoryOptions: .unrestricted untuk keinginan memuat dan perilaku caching sebelumnya.

Teks - hanya generasi desers 794.4 MiB referensi beban encoder. Referensi pertama pengkodean beban dan mempertahankan mereka, jadi keep codec.safetensors tersedia sampai saat itu. Kode referensi yang telah dihitung sebelumnya tidak perlu penyandi.

Menyediakan teks masukan lengkap. Kloning suara memerlukan sebuah klip referensi dan transkrip yang tepat. Tag suara 0–15 dan emosi inline didukung. PCM streaming tersedia melalui generateStreaming, generateStream dan --stream. Potongan bawaan berisi 3 bingkai codec, tentang 139 ms dari audio. Teks panjang otomatis chunking dan teks streaming masukan tetap tidak tersedia. Mencapai batas frame melempar kesalahan.

speech speak "Hello from Drama 3." --engine fish-drama3 --fish-drama3-bundle-dir /path/to/bundle -o hello.wav
speech speak "Hello from Drama 3." --engine fish-drama3 --stream --fish-drama3-chunk-frames 3 -o streamed.wav
speech speak "Hello in the reference voice." --engine fish-drama3 --voice-sample reference.wav --fish-drama3-reference-text "The exact reference transcript." --seed 42 -o cloned.wav
import FishAudioTTS
let model = try await FishAudioDrama3Model.fromBundle(bundleURL, memoryOptions: .balanced)
let pcm = try await model.generate(text: "Hello from Drama 3.", options: .init(seed: 42))
OpsiBaku
--fish-drama3-model-idmlx-community/fish-audio-drama-3-4bit
--fish-drama3-bundle-dir—
--fish-drama3-reference-text—
--fish-drama3-max-frames2048
--fish-drama3-temperature1
--fish-drama3-top-k30
--fish-drama3-top-p0.9
--voice-sample—
--seed0
--streamfalse
--fish-drama3-chunk-frames3
--fish-drama3-memory-modebalanced

Dibangun dengan Fish Audio Bundles mempertahankan Lisensi komunitas dan NOTICE.

4- bit benchmark