Traducere automată · Originalul în engleză
Referință CLI
Breeze TTS 2 · Breeze TTTS
Engleză/Chineză TTS cu design vocal, clonare de referință și direcție și audio transmis (MLX BF16/8-bit, 24 kHz; licență de cercetare/necomercială).
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: opțional proces-la nivel reutilizabil MLX buget cache în MiB; 0 dezactivează caching.--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
Nativ Apple runtime · PocketTTS
PocketTTS adaugă sinteze native CoreML sinteze de vorbire la speech-swift. Toate etapele sunt implicite pentru executarea exclusivă a procesorului. Fluxurile de prefixe engleze Alba sunt 1,920-frame de probe la 24 kHz (80 ms per cadru).
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 Comanda speech
Instalați cu Homebrew
La Apple Silicon cu macOS 15 sau mai nou, instalaţi CLI utilizând Homebrew:
brew install speech
speech --help
Pentru a actualiza o instalație existentă, executați un discurs de actualizare brew upgrade speech.
Alternativă: construirea din sursă
În speech-swift checkout, run make build, apoi utilizaţi .build/release/speech Vezi... Noțiuni de bază ghid de pornire pentru condițiile prealabile și instrucțiunile de construire a sursei.
transcriere
Transcrie fișierele audio în text.
speech transcribe <file> [options]
| Opțiune | Implicit | Descriere |
|---|---|---|
<file> | Fișier audio de transcris (WAV, M4A. MP3 și CAF) | |
--engine | qwen3 | Motor ASR: qwen3, qwen3-coreml, parakeet, nemotron, omnilingual, cohere, voxtral, moss, whisper |
--model, -m | 0.6B | Variantă model: 0.6B, 1.7B, sau modelul complet HuggingFace ID (numai qwen3) [whisper]: default, turbo, sau complet CoreML HuggingFace repo ID.[cohere/voxtral]: INT5 (default), INT8, FP16 , un model Hugging Face ID sau un director local. [moss coreml]: int8 (default) sau fp16; [moss mlx]: int5 (default) sau int8. MOSS acceptă, de asemenea, un cod de depozit Hugging Face compatibil sau director local. |
--max-tokens | CoreML: 512MLX: 5120 | [moss] Jetoane de transcriere generate maxim. |
--kv-cache | fp16 | [moss mlx] Precizie dinamică KV-cache: fp16 sau int8. |
--language | Indicii lingvistice (opțional, ignorate de omnilingv) | |
--window | 10 | [omnilingual] CoreML dimensiunea ferestrei în secunde: 5 sau 10 |
--backend | coreml | [omnilingual/moss] Platformă: coreml (Neural Engine) sau mlx (Metal GPU). MOSS MLX oferă o dinamică 131,072-context simbolic; MOSS CoreML folosește un fix 1,024- Un semn de stare. |
--variant | 300M | [omnilingual mlx] Dimensiune: 300M, 1B, 3B, sau 7B |
--bits | 4 | [omnilingual mlx] biți de cuantificare: 4 sau 8 |
--stream | Activează transcrierea streamingului cu VAD | |
--max-segment | 10 | Durata maximă a segmentului în secunde (streaming) |
--partial | Emit rezultate parțiale în timpul vorbirii (streaming) |
Example:
# 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
aliniament
Aliniare forţată la nivelul cuvintelor. Obţineţi ştampile precise de timp pentru fiecare cuvânt.
speech align <file> [options]
| Opțiune | Implicit | Descriere |
|---|---|---|
<file> | Fișier audio | |
--text, -t | Text de aliniat (dacă este omis, transcrie mai întâi) | |
--model, -m | 0.6B | ASR model de transcriere: 0.6B, 1.7B sau ID complet |
--aligner-model | Model de identificare a aliniatorului forțat | |
--language | Indicii lingvistice |
Example:
# 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?"
Vorbeşte.
Sinteza textului în vorbire.
speech speak "<text>" [options]
| Opțiune | Implicit | Descriere |
|---|---|---|
<text> | Text de sintetizat (opțional, dacă se utilizează --batch-file) | |
--engine | qwen3 | Motor TTS: qwen3, cosyvoice, voxcpm2, indextts2, f5, higgs, breeze, indic-mio, magpie, sau magpie-coreml, moss-nano, fireredtts3, moss-voicegenerator |
--output, -o | output.wav | Ieșire WAV calea fișierului |
--language | english | Limba. Omit pentru a utiliza dialectul nativ difuzor atunci când --speaker este setat. |
--stream | Activează sinteza de streaming | |
--voice-sample | Reference audio pentru clonarea vocii (lucrari cu qwen3, cosyvoice, voxcpm2, f5, higgs, și indextts2) | |
--verbose | Afișează informații detaliate despre sincronizare |
Qwen3-TTS Opțiuni
| Opțiune | Implicit | Descriere |
|---|---|---|
--model | base | Model de variantă: base, customVoice sau model HF complet ID |
--speaker | Voce difuzor (necesită --model customVoice) | |
--instruct | Instruire stil (model personal) | |
--list-speakers | Lista difuzoarelor disponibile și a ieșirii | |
--temperature | 0.3 | Temperatura eșantionului |
--top-k | 50 | Eșantionare Top-K |
--max-tokens | 500 | Jetoane maxime (500 = ~40s audio) |
--batch-file | Fișier cu un text pe linie pentru sinteza lotului | |
--batch-size | 4 | Dimensiunea maximă a lotului pentru generarea paralelă |
--first-chunk-frames | 3 | Rame de cod în prima bucată de flux |
--chunk-frames | 25 | Cadre de cod pe bucată de flux |
CosyVoice3 Opțiuni
| Opțiune | Implicit | Descriere |
|---|---|---|
--speakers | Maparea speakerului pentru dialog multi-speaker: s1=alice.wav,s2=bob.wav | |
--cosy-instruct | Stil de instruire (coveride implicit). Controlează stilul vocal pentru CosyVoice3. | |
--turn-gap | 0.2 | Liniştea dintre dialog se schimbă în câteva secunde |
--crossfade | 0.0 | Crossfade se suprapune între viraje în câteva secunde |
--model-id | HuggingFace model ID |
VoxCPM2 Opțiuni
| Opțiune | Implicit | Descriere |
|---|---|---|
--voxcpm2-variant | bf16 | Varianta de cuantificare: bf16, int8, sau int4. Rezoluții la aufklarer/VoxCPM2-MLX-<variant>. |
--voxcpm2-instruct | Descriere vocală naturală (design vocal), de exemplu "o tânără, caldă și blândă". | |
--voxcpm2-ref-audio | Fișier audio de referință pentru clonare (16 kHz mono, reintrodus intern). | |
--voxcpm2-prompt-audio / --voxcpm2-prompt-text | "Ultimate cloning" pair (clipul de referință) + transcrierea sa pentru clonarea prosodie-conservare. | |
--voxcpm2-cfg-value | 2.0 | Scara de ghidare fără classifier pentru probatorul de difuzie. |
--voxcpm2-timesteps | 10 | Etapele solutorului Euler per petic audio generat. |
--voxcpm2-max-tokens | 2000 | Max a generat patch-uri înainte de oprire forţată. |
--voxcpm2-min-tokens | 2 | Patch-uri min înainte de cap de oprire este permis să tragă. |
--seed | Seminţe MLX RNG înainte de sinteză (deterministice de-a lungul rulărilor). |
IndexTTS2 Opțiuni
IndexTTS2 este un motor cu clonare vocală cu foc zero, susținut de un pachet extins MLX. Este necesar --voice-sample și rulează în prezent numai sinteza seriei.
| Opțiune | Implicit | Descriere |
|---|---|---|
--indextts2-model-id | aufklarer/IndexTTS2-MLX-fp16 | HuggingFace model ID. Implicit la aufklarer/IndexTTS2-MLX-fp16. |
--indextts2-bundle-dir | Încarcă un pachet extins local în loc să descarci de la Hugging Face. | |
--indextts2-emotion-audio | audio de referință opțional emoție/stil. Implicații pentru trimiterea difuzorului. | |
--indextts2-emotion | Preset opţional sau Vector emoţional 8-valoare. eager, happy, excited, și calm. | |
--indextts2-emotion-weight | 1.0 | Scales --indextts2-emotion; păstra modest atunci când difuzor de identitate contează. |
--indextts2-speaking-rate | 1.0 | Multiplicatorul ratei de vorbire de la 0.5 la 1.5; valorile peste 1.0 sunt mai rapide. |
--indextts2-max-pause | Capac opţional pentru pauze interne lungi de energie scăzută, în câteva secunde. | |
--indextts2-s2mel-steps | 15 | S2Mel trepte de debit (default 15, cu o evaluare a urechii; 25 meciuri în amonte exact) |
F5-TTS Opțiuni
| Opțiune | Implicit | Descriere |
|---|---|---|
--f5-reference-text | Transcrierea de referință: conținutul textului de --voice-sample (necesar) | |
--f5-steps | 16 | Etape de măsurare a debitului (default 16; 32 pentru fidelitate maximă) |
--f5-cfg-strength | 2.0 | Rezistența de ghidare fără classifier |
--f5-sway | -1.0 | Coeficientul de prelevare a probelor de cale |
--f5-speed | 1.0 | Multiplicatorul ratei de vorbire |
--f5-seed | 0 | Semințe pentru rezultate deterministe |
--f5-target-rms | 0.1 | Obiectivul de normalizare RMS de referință |
--f5-model-id | Hugging Face model ID | |
--f5-bundle-dir | Încarcă un pachet din acest director local |
Higgs TTS 3 Opțiuni
| Opțiune | Implicit | Descriere |
|---|---|---|
--higgs-ref-text | Transcrierea de referință: conținutul textului de --voice-sample (îmbunătățește clonarea) | |
--higgs-temperature | 0.8 | Temperatura eșantionului (default 0,8) |
--higgs-top-p | Prag de eșantionare Nucleus (în mod implicit) | |
--higgs-top-k | Limita de eșantionare Top-k (în mod implicit) | |
--higgs-max-new-tokens | 2048 | Rame audio maxime generate (25 pe secundă) |
--higgs-seed | 0 | Semințe pentru rezultate deterministe |
--higgs-model-id | Hugging Face model ID | |
--higgs-bundle-dir | Încarcă un pachet din acest director local |
Opțiuni Magpie
NVIDIA Magpie-TTS Multilingv 357M, 9 limbi cu difuzoare coapte 5. Alegeți backend-ul cu --engine magpie (MLX, implicit) sau --engine magpie-coreml (CoreML pentru modelele mari cu MLX de conducere localTransformer + tabloadings audio). Ghid Magpie pentru defalcarea completă pe limbaj G2P. Clonarea vocală nu este suportată: --voice-sample, --speaker, și --instruct sunt respinse cu o eroare utilă care indică --magpie-speaker În schimb.
| Opțiune | Implicit | Descriere |
|---|---|---|
--magpie-variant | int4 | Numai MLX. Cuantificare: int4 (247 MB) sau int8 (411 MB). Rezolvă la aufklarer/Magpie-TTS-Multilingual-357M-MLX-<variant>. Motorul CoreML utilizează pachetul INT8 CoreML și ignoră acest steag. |
--magpie-speaker | sofia | Vorbitor coapte: sofia, aria, jason, leo, sau john Identitatea este consistentă în toate limbile 9 și ambele backend-uri. |
--magpie-temperature | 0.6 | Temperatura de prelevare a probelor (0 = lacom). Utilizarea 0.6 pentru japoneză se blochează lacom pe prima frază. |
--magpie-top-k | 80 | Filtru Top-K pentru eșantionare. |
--magpie-max-frames | 500 | Capac tare pe rame codec (~23 s). |
--magpie-min-frames | 4 | Rame minime înainte de EOS permis. |
--magpie-prephonemized | Tratează intrarea ca IPA / phoneme stream; săriți peste per-limbă G2P. | |
--list-speakers | Printați 5 difuzoare coapte și ieșire. |
caveats magpie-coreml: NanoCodec este marcat la o fereastră fixă 64-frame, așa --stream este respinsă. --language ja Autorute către MLX suport cu o notă stderr ( CoreML pachet nu nava active tokenizer JA încă). CoreML motorul leneș-sarcină MLX pachet pe prima sinteză pentru a conduce local Transformer și media de incorporații audio; implementarea pur-CoreML este urmărită ca un follow-up.
Example:
# 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
Instrucțiune TTS opțiuni
Experimental: Construiește nativ SDK suport din sursa principală. Homebrew și alte prebuilt CLI nu pot include încă aceste motoare.
Implementation (PR #541): main
Publicat MLX pachete: aufklarer/FireRedTTS3-Instruct-MLX-fp32 · aufklarer/MOSS-VoiceGenerator-MLX-bf16
Oferă un argument text, --instruct, și exact un director pachet sau model compatibil ID. audio de referință, boxe fixe și intrare lot sunt nesuportate.
Fiecare câmp de text și de instruire este limitat la octeți 32,768 UTF-8. Impexul complet de intrare, inclusiv șablonul său, trebuie să se potrivească în jetoane 4,096 . Intrările care depășesc oricare dintre limite sunt respinse.
FireRedTTS3-Instruct reţine Float32 model şi greutăţi de decodor. Returnează audio tamponat: omite --stream. Engleză şi chineză --language pseudonime sunt acceptate. O limită de generaţie ridică o eroare în loc de a returna succesul trunchiat.
MOSS-VoiceGenerator păstrează BF16 greutăți lingvistice și FP32 codec sinteze. Utilizare --stream pentru PCM incremental. Omit --language și cerințe lingvistice de pus în --instruct.Electrizează toate șaisprezece registre de coduri.
Calitatea de instruire-urmărire este nemarcată. Măsurătorile pe scurt descrie configurarea testată; certificarea latență model existent rămâne neconcludentă.
| Opțiune | Implicit | Descriere |
|---|---|---|
--fireredtts3-bundle-dir | — | Gama locală de produse exportate; alege această opțiune sau modelul de ID. |
--fireredtts3-model-id | — | Publicat compatibil MLX pachet ID; alege acest lucru sau un director local. |
--fireredtts3-flow-steps | 10 | Etapele de curgere per plasture acustic. |
--fireredtts3-max-patches | 400 | Capac de generaţie; atingerea acestuia înainte de finalizare ridică o eroare. |
--moss-voicegenerator-bundle-dir | — | Gama locală de produse exportate; alege această opțiune sau modelul de ID. |
--moss-voicegenerator-model-id | — | Publicat compatibil MLX pachet ID; alege acest lucru sau un director local. |
--moss-voicegenerator-max-frames | 750 | Capac de generaţie; atingerea acestuia înainte de finalizare ridică o eroare. |
--moss-voicegenerator-chunk-frames | 3 | Rame de codec complete per bucată PCM (1–32). |
--seed | 2 / 42 | Seminţe solicitate: FireRedTTS3 implicit până la 2; MOSS-VoiceGenerator la 42. |
FireRedTTS3-Instruct · MOSS-VoiceGenerator
kokoro
Ușor text-to-speech folosind Kokoro-82M pe Neural Engine (CoreML). Non-autoregresiv pass, ~45ms latență.
speech kokoro "<text>" [options]
| Opțiune | Implicit | Descriere |
|---|---|---|
<text> | Text de sintetizat | |
--voice | af_heart | Preset vocal (50 disponibil în 10 limbi) |
--language | en | Codul lingvistic: en, es, fr, hi, it, ja, pt, zh, ko, de |
--output, -o | kokoro_output.wav | Ieșire WAV calea fișierului |
--list-voices | Enumeră toate vocile disponibile și ieșirea | |
--model, -m | HuggingFace model ID |
Example:
# 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
răspunde
Dialog complet-duplex-vorbire-la-discurs folosind PersonaPlex 7B.
speech respond [options]
| Opțiune | Implicit | Descriere |
|---|---|---|
--input, -i | audio de intrare WAV fișier (24kHz mono) (necesar) | |
--output, -o | response.wav | Răspuns la ieșire WAV fișier |
--voice | NATM0 | Preset vocal (de exemplu NATM0, NATF1 și VARF0) |
--system-prompt | assistant | Presetat: assistant, focused, customer-service, teacher |
--system-prompt-text | Textul prompt al sistemului personalizat (presetate suprascrieri) | |
--max-steps | 200 | Pași de generare Max la 12,5Hz (~16s) |
--stream | Emit bucăți audio în timpul generației | |
--compile | Activează transformatorul compilat (caldmup + fuziunea nucleului) | |
--list-voices | Listă presetări vocale disponibile | |
--list-prompts | Listă presetări prompte ale sistemului disponibil | |
--transcript | Tipărește textul monologului interior al modelului | |
--json | Ieșire ca JSON (transscriere, latență, cale audio) | |
--verbose | Afișează informații detaliate despre sincronizare |
Suprascrieri de eșantionare
| Opțiune | Implicit | Descriere |
|---|---|---|
--audio-temp | 0.8 | Temperatura de prelevare a probelor audio |
--text-temp | 0.7 | Temperatura eșantionului text |
--audio-top-k | 250 | Candidații de top-k audio |
--repetition-penalty | 1.2 | Pedeapsa pentru repetarea audio (1.0 = dezactivat) |
--text-repetition-penalty | 1.2 | Pedeapsa de repetiție text (1.0 = dezactivat) |
--repetition-window | 30 | Fereastra de penalizare a repetițiilor în cadre |
--silence-early-stop | 15 | Rame de tăcere înainte de oprire timpurie (0 = dezactivat) |
--entropy-threshold | 0 | Prag de entropie text pentru oprire timpurie (0 = dezactivat) |
--entropy-window | 10 | Pasi de entropie redusi înainte de oprirea timpurie |
Example:
# 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
Voce-chat
Conversație full-duplex live cu Soniqo, alimentată cu NVIDIA Nemotron VoiceChat 11B. Modul microfon permite Apple AEC, streaming RNN-T subtitrări, măsurări în timp real cu care se confruntă oamenii, adaptative 8→2→1 rafinament vocal în trepte și resincronizare de intrare delimitată în loc de o captură lungă silențioasă.
speech voice-chat [options]
| Opțiune | Implicit | Descriere |
|---|---|---|
--model, -m | aufklarer/VoiceChat-11B-Perception-MLX-int5 | Hugging Face model ID sau pachet local complet. |
--revision | main | Revizuire Hub. |
--system-prompt | Suprascrie prompt sistemul. | |
--mcp-config | Configurație JSON neutru furnizor pentru servere de instrumente MCP. | |
--mcp-server | toate configurate | Selectaţi un server configurat; repetaţi pentru a selecta mai mult. |
--mcp-write-policy | allow | Politica de scriere: imediat allow, model-mediate confirm, sau deny. |
--mcp-timeout-seconds | 15 | MCP timeout instrument-call; pornirea serverului permite cel puțin 60 de secunde. |
--greet | Cere-i modelului să-l întâmpine primul. | |
--no-aec | Dezactivează anularea ecoului acustic Apple. | |
--no-transcript | Dezactivează subtitrarea în direct a utilizatorului RNN-T. | |
--no-rnnt-turn-taking | Dezactivează NVIDIA RNN-T retractări de siguranță. | |
--prebuffer-frames | 3 | Ramele de ieșire 80 ms tamponate înainte de redare. |
--max-buffered-frames | 8 | Rame de microfon de 80 ms până când se scade sunetul vechi. |
--max-seconds | Opriţi capturarea în direct după atâtea secunde. | |
--input | Citiţi un fişier audio în loc de microfon. | |
--output, -o | Scrieţi textul complet 22.05 kHz WAV. | |
--tail-seconds | 6 | Tăcere anexată după intrarea fișierului. |
--force-turn-at-end | Force BOS la dosar EOF; numai teste de regresie. | |
--plain | Utilizați ieșire numai pentru apendice în locul tabloului de bord fixat pentru redraw. | |
--debug-timeline | Afișează fraze relative și marcaje de timp generate-end-pronunciation plus evenimente decodate ale ciclului de viață al apelului instrumental. | |
--terminal-width | 120 | Lăţimea ecranului terminal. |
--temperature | 0 | Temperatura textului; 0 este lacom. |
--text-top-p | 1 | Text de top-p. |
--guidance | 0.2 | Puterea de ghidare AER-TTS. |
--speech-top-p | 0.95 | EAR-TTS top-p. |
--speech-noise | 0.001 | Zgomotul de eşantionare a TTS-UAR. |
--speech-iterations | 8 | URS-TTS Maskgit iterații per cadru. |
--realtime-speech-iterations | 2 | Bugetul intermediar de perfecţionare vocală folosit pentru a proteja viteza în timp real; supraîncărcarea severă foloseşte un pas. |
--live-speech-context-seconds | 20 | Istoricul EAR-TTS recent păstrat în modul live; 0 păstrează întreaga istorie. |
Example:
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
Cu MCP activat, model-nativ apel JSON și jetoane de instrument-răspuns returnat utiliza NVIDIA bifazice cale funcție asincronă pe o tacere cache încorporare. Nu există nici un router transcriere, regulat-expresie meci, memento proiect de stat, argument repararea, sau răspuns asistent scriptat: punctul de control alege numai un instrument și argumentele sale. Coordonatorul validează JSON nativ, se aplică / scrie politica, execută MCP selectat operațiune, și returnează rezultate structurate prin intermediul canalului de funcție instruit. Scrie executa imediat sub planul implicit allow politica, eliminarea a doua schimbare de confirmare de la demo memento-uri; un scrie identic completat este încă suprimat până la discursul de utilizator proaspăt. confirm numai atunci când confirmarea mediată de model este dorită în mod explicit; sau deny să refuze scrierile. Comenzile MCP rulează la nivel local cu sistemul de fișiere al utilizatorului curent și permisiunile de aplicare, astfel încât să utilizați doar fișiere de configurare de încredere și pachete de server.
Percepția microfonului și legendele RNN-T continuă între pașii de model, în timp ce MCP I/O externă rulează într-o sarcină separată. Regiunile microfonului purtatoare de vorbire capturate în timp ce cache-ul funcției partajate este păstrat ocupat sunt păstrate ca înglobări evaluate și rejucat cauzal după rezultat, astfel încât o urmărire captivată nu mai este aruncată. Replay-ul este limitat la un cadru semantic vechi per callback live; noul cadru corespunzător rămâne la coadă, textul replay este forțat să PAD, și audio deja elapsed nu este niciodată în coada la difuzor. Potrivirea poziție cache-uri Lance-TTS sincronizeaza mai târziu în bucăți de 8 cadre. Tabloul de bord separă apel nativ decodare, tur MCP, și instrument-efecte Cache sincronizare. Decode și liniile de rezultat arată model/cache calcul plus live interleave, rezidualul utilizat de randamentele actorului, evidenţa contabilă şi disputa sistemului; audio pre-ground RTF masoara nici unul dintre aceste lucrări de fundal. Odată ce un apel este deschis, canalul de text fortat-PAD sare peste proiecția sa complet neutilizate-vocabular. După EOTC, calea bifazică îngheță limba comună și TTS EAR în timp ce rezultatul extern este în așteptare; ramele de microfon rămân în direct pentru percepție și RNN-T, dar nu devin poziții PAD sintetice înainte de rezultat. Rezultate cunoscute reluați în limitat 16Bucla live citeşte o imagine coerentă a funcţiei şi una MCP imagine fiecare 160 ms în loc de a face mai multe apeluri actor după fiecare cadru microfon. Conversație obișnuită păstrează 40-cadrul de siguranță RNN-T, în timp ce un candidat deja propus la instrumente native se poate angaja după opt cadre oarbe. Canalele de text și de funcție încă împărtășesc un cache Nemotron-H, astfel încât discursul coerent condiționat de rezultate începe numai după ce răspunsul funcției se închide; discursul asistent arbitrar nu poate rula în siguranță ca un al doilea viitor cauzal în paralel.
Un curat. M5 Pro 48 Profil de eliberare GB măsurat 3.56–4.00 secunde de la sfârșitul discursului la primul model-autored discurs post-instrument pentru trei fraze de memento-list cu un fix 200 ms furnizor. Nativ JSON decodare utilizate 27–31 pași în 1.15–1.28 secunde și 67-rezultat sincronizat în 0.58–0.72 Cu un furnizor lent în mod deliberat de două secunde, funcţionează microfonul în timpul aşteptarea a rămas 19.6 ms p95 şi 19.8 Ms maxim. O ultimă cursă curată măsurată 118 Serviciul-microfon ms p95 şi 139 ms p95 întârziere dincolo de 80 Ms Captura termenele. Prin urmare, furnizorul adaugă răspuns latență fără captură înghețată; limita de calcul rămasă este decodarea apel nativ plus rejudecat-cache rezultat reluare.
Demo-ul grupat se expune doar list_reminders, create_reminder și update_reminder; descoperirea listei rămâne adaptor-privat.Un memento aplatizat acoperă fiecare listă EventKit și înlocuiește IUID-urile cu referințe stabile, cu telescopice, cum ar fi r1.Updatele returnează una dintre aceste referințe vizibile model, iar adaptorul rezolvă exact înainte de execuție; nu se potrivește niciodată numelor vorbite sau textului de transcriere. Actualizările și prioritățile fracționale nu sunt respinse decât dacă furnizorii opţionali rămân nesoluționaționali.Reducția actualizată controlată a scăzut de la 67 de pași nativi / 5.25 secunde cu un UUID realist la 37 de pași/aproximativ 2,29 secunde cu r1
Modul de fișier este calea reproductibilă fără hardware. --force-turn-at-end este doar pentru testele de regresie controlate și nu trebuie să fie raportate ca latență naturală de turn-taking.
audio-translate
Streaming speech-to- speech translation using Kyutai Hibiki Zero-3B. FR / ES / PT / DE → EN, single binar, no cloud. Ghid Full →
speech audio-translate <input.wav> [options]
| Opțiune | Implicit | Descriere |
|---|---|---|
<input> | Sursă audio WAV fișier (mono, reinclus la 24 kHz intern) (necesar) | |
--output, -o | translated.wav | Ieșire 24 kHz English WAV fișier |
--source-lang | fr | Indicii privind limba sursă (fr, es, pt, de) Autodetectate; numai metadate. FR + ES sunt strict E2E canarii; PT + DE sunt cele mai bune-efort. |
--quantization | 4bit | Variantă: 4bit (~2.7 GB) sau 8bit (~3.9 GB) |
--model-id | HuggingFace model id suprascrie (are prioritate peste --quantization) | |
--compile | Rulați trecerea de încălzire transformator temporal înainte de traducerea | |
--verbose | Tipărește calendarul pe fază (Mimi cod, generare, Mimi decodează) | |
--transcript | Imprimă ID-urile SPM brute ale monologului interior al modelului (decodarea cablurilor SPM este o continuare) |
Variabile de mediu
| Variabilă | Efect |
|---|---|
HIBIKI_GREEDY=1 | Force argmax decodare pentru text + tinta audio. Reproducibil |
HIBIKI_MODEL_ID | Depășire implicit aufklarer/Hibiki-Zero-3B-MLX-4bit repo la termen. |
Example:
# 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
Detectarea activităţii vocale offline utilizând segmentarea Pyannote.
speech vad <file> [options]
| Opțiune | Descriere |
|---|---|
<file> | Fișier audio de analizat |
--model, -m | HuggingFace model ID |
--onset | Prag de pornire (pornire de vorbire) |
--offset | Prag de dezaburire (sfârșit de vorbire) |
--min-speech | Durata minimă a vorbirii în secunde |
--min-silence | Durata minimă a tăcerii în secunde |
--json | Ieșire ca JSON |
vad-stream
Detectarea activității vocale prin streaming folosind Silero VAD v5. Procese speech în bucăți de 32ms.
speech vad-stream <file> [options]
| Opțiune | Descriere |
|---|---|
<file> | Fișier audio de analizat |
--engine | VAD motor: mlx (default) sau coreml |
--model, -m | HuggingFace model ID (auto-selectat de motor) |
--onset | Prag de pornire |
--offset | Prag de dezagregare |
--min-speech | Durata minimă a vorbirii în secunde |
--min-silence | Durata minimă a tăcerii în secunde |
--json | Ieșire ca JSON |
--smart-turn | Confirmă fiecare pauză cu Smart Turn înainte de a încheia un segment; pauzele de sentinţă medie se îmbină într-un singur segment |
--turn-threshold | Smart Turn pragul de finalizare (default 0.5) |
--turn-max-silence | Secunde de tăcere după o pauză vetoed care se încheie segmentul oricum (default 2.0) |
Întoarce-te.
Detectare finală a turnului cu Smart Turn v3.2 (8M params, CoreML, 23 de limbi). înscrie ultimele 8 s ale unei declaraţii înregistrate şi imprimă probabilitatea ca vorbitorul să fi terminat, verdictul complet/incomplet şi timpul de deducţie.
speech turn <file> [options]
| Opțiune | Descriere |
|---|---|
<file> | Fișier audio cu un singur rotire utilizator (orice rată de eșantionare); ultimele 8 s sunt utilizate |
--threshold | Probabilitate la sau peste care rândul se bazează ca fiind complet (default 0.5) |
--model, -m | HuggingFace model ID. Implicit la aufklarer/Smart-Turn-v3.2-CoreML |
--model-dir | Director local holding smart_turn.mlmodelc și config.json; sare peste descărcare |
--json | Ieșire ca 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
trezire.
On-dispecer wake-word / keyword spotting using the KWS Zipformer (3.49M params, CoreML INT8, 26× numai în timp real, numai în limba engleză).
speech wake <file> [options]
| Opțiune | Descriere |
|---|---|
<file> | Fișier audio de analizat |
--keywords | Unul sau mai multe cuvinte cheie. Formate: "hey soniqo" (Greedy BPE), "hey soniqo:0.15:0.5" (cu prag/boost) sau "LIGHT UP|▁ L IGHT ▁UP:0.25:2.0" (sherpa-onnx-stil explicit BPE) |
--keywords-file | Cuvinte cheie, o intrare pe linie (aceeași sintaxă ca --keywords); # pentru comentarii |
--model, -m | HuggingFace model ID. Implicit la aufklarer/KWS-Zipformer-3M-CoreML-INT8 |
--json | Ieșire ca 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
diarizează
Diarizare speaker-ul ? Identifica cine a vorbit când.
speech diarize <file> [options]
| Opțiune | Implicit | Descriere |
|---|---|---|
<file> | Fișier audio de analizat | |
--engine | pyannote | Motor de diarizare: pyannote, community1 (CoreML + PLDA/VBx nativ), sortformer, sau nemotron3 |
--nemotron3-backend | coreml | Nemotron 3 backend: coreml sau mlx |
--nemotron3-directory | Locală opțională Nemotron 3 pachet model | |
--nemotron3-compute-units | ane | Unități de calcul CoreML: ane, cpu, gpu, sau all |
--community1-compute-units | ane | Unităţi de calcul Community-1 CoreML: ane, cpu, gpu, sau all |
--num-speakers | Vorbitorul exact cunoscut numără pentru Community-1 | |
--min-speakers | 1 | Numărul minim de vorbitori pentru Community-1 |
--max-speakers | Numărul maxim de vorbitori pentru Community-1 | |
--target-speaker | Înregistrare audio pentru extragerea difuzorului țintă (numai pyannote) | |
--embedding-engine | mlx | Motor de încorporare a boxelor: mlx sau coreml (numai pyannote) |
--vad-filter | Prefiltru cu Silero VAD (numai pyannote) | |
--rttm | Ieșire în format RTTM | |
--json | Ieșire ca JSON | |
--score-against | Fișier RTTM de referință pentru a calcula DER |
Example:
# 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
vorbitor de înglobare
Extragerea unui vector difuzor înglobare din audio.
speech embed-speaker <file> [options]
| Opțiune | Descriere |
|---|---|
<file> | Fișier audio care conține voce difuzor |
--engine | mlx (default) sau coreml pentru WeSpeaker 256-dim; redimnet2 pentru identitatea persistentă CoreML 192-dim. camplusplus pentru CAM++ CoreML 192- dim |
--json | Ieșire ca JSON |
limba-id
Identificați limba vorbită într-un fișier audio.
speech language-id <file> [options]
| Opțiune | Descriere |
|---|---|
<file> | Fișier audio de clasificat |
--engine | Motor de inferență: mlx sau coreml |
--model | Suprascrieți ID-ul modelului Hugging Face |
--top | Numărul de candidați la limbi clasificate |
--json | Ieșirea rezultatului ca JSON |
speech language-id recording.wav --top 5
speech language-id recording.wav --engine coreml --json
denoise
Se elimină zgomotul de fond care utilizează DeepFilterNet3 la Neural Engine.
speech denoise <file> [options]
| Opțiune | Implicit | Descriere |
|---|---|---|
<file> | Fișier audio de intrare | |
--output, -o | input_clean.wav | Calea fișierului de ieșire |
--model, -m | HuggingFace model ID |
Example:
speech denoise noisy-recording.wav -o clean.wav
compune
Generează 30 de s de muzică dintr-un text prompt folosind MAGNET pe MLX.
speech compose <prompt> [options]
| Opțiune | Implicit | Descriere |
|---|---|---|
<prompt> | Text care descrie cu promptitudine muzica de generat (de exemplu "Happy rock") | |
--output, -o | magnet.wav | Ieșire WAV cale (32 kHz mono) |
--variant | small-int4 | Model de variantă: small-int4, small-int8, medium-int4, sau medium-int8. Rezolvații la aufklarer/MAGNeT-{Small,Medium}-30secs-MLX-{4,8}bit. |
--temperature | 3.0 | Temperatura de prelevare a probelor, anunată liniar pe etapă. |
--top-p | 0.9 | Prag de eșantionare Nucleus. |
--cfg-max | 10.0 | Coeficientul maxim de ghidare fără clasificare. |
--cfg-min | 1.0 | Coeficientul CFG min (atins în paralel cu programul de masca). |
--steps | 20,10,10,10 | Iterații de decodare separate de comă pe codebook (4 valori). |
--seed | Semințe aleatoare pentru producția reproductibilă. |
Example:
# 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
transcriere-batch
Transcrieți un director de fișiere audio; modelul este încărcat o dată.
speech transcribe-batch <input-dir> [options]
| Opțiune | Implicit | Descriere |
|---|---|---|
<input-dir> | Dosarul fișierelor audio de transcris (WAV, FLAC, etc.) | |
--output-dir | Dosarul de ieșire pentru transcrieri | |
--engine | qwen3 | ASR motor (aceleaşi valori ca transcris) |
--jsonl | Rezultate de ieșire ca linii JSON, unul per fișier |
restabilește
Restaurarea discursului (denoise + dereverb) cu Sidon CoreML, 48 kHz ieșire.
speech restore <audio-file> [options]
| Opțiune | Implicit | Descriere |
|---|---|---|
--output, -o | input_restored.wav | Ieșire WAV calea fișierelor (48 kHz) |
--variant | fp16 | Varianta preciziei/pachetului |
--compute-units | Core ML pentru ambele etape: ane, gpu, cpu, toate (default: vocoder gpu, predictor auto) |
separate
Separați o piesă muzicală în tulpini (vocale, tobe, bas, altele).
speech separate <input> [options]
| Opțiune | Implicit | Descriere |
|---|---|---|
--stems | vocals,drums,bass,other | Tulpini de extras: vocal, tobe, bas, altele |
--engine | umx | Motor: umx (default) sau htdemucs (calitate superioară) |
--output-dir | Dosarul de ieșire pentru transcrieri |
Eșantionul de creștere
Super-rezoluție audio cu FlashSR bază distilată audioSR, ieșire 48 kHz.
speech upsample <audio-file> [options]
| Opțiune | Implicit | Descriere |
|---|---|---|
--output, -o | hr.wav | Ieșire WAV calea fișierelor (48 kHz) |
--variant | int4 | Varianta preciziei/pachetului |
--seed | Semințe pentru rezultate deterministe |
qwen3-tts-coreml
Swift suportă 0.6B/256 și 1.7B/1024 pachete; 0.6B rămâne implicit.Experimental 1.7B pachet implicit la CPU și necesită un 2048-canal pregătit Float32 .npy difuzor înglobare prin --speaker-embedding. GPU/ANE și iOS validare rămâne separată.
speech qwen3-tts-coreml "<text>" [options]
| Opțiune | Implicit | Descriere |
|---|---|---|
--output, -o | output.wav | Ieșire WAV calea fișierului |
--language | english | Limba de ieșire |
--model | Hugging Face model ID | |
--model-directory | — | Model local compilat; are prioritate față de descărcarea --model. |
--speaker-embedding | — | Preparate Float32 .npy difuzor care se potrivesc cu lățimea modelului (1024 sau 2048). |
vibevoice
Text-to-speech with Microsoft VibeVoice (MLX).
speech vibevoice "<text>" --voice-cache <cache> [options]
| Opțiune | Implicit | Descriere |
|---|---|---|
--voice-cache, -v | Cache vocal de la Vibevoice-code-voce (necesar) | |
--steps | Etapele de deducție DPM-Solver (mai ridicate = o calitate mai bună) | |
--cfg | 1.3 | Rezistența de ghidare fără classifier |
--long-form | Sinteza cu formă lungă pentru texte lungi |
Vibevoice-code-voice
Ment un Cache voce VibeVoice de la o înregistrare de referință plus transcriere.
speech vibevoice-encode-voice <input> "<transcript>" [options]
| Opțiune | Implicit | Descriere |
|---|---|---|
<input> | Fișier audio de referință | |
<transcript> | Transcriptul audio de referință (numai în limba engleză) | |
--output, -o | Cache-ul vocal de ieșire (.securizare) |
traduce
Tradu textul într-o limbă țintă cu MADLAD-400 (MLX).
speech translate "<text>" --to <lang> [options]
| Opțiune | Implicit | Descriere |
|---|---|---|
--to, -t | Codul lingvistic al țintei (ISO 639-1, de exemplu es, zh, ja) | |
--stream | Jetoane Stream ca acestea decodează | |
--model | Hugging Face model ID |
clef
Alegeți din răspunsurile permise folosind Clef-flash local pe Apple Silicon. Previzualizare de dezvoltare.
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 Cererea conține text în state și un array comandat questions. Fiecare câmp are o hartă id și type: choice cu un choices hartă, noul pentru adevărat/fals, sau score cu nivele ordonate levels.Ieșirea este JSON cu probabilități, răspunsuri selectate, număr de token, timp de încărcare model și timp de decizie.
În mod implicit, comanda descărcări aufklarer/Clef-flash-9B-MLX-4bit. Utilizați --model-dir pentru fișierele existente sau --offline pentru cache. Limita de token se aplică la 4096 și acceptă 1izare16384. A se vedea ghidul Clef pentru o cerere completă și utilizarea de memorie măsurată.
planor
Clasificarea de text cu condiţie schematică şi entitatea se întinde pe GLiNER2.5-Decide (MLX). Previzualizare de dezvoltare: nu încă într-o versiune. Setează textul pentru a citi stdin.
speech gliner classify "<text>" --labels <a,b,c> [options]
speech gliner extract "<text>" --labels <a,b,c> [options]
| Opțiune | Implicit | Descriere |
|---|---|---|
--variant | int8 | Greutăți publicate pentru descărcare: fp32, fp16 sau int8 |
--model | Hugging Face suprascrierea depozitului | |
--model-dir | Dosar model local în loc de descărcare | |
--labels | Etichete candidate separate de comă (1 - 255, distincte) | |
--description | Descrierea etichetei ca etichetă=text; repetabil | |
--task | acţiune | Numele de sarcină în schema promptă (numai clasă) |
--threshold | 0.5 | Scor minim de interval (numai extras) |
--evaluate-layers | Evaluează straturile de codor unu la un moment dat pentru a reduce memoria vârfului | |
--json | JSON cu fiecare probabilitate, sau se întinde cu UTF-16 offset-uri, plus calendarul |
avatar-motion
Generează NVIDIA Audio2Face-3D avatar-motion coeficient rames from speech audio.
speech avatar-motion <input> [options]
| Opțiune | Implicit | Descriere |
|---|---|---|
--output, -o | avatar-motion.jsonl | Calea fișierului JSONL de ieșire |
--model | …James-MLX | Pachetul de identitate Avatar (James implicit; Claire și Mark disponibile) |
--verbose | Print time and frame count |
MOSS-TTS-Nano
Utilizarea --voice-sample pentru clonarea vocii; nu este necesară transcrierea de referință. Referințele mono sunt duplicate la stereo, reincluse la 48 kHz și căptușite la o limită de 80 ms. Codați o dată și refolosiți codurile sale la toate cererile.
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-model | aufklare/MOSS-TTS-Nano-100M-CoreML | Dosarul de depozit model sau dosarul local |
--moss-nano-compute-units | cpu | cpu sau gpu |
--moss-nano-max-frames | 300 | Rame maxime de 80 ms; EOS naturale necesare |
--moss-nano-seed | 0 | Seminţe reproducabile Swift |
Inference locală nativă
Pentru 12B, markerii de închidere a apelului de instrument adiacenti repetati imediat dupa un apel complet, validat sunt consumati cu acel apel. Ei nu creeaza un alt apel sau isi schimba argumentele. Markerii si argumentele malformate raman erori; E4B retine manipularea stricta.
Pentru a păstra cereri de chat native eșuate, set failureCaptureDirectory în manifestul de inferență. Capture este oprit în mod implicit. Directorul trebuie să refuze grupul și alte acces; noi directoare folosesc 0700 și utilizarea de fișiere de eșec 0600. Fișierele includ organismul de cerere exactă, ID-ul cererii și eroarea. Generațiile de 12B finalizate păstrează, de asemenea, prompte, ID-uri token, producția brută și motiv de oprire înainte de parsare. E4B eșecurile nu au înregistrări de generație brută. Aceste fișiere locale conțin conținut conversație și instrumente; erorile HTTP și cererile de succes nu le includ.
Agent opţionalÎncarcă un model de text în etape Gemma 4 12B Unificat INT4 alături de E4B. Utilizaţi modelul: "gemma4-12b-it" pentru chat cu instrumente native, istorie a rezultatelor şi anulare. E4B rămâne disponibil pentru alte cereri. Gemma4UnifiedChat utilizează termenul de apelare cu ajutorul unui dispozitiv cu clapetă MLX text implementat şi eliberat fiecare cerere de tip KV cache.Răspunsul elimină delimitatorii canalului de la textul returnat.
Sursa construiește acceptă --inference-manifest modele.json pentru a încărca înscenat Gemma 4 E4B INT4, VoxCPM2, plin Whisper Large-v3, și Silero VAD. Acest serviciu începe offline și respinge identitățile de model incompatibile.
speech-server --inference-manifest models.json --port 8080Voxtral TTS
Voxtral 4B TTS 2603 ruleaza local pe Apple Silicon prin modulul VotralTTSS: 20 voci prestabilite, nouă limbi, și 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.wavDoar vocile presetate; clonarea de referință-audio nu este disponibilă. Fluxuri de ieșire audio prin SDK, CLI, WebSocket și HTTP PCM. Furnizarea textului complet de intrare în față. Greutate model de utilizare CC BY-NC 4.0.
Fish Audio Drama 3
Suport experimental nativ MLX pentru Drama 3 este disponibil prin FishAudioDrama3Model. A 35B hibrid-attention MoE coloana vertebrală, turn audio temporal și codec DAC de pește produce 44.1 kHz mono audio. Punctul de control 4-bit a trecut forma de undă și controale independente ASR pentru generarea numai text, clonarea de referință și CLI pe M5 Pro. 8 și BF16 rămân nevalidate.
Modul de memorie balanced este implicit. Lidle MLX tampoanele sunt degresate peste 512 MiB la limitele de etapă; aceasta nu este o limită totală-memorie. Limitele de alocator global rămân neschimbate. Selectați --fish-drama3-memory-mode unrestricted sau memoryOptions: .unrestricted pentru încărcarea dornică și comportamentul anterior de caching.
Generaţia unică de text amână 794.4 MiB de greutăţi de codor de referinţă. Primele sarcini de codare de referinţă şi le păstrează, astfel încât să păstreze codec.safetensors disponibile până atunci. Codurile de referinţă precomputate nu au nevoie de codor.
Furnizați text complet de intrare. Clonarea vocală necesită un clip de referință și transcrierea exactă a acestuia. Tag-uri difuzor 0–15 și emoțiile de linie sunt susținute. PCM streaming este disponibil prin generateStreaming, generateStream şi --stream. Bucata implicita contine rame de codec 3, despre 139 ms de audio. Intrarea automată de text de lungă durată și streamed ZX0. Atingerea limitei de cadru aruncă o eroare.
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.wavimport 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))| Opțiune | Implicit |
|---|---|
--fish-drama3-model-id | mlx-community/fish-audio-drama-3-4bit |
--fish-drama3-bundle-dir | — |
--fish-drama3-reference-text | — |
--fish-drama3-max-frames | 2048 |
--fish-drama3-temperature | 1 |
--fish-drama3-top-k | 30 |
--fish-drama3-top-p | 0.9 |
--voice-sample | — |
--seed | 0 |
--stream | false |
--fish-drama3-chunk-frames | 3 |
--fish-drama3-memory-mode | balanced |
Construit cu Fish Audio. Bundles păstrează licenţa comunitară şi NOTACE.