Traduzione automatica · Originale inglese
Riferimento CLI
Breeze TTS 2 · Breeze TTS
Inglese/cinese TTS con design vocale, clonazione di riferimento e direzione, e audio streamed (MLX BF16/8-bit, 24 kHz; ricerca/ licenza non commerciale).
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: Opzionale processo-wide riutilizzabile MLX cache budget in MiB; 0 disabilita il 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
Tempo di esecuzione nativo di Apple · PocketTTS
PocketTTS aggiunge la sintesi vocale nativo CoreML a speech-swift. Tutte le fasi di default all'esecuzione della CPU. I flussi preimpostati di Alba inglese 1,920-sample frame a 24 kHz (80 ms per frame).
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-speakersIl comando speech è il punto di ingresso per l'elaborazione locale del discorso.
Installare con Homebrew
Su Apple Silicon con macOS 15 o più recente, installare il CLI utilizzando Homebrew:
brew install speech
speech --help
Per aggiornare un'installazione esistente, eseguire brew upgrade speech
Alternativa: costruire da fonte
In un controllo speech-swift, eseguire make build, quindi utilizzare .build/release/speech . Vedi la guida Getting Started per i prerequisiti e le istruzioni per il costruzione sorgente.
trascrizione
Trascrivere file audio al testo.
speech transcribe <file> [options]
| Opzione | Predefinito | Designazione |
|---|---|---|
<file> | File audio da trascrivere (WAV, M4A e MP3) | |
--engine | qwen3 | Motore ASR: qwen3, qwen3-coreml, parakeet, nemotron, omnilingual, cohere, voxtral, moss, whisper |
--model, -m | 0.6B | Modello variante: 0.6B, 1.7B, o completo HuggingFace modello ID (solo qwen3) [whisper]: default, turbo, o completo CoreML HuggingFace repo ID.[cohere/voxtral]: INT5 (default), INT8, FP16 o un ID del modello Hugging Face oppure una directory locale. [moss coreml]: int8 (default) o fp16; [moss mlx]: int5 (default) o int8. MOSS accetta anche un ID repository Hugging Face compatibile o directory locale. |
--max-tokens | CoreML: 512MLX: 5120 | [moss] Token di trascrizione massimi generati. |
--kv-cache | fp16 | [moss mlx] Precisione dinamica del KV-cache: fp16 o int8. |
--language | Suggerimento linguistico (opzionale, ignorato da omnilingual) | |
--window | 10 | [omnilingual] CoreML dimensione della finestra in secondi: 5 o 10 |
--backend | coreml | [omnilingual/moss] Backend: coreml (Neural Engine) o mlx (Metal GPU). MOSS MLX fornisce una dinamica 131,072-considerando; MOSS CoreML utilizza un fisso 1,024- lo stato. |
--variant | 300M | [omnilingual mlx] Dimensioni: 300M, 1B, 3B, o 7B |
--bits | 4 | [omnilingual mlx] bit di quantizzazione: 4 o 8 |
--stream | Abilitare la trascrizione di streaming con VAD | |
--max-segment | 10 | Durata massima del segmento in secondi (streaming) |
--partial | Emettere risultati parziali durante il discorso (streaming) |
Esemplari:
# 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
allineare
Allineamento forzato di livello di parola — ottenere timestamp precisi per ogni parola.
speech align <file> [options]
| Opzione | Predefinito | Designazione |
|---|---|---|
<file> | File audio | |
--text, -t | Testo da allineare (se omesso, trascrive prima) | |
--model, -m | 0.6B | ASR modello per la trascrizione: 0.6B, 1.7B o ID completo |
--aligner-model | ID modello allineatore forzato | |
--language | Suggerimenti linguistici |
Esemplari:
# 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?"
parlare
Sintesi del testo-speech.
speech speak "<text>" [options]
| Opzione | Predefinito | Designazione |
|---|---|---|
<text> | Testo da sintetizzare (facoltativo se si utilizza --batch-file | |
--engine | qwen3 | Motore TTS: qwen3, cosyvoice, voxcpm2, indextts2, f5, higgs, breeze, indic-mio, magpie, o magpie-coreml, moss-nano, fireredtts3, moss-voicegenerator |
--output, -o | output.wav | Uscita WAV percorso file |
--language | english | Lingua. Omettere di usare il dialetto nativo dell'altoparlante quando --speaker è impostato. |
--stream | Attivare la sintesi di streaming | |
--voice-sample | Audio di riferimento per clonazione vocale (opera con qwen3, cosyvoice, voxcpm2, f5, higgse indextts2) | |
--verbose | Mostra informazioni dettagliate sulla tempistica |
Qwen3-TTS Opzioni
| Opzione | Predefinito | Designazione |
|---|---|---|
--model | base | Variazione del modello: base, customVoice o full HF model ID |
--speaker | Voce nominale (richiesto --model customVoice) | |
--instruct | Istruzioni di stile (modello vocale personalizzato) | |
--list-speakers | Elenco diffusori disponibili e uscita | |
--temperature | 0.3 | Temperatura di campionamento |
--top-k | 50 | Campionamento Top-k |
--max-tokens | 500 | Token massimi (500 = ~40 audio) |
--batch-file | File con un testo per riga per sintesi batch | |
--batch-size | 4 | Dimensione max lotto per generazione parallela |
--first-chunk-frames | 3 | Cornici Codec in primo chunk in streaming |
--chunk-frames | 25 | Cornici in codice per pezzo in streaming |
Opzioni CosyVoice3
| Opzione | Predefinito | Designazione |
|---|---|---|
--speakers | Mapping per il dialogo multi-altoparlante: s1=alice.wav,s2=bob.wav | |
--cosy-instruct | Istruzioni di stile (overrides default). Controlla lo stile vocale per CosyVoice3. | |
--turn-gap | 0.2 | Il silenzio tra dialogo si trasforma in secondi |
--crossfade | 0.0 | Crossfade sovrapposizione tra giri in secondi |
--model-id | ID modello HuggingFace |
VoxCPM2
| Opzione | Predefinito | Designazione |
|---|---|---|
--voxcpm2-variant | bf16 | Variante di quantizzazione: bf16, int8, o int4. Sostiene a aufklarer/VoxCPM2-MLX-<variant>. |
--voxcpm2-instruct | Descrizione vocale in lingua naturale (progetto vocale), ad esempio "una giovane donna, calda e gentile" | |
--voxcpm2-ref-audio | File audio di riferimento per clonazione (16 kHz mono, rivenditampled internamente). | |
--voxcpm2-prompt-audio / --voxcpm2-prompt-text | Coppia "Ultimate cloning" — clip di riferimento + la sua trascrizione per clonazione di conservazione della prosodia. | |
--voxcpm2-cfg-value | 2.0 | Scala di guida senza classificazione per il campione di diffusione. |
--voxcpm2-timesteps | 10 | Passi del risolutore Euler per patch audio generata. |
--voxcpm2-max-tokens | 2000 | Max ha generato le patch prima di fermarsi forzato. |
--voxcpm2-min-tokens | 2 | Le macchie di min prima che la testa di arresto è permesso di sparare. |
--seed | Seed MLX RNG prima della sintesi (deterministica attraverso le piste). |
IndexTTS2
IndexTTS2 è un motore a zero-shot a voce-cloning sostenuto da un fascio MLX espanso. Richiede --voice-sample e attualmente gestisce solo la sintesi dei lotti.
| Opzione | Predefinito | Designazione |
|---|---|---|
--indextts2-model-id | aufklarer/IndexTTS2-MLX-fp16 | HuggingFace model ID. Predefiniti per aufklarer/IndexTTS2-MLX-fp16. |
--indextts2-bundle-dir | Caricare un bundle locale espanso invece di scaricare da Hugging Face. | |
--indextts2-emotion-audio | Audio di riferimento opzionale emozione/stile. Defaults al riferimento del diffusore. | |
--indextts2-emotion | Vettore di emozione preimpostato opzionale o 8-value. Preimpostazioni includono eager, happy, excitede calm. | |
--indextts2-emotion-weight | 1.0 | Scale --indextts2-emotion; mantenere modesta quando l'identità dell'altoparlante è importante. |
--indextts2-speaking-rate | 1.0 | Moltiplicatore a tasso di voce da 0.5 a 1.5; i valori sopra 1.0 |
--indextts2-max-pause | Tappo opzionale per lunghe pause interne a bassa energia, in pochi secondi. | |
--indextts2-s2mel-steps | 15 | S2Mel passi di flusso (default 15, auricolare valutato; 25 partite a monte esattamente) |
F5-TTS Opzioni
| Opzione | Predefinito | Designazione |
|---|---|---|
--f5-reference-text | Trascrizione di riferimento: il contenuto di testo di --voice-sample (richiesto) | |
--f5-steps | 16 | Passi di misurazione del flusso (default 16; 32 per la massima fedeltà) |
--f5-cfg-strength | 2.0 | Forza di guida senza classificatori |
--f5-sway | -1.0 | Coefficiente di campionamento |
--f5-speed | 1.0 | Moltiplicatore a tasso parlante |
--f5-seed | 0 | Semi per produzione deterministica |
--f5-target-rms | 0.1 | Obiettivo di normalizzazione RMS di riferimento |
--f5-model-id | Hugging Face | |
--f5-bundle-dir | Carica un pacchetto da questa directory locale |
Higgs TTS 3 Opzioni
| Opzione | Predefinito | Designazione |
|---|---|---|
--higgs-ref-text | Trascrizione di riferimento: il contenuto di testo di --voice-sample (migliori clonazione) | |
--higgs-temperature | 0.8 | Temperatura di campionamento (default 0.8) |
--higgs-top-p | Soglia di campionamento Nucleus (fuori per impostazione predefinita) | |
--higgs-top-k | Taglio di campionamento Top-k (fuori per impostazione predefinita) | |
--higgs-max-new-tokens | 2048 | Cornici audio generati massimi (25 al secondo) |
--higgs-seed | 0 | Semi per produzione deterministica |
--higgs-model-id | Hugging Face | |
--higgs-bundle-dir | Carica un pacchetto da questa directory locale |
Opzioni Magpie
NVIDIA Magpie-TTS multilingue 357M, lingue 9 con altoparlanti da forno 5. --engine magpie (MLX, default) o --engine magpie-coreml (CoreML per i grandi modelli con MLX che guida le incorporazioni audio LocalTransformer +). Guida di Magpie per la completa ripartizione G2P per lingua. La clonazione vocale non è supportata: --voice-sample, --speakere --instruct sono respinti con un errore utile a indicare --magpie-speaker Invece.
| Opzione | Predefinito | Designazione |
|---|---|---|
--magpie-variant | int4 | Solo MLX. Quantizzazione: int4 (247 MB) o int8 (411 MB). Risostituisce a aufklarer/Magpie-TTS-Multilingual-357M-MLX-<variant>. Il motore CoreML utilizza il fascio INT8 CoreML e ignora questa bandiera. |
--magpie-speaker | sofia | Altoparlante al forno: sofia, aria, jason, leo, o john. L'identità è coerente in tutte le lingue 9 e in entrambi i backend. |
--magpie-temperature | 0.6 | Temperatura di campionamento (0 = avidità). Utilizzare 0.6 per il giapponese — l'avidità si blocca sulla prima frase. |
--magpie-top-k | 80 | Filtro in alto per il campionamento. |
--magpie-max-frames | 500 | Tappo rigido su cornici codec (~23 s). |
--magpie-min-frames | 4 | Cornici minimi prima di EOS consentito. |
--magpie-prephonemized | Trattare l'ingresso come IPA / fonemi stream; saltare per lingua G2P. | |
--list-speakers | Stampare i 5 diffusori al forno e uscire. |
caveats magpie-coreml: il NanoCodec in bundle è tracciato in una finestra fissa 64-frame, quindi --stream è respinta. --language ja auto-rotoli al MLX backend con una nota di stderr (il CoreML bundle non spedisce ancora attività di tokenizer JA). CoreML motore pigro-carica il MLX bundle sulla prima sintesi per guidare il LocalTransformer e le embedding audio medi; la distribuzione Pure-CoreML viene tracciata come un follow-up.
Esemplari:
# 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
Istruzione TTS
Sperimentale: Costruire il supporto SDK nativo dalla fonte principale. Homebrew e altre versioni CLI precostruite potrebbero non includere ancora questi motori.
Pubblicato MLX fasci: aufklarer/FireRedTTS3-Instruct-MLX-fp32 · aufklarer/MOSS-VoiceGenerator-MLX-bf16
Fornire un argomento di testo, --instruct, e esattamente una directory di bundle o un ID modello compatibile.
Ogni campo di testo e istruzioni è limitato a 32.768 byte UTF-8. Il prompt completo di ingresso reso, compreso il suo modello, deve essere inserito entro 4.096 token.
FireRedTTS3-Instruct mantiene il modello Float32 e i pesi decoder. restituisce l'audio bufferizzato: omit --stream. Gli alias --language sono accettati. Un limite di generazione solleva un errore invece di restituire il successo troncato.
MOSS-VoiceGenerator mantiene BF16 i pesi linguistici e il codice di sintesi FP32. Utilizzare --stream per PCM incrementale. Omit --language e mettere i requisiti linguistici in --instruct
Le misure a breve termine descrivono la configurazione testata; la certificazione di latenza esistente rimane inconcludente.
| Opzione | Predefinito | Designazione |
|---|---|---|
--fireredtts3-bundle-dir | — | Fascio esportato locale compatibile; scegliere questo o l'opzione modello-ID. |
--fireredtts3-model-id | — | Pubblicato compatibile MLX bundle ID; scegliere questa o una directory locale. |
--fireredtts3-flow-steps | 10 | Passi di flusso per patch acustica. |
--fireredtts3-max-patches | 400 | Cappello di generazione; raggiungerlo prima che il completamento aumenti un errore. |
--moss-voicegenerator-bundle-dir | — | Fascio esportato locale compatibile; scegliere questo o l'opzione modello-ID. |
--moss-voicegenerator-model-id | — | Pubblicato compatibile MLX bundle ID; scegliere questa o una directory locale. |
--moss-voicegenerator-max-frames | 750 | Cappello di generazione; raggiungerlo prima che il completamento aumenti un errore. |
--moss-voicegenerator-chunk-frames | 3 | Cornici codec completi per PCM chunk (1–32). |
--seed | 2 / 42 | Seme di richiesta: FireRedTTS3 default a 2; MOSS-VoiceGenerator a 42. |
FireRedTTS3-Instruct · MOSS-VoiceGenerator
Kokoro
Testo-speech leggero utilizzando Kokoro-82M su Neural Engine (CoreML). Non-autoregressivo — singolo passo avanti, ~45ms latenza.
speech kokoro "<text>" [options]
| Opzione | Predefinito | Designazione |
|---|---|---|
<text> | Testo per sintetizzare | |
--voice | af_heart | Preimpostazione vocale (50 disponibile in 10 lingue) |
--language | en | Codice linguistico: en, es, fr, hi, it, ja, pt, zh, ko, de |
--output, -o | kokoro_output.wav | Uscita WAV percorso file |
--list-voices | Elenca tutte le voci e le uscite disponibili | |
--model, -m | ID modello HuggingFace |
Esemplari:
# 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
rispondere
Dialogo vocale-speech completo con PersonaPlex 7B.
speech respond [options]
| Opzione | Predefinito | Designazione |
|---|---|---|
--input, -i | Immissione audio WAV file (24kHz mono) (richiesto) | |
--output, -o | response.wav | Risposta in uscita WAV file |
--voice | NATM0 | Preimpostazione vocale (ad esempio NATM0, NATF1, VARF0) |
--system-prompt | assistant | Preset: assistant, focused, customer-service, teacher |
--system-prompt-text | Testo del prompt del sistema personalizzato (overrides preset) | |
--max-steps | 200 | Passi di generazione massima a 12,5Hz (~16s) |
--stream | Emettere pezzi audio durante la generazione | |
--compile | Attiva trasformatore compilato (calore + fusione del kernel) | |
--list-voices | Elenco preset vocali disponibili | |
--list-prompts | Elenca le impostazioni preimpostate del prompt del sistema disponibili | |
--transcript | Stampa il testo interno monologo del modello | |
--json | Uscita come JSON (trascrizione, latenza, percorso audio) | |
--verbose | Mostra informazioni dettagliate sulla tempistica |
Overrides di campionamento
| Opzione | Predefinito | Designazione |
|---|---|---|
--audio-temp | 0.8 | Temperatura di campionamento audio |
--text-temp | 0.7 | Temperatura di campionamento del testo |
--audio-top-k | 250 | Audio candidati top-k |
--repetition-penalty | 1.2 | Pena di ripetizione audio (1.0 = disabilitato) |
--text-repetition-penalty | 1.2 | Pena di ripetizione del testo (1.0 = disabilitato) |
--repetition-window | 30 | Finestra di penalità in cornici |
--silence-early-stop | 15 | Silenziamento cornici prima della prima fermata (0 = disabilitato) |
--entropy-threshold | 0 | Soglia di entropia di testo per arresto precoce (0 = disabilitato) |
--entropy-window | 10 | Passi a basso contenuto d'entropia persecutiva prima della prima fermata |
Esemplari:
# 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
Conversazione full-duplex live con Soniqo, alimentata da NVIDIA Nemotron VoiceChat 11B. La modalità microfonia consente a Apple AEC, lo streaming di capzioni RNN-T, metriche in tempo reale orientate all'uomo, l'adaptive catch 8→2→1-step, e la ridefinizione aronizzazione dell'ingresso limitato
speech voice-chat [options]
| Opzione | Predefinito | Designazione |
|---|---|---|
--model, -m | aufklarer/VoiceChat-11B-Perception-MLX-int5 | Hugging Face |
--revision | main | Revisione del mozzo. |
--system-prompt | Override il prompt del sistema. | |
--mcp-config | Configurazione di Provider-neutral JSON per server utensili MCP | |
--mcp-server | tutti configurati | Selezionare un server configurato; ripetere per selezionare di più. |
--mcp-write-policy | allow | Politica di scrittura: immediata allow, modello-mediato confirm, o deny |
--mcp-timeout-seconds | 15 | MCP timeout di registrazione degli strumenti; l'avvio del server consente almeno 60 secondi. |
--greet | Chiedi al modello di salutare prima. | |
--no-aec | Disattivare la cancellazione dell'eco acustico Apple. | |
--no-transcript | Disattivare le didascalie degli utenti RNN-T dal vivo. | |
--no-rnnt-turn-taking | Disabilita NVIDIA RNN-T turn-taking fallback di sicurezza. | |
--prebuffer-frames | 3 | 80 ms frame di uscita tamponati prima della riproduzione. |
--max-buffered-frames | 8 | Massima coda 80 ms microfoniera prima che l'audio stante venga abbandonato. |
--max-seconds | Smettere di catturare dal vivo dopo questo molti secondi. | |
--input | Leggere un file audio invece del microfono. | |
--output, -o | Scrivere il testo completo 22.05 kHz WAV. | |
--tail-seconds | 6 | Silenzio aggiunto dopo l'ingresso del file. |
--force-turn-at-end | Forza BOS al file EOF; test di regressione solo. | |
--plain | Utilizzare l'uscita di sola append invece del cruscotto arrotondato fisso. | |
--debug-timeline | Mostra la frase relativa e generati-pronuncia-end timestamps più gli eventi del ciclo di vita decoded tool-call. | |
--terminal-width | 120 | Larghezza del display del terminale. |
--temperature | 0 | Temperatura di testo; 0 è avido. |
--text-top-p | 1 | Testo in alto. |
--guidance | 0.2 | Forza di guida EAR-TTS. |
--speech-top-p | 0.95 | EAR-TTS top-p. |
--speech-noise | 0.001 | EAR-TTS rumore di campionamento. |
--speech-iterations | 8 | EAR-TTS MaskGIT iterations per frame. |
--realtime-speech-iterations | 2 | Bilancio di ridefinizione vocale intermedio utilizzato per proteggere la velocità in tempo reale; sovraccarico grave utilizza un passo. |
--live-speech-context-seconds | 20 | La storia recente di EAR-TTS conservata in modalità live; 0 mantiene la storia completa. |
Esemplari:
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
Con MCP abilitato, modello-nativo chiamata JSON e restituito strumento-response token uso NVIDIAIl percorso di funzione asincrono bifase su un silenzio in cache incorporato. Non c'è un router di trascrizione, un matcher di espressione regolare, una bozza di promemoria di stato, una riparazione di argomenti o una risposta di assistente scritta: il checkpoint sceglie da solo uno strumento e i suoi argomenti. Il coordinatore convalida solo il nativo JSON, applica la politica di lettura/scrittura, esegue il selezionato MCP funzionamento, e restituisce i risultati strutturati attraverso il canale di funzione addestrato. allow politica, rimuovendo il secondo turno di conferma dalla demo dei promemoria; una scrittura completa identica è ancora soppressa fino al discorso dell'utente fresco. confirm solo quando la conferma mediata dal modello è esplicitamente voluta, o deny I comandi MCP vengono eseguiti localmente con il filesystem e le autorizzazioni applicative dell'utente corrente, quindi utilizzare solo i file di configurazione e i pacchetti server di fiducia.
La percezione del microfono e le didascalie RNN-T continuano tra i gradini del modello, mentre l'esterno MCP I/O funziona in un'attività separata. Le regioni del microfono che portano il segnale acustico catturate mentre la cache della funzione condivisa è occupata vengono mantenute come embedding valutati e riprodotte causalmente dopo il risultato, quindi un follow-up non è più scartato. Il gioco è limitato ad una vecchia cornice semantica per il callback dal vivo; il nuovo frame corrispondente rimane in coda, il testo di riproduzione è costretto a PAD, e già in coda. MCP gita rotonda, e sincronizzazione della cache dei risultati dei risultati. Le linee di decodifica e di risultato mostrano il modello/la computazione cache plus live interleave, il residuo utilizzato dall'attore produce, contabilità e contention del sistema; audio di primo piano RTF Una volta aperta una chiamata, il canale di testo forzato-PAD salta la sua inutilizzata proiezione full-vocabulary. Dopo EOTC, il percorso bifase blocca la lingua condivisa e la timeline EAR-TTS mentre il risultato esterno è in attesa; i frame del microfono rimangono in tensione per la percezione e RNN-T ma non diventano posizioni sintetiche del PAD prima del risultato. 16-token blocchi causali-prefill. Il loop live legge un'istantanea di funzione coerente e uno MCP ogni istantanee 160 ms invece di fare diverse chiamate attore dopo ogni fotogramma del microfono. 40-frame RNN-T fallback di sicurezza, mentre un candidato di strumento nativo già proposto può commettere dopo otto frame vuoti. I canali di testo e funzione condividono ancora una cache Nemotron-H, così coerente discorso climatizzato dei risultati inizia solo dopo la chiusura della risposta della funzione; il discorso di assistente arbitrario non può tranquillamente funzionare come secondo futuro causale in parallelo.
Una pulita M5 Pro 48 Profilo di rilascio GB misurato 3.56–4.00 secondi dalla fine del discorso al primo discorso post-tool autorizzato del modello per tre fraseggi promemoria-list con un fisso 200 ms provider. Decodifica JSON nativo usato 27–31 passi in 1.15–1.28 secondi, e un 67-token risultato sincronizzato in 0.58–0.72 secondi. Con un fornitore deliberatamente lento di due secondi, il lavoro del microfono durante l'attesa è rimasto 19.6 ms p95 e 19.8 ms massimo. Una corsa pulita finale misurata 118 ms microfono-servizio p95 e 139 ms p95 latenza oltre il 80 ms acquisizione scadenze. Il fornitore aggiunge quindi la latenza di risposta senza blocco cattura; il limite di calcolo rimanente è decodifica chiamate nativo più rigioco di risultati in cache condiviso.
La demo in bundle espone solo list_reminders, create_remindere update_reminder; la scoperta dell'elenco rimane adattatore-privato. Un promemoria appiattito letto copre ogni lista EventKit e sostituisce UUID del fornitore lungo con riferimenti stabili e a giroscopio come r1. Gli aggiornamenti restituiscono uno di quei riferimenti a modello-visibile, e l'adattatore lo risolve esattamente prima dell'esecuzione; non corrisponde mai ai nomi o al testo trascritto.Gli aggiornamenti e le priorità frazionarie non vengono rifiutati piuttosto che segnalati come cambiamenti di successo. 67 passi nativi / 5.25 secondi con un UUID realistico a 37 passi / su 2.29 secondi con r1. Create richiede solo un nome mentre i default dei provider opzionali rimangono facoltativi. Il frontend in streaming RNN-T utilizza l'imbottitura di riflessione compatibile con NeMo ai bordi delle finestre di rotolamento invece di imbottitura zero.
La modalità file è il percorso riproducibile senza hardware. --force-turn-at-end è solo per i test di regressione controllati e non deve essere segnalato come latenza naturale di turn-taking.
audio-traslato
Streaming della traduzione vocale-to-speech utilizzando Kyutai Hibiki Zero-3B. FR / ES / PT / DE → EN, singolo binario, nessuna nuvola. Guida completa →
speech audio-translate <input.wav> [options]
| Opzione | Predefinito | Designazione |
|---|---|---|
<input> | Fonte audio WAV file (mono, rivendita effettuata internamente a 24 kHz) (richiesto) | |
--output, -o | translated.wav | Uscita 24 kHz Inglese WAV file |
--source-lang | fr | Suggerimento della lingua di origine (fr, es, pt, de). Auto-detected; solo metadati. FR + ES sono i canari rigidi E2E; PT + DE sono i migliori-effort. |
--quantization | 4bit | Variante: 4bit (~2.7 GB) o 8bit (~3.9 GB) |
--model-id | HuggingFace modello id override (precede la precedenza su --quantization) | |
--compile | Eseguire il passaggio di riscaldamento del trasformatore temporale prima di tradurre | |
--verbose | Stampa per-fase ( Mimi codificare, generazione, Mimi | |
--transcript | Stampare gli ID di token SPM (il cablaggio di decodifica SPM è un follow-up) |
Variabili dell'ambiente
| Variabile | Effetti |
|---|---|
HIBIKI_GREEDY=1 | Forza decodifica argmax per testo + audio di destinazione. Riproducibile — utilizzato dai canari CI rigorosi. |
HIBIKI_MODEL_ID | Override the default aufklarer/Hibiki-Zero-3B-MLX-4bit repo at runtime. |
Esemplari:
# 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.
Rilevamento di attività vocale offline con segmentazione Pyannote
speech vad <file> [options]
| Opzione | Designazione |
|---|---|
<file> | File audio per analizzare |
--model, -m | ID modello HuggingFace |
--onset | Soglia di insorgenza (inizio di prua) |
--offset | Soglia di offset (speech end) |
--min-speech | Durata minima del discorso in pochi secondi |
--min-silence | Durata minima del silenzio in pochi secondi |
--json | Uscita come JSON |
a valle
Rilevamento dell'attività vocale in streaming con Silero VAD v5. Elabora il discorso in 32ms chunks.
speech vad-stream <file> [options]
| Opzione | Designazione |
|---|---|
<file> | File audio per analizzare |
--engine | VAD: mlx (default) o coreml |
--model, -m | HuggingFace model ID (auto-selezionato dal motore) |
--onset | Soglia d'arresto |
--offset | Soglia di offset |
--min-speech | Durata minima del discorso in pochi secondi |
--min-silence | Durata minima del silenzio in pochi secondi |
--json | Uscita come JSON |
--smart-turn | Confermare ogni pausa con Smart Turn |
--turn-threshold | Soglia di completamento Smart Turn (default 0.5) |
--turn-max-silence | Secondi di silenzio dopo una pausa vetoed che terminano comunque il segmento (default 2.0 |
turno
Rilevamento di fine turno con Smart Turn v3.2 (8M params, CoreML, lingue 23). PuÃ2 l'ultimo 8 s di un'enunciazione registrata e stampa la probabilità che l'altoparlante ha finito, il verdetto completo / incompleto, e il tempo di inferenza.
speech turn <file> [options]
| Opzione | Designazione |
|---|---|
<file> | File audio con un'unica volta utente (qualsiasi tasso di campionamento); gli ultimi 8 s sono utilizzati |
--threshold | Probabilità a o sopra la quale il giro conta come completo (default 0.5 |
--model, -m | HuggingFace model ID. Predefiniti per aufklarer/Smart-Turn-v3.2-CoreML |
--model-dir | directory locale che tiene smart_turn.mlmodelc e config.json; salta il download |
--json | Uscita come 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
Sveglia
On-device wake-word / parole chiave spotting utilizzando il KWS Zipformer (3.49M params, CoreML INT8, 26× in tempo reale, solo inglese).
speech wake <file> [options]
| Opzione | Designazione |
|---|---|
<file> | File audio per analizzare |
--keywords | Formati: "hey soniqo" (greedy BPE), "hey soniqo:0.15:0.5" (con soglia/boost), o "LIGHT UP|▁ L IGHT ▁UP:0.25:2.0" |
--keywords-file | Parola chiave, una voce per riga (stessa sintassi come --keywords); # per i commenti |
--model, -m | HuggingFace model ID. Predefiniti per aufklarer/KWS-Zipformer-3M-CoreML-INT8 |
--json | Uscita come 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
Diarizzazione del relatore — identificare chi ha parlato quando.
speech diarize <file> [options]
| Opzione | Predefinito | Designazione |
|---|---|---|
<file> | File audio per analizzare | |
--engine | pyannote | Motore di di diarizzazione: pyannote, community1 ( CoreML + nativo PLDA/VBx), sortformer o nemotron3 |
--nemotron3-backend | coreml | Nemotron 3 backend: coreml o mlx |
--nemotron3-directory | Fascio di modello locale opzionale Nemotron 3 | |
--nemotron3-compute-units | ane | Unità di calcolo CoreML: ane, cpu, gpu, o all |
--community1-compute-units | ane | Unità di elaborazione Community-1 CoreML: ane, cpu, gpu, o all |
--num-speakers | Contatore preciso noto per Community-1 | |
--min-speakers | 1 | Conto minimo di altoparlanti per Community-1 |
--max-speakers | Conto massimo del diffusore per Community-1 | |
--target-speaker | Iscrizioni audio per l'estrazione di altoparlante target (solo piannota) | |
--embedding-engine | mlx | Motore di embedding del diffusore: mlx o coreml (solo in piannota) |
--vad-filter | Prefiltro con Silero VAD (solo per piannota) | |
--rttm | Uscita in formato RTTM | |
--json | Uscita come JSON | |
--score-against | Referenza RTTM file per calcolare DER |
Esemplari:
# 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
Estrarre un vettore di incorporazione dell'altoparlante dall'audio.
speech embed-speaker <file> [options]
| Opzione | Designazione |
|---|---|
<file> | File audio contenente voce dell'altoparlante |
--engine | mlx (default) o coreml per WeSpeaker 256-dim; redimnet2 per l'identità persistente CoreML 192-dim; camplusplus per CAM++ CoreML 192-dim |
--json | Uscita come JSON |
lingua-id
Identificare la lingua parlata in un file audio.
speech language-id <file> [options]
| Opzione | Designazione |
|---|---|
<file> | File audio per classificare |
--engine | Motore di inferenza: mlx o coreml |
--model | Override the Hugging Face model ID |
--top | Numero di candidati di lingua classificata |
--json | Uscita del risultato come JSON |
speech language-id recording.wav --top 5
speech language-id recording.wav --engine coreml --json
denoising
Rimuovere il rumore di fondo utilizzando DeepFilterNet3 su Neural Engine
speech denoise <file> [options]
| Opzione | Predefinito | Designazione |
|---|---|---|
<file> | File audio di input | |
--output, -o | input_clean.wav | Percorso file di uscita |
--model, -m | ID modello HuggingFace |
Esempio:
speech denoise noisy-recording.wav -o clean.wav
composizione
Generare 30 s di musica da un prompt di testo utilizzando MAGNeT su MLX.
speech compose <prompt> [options]
| Opzione | Predefinito | Designazione |
|---|---|---|
<prompt> | Testo che descrive la musica da generare (ad esempio "happy rock") | |
--output, -o | magnet.wav | Uscita WAV percorso (32 kHz mono) |
--variant | small-int4 | Modello variante: small-int4, small-int8, medium-int4, o medium-int8. Sostiene a aufklarer/MAGNeT-{Small,Medium}-30secs-MLX-{4,8}bit. |
--temperature | 3.0 | Temperatura di campionamento, ricotto linearmente per fase. |
--top-p | 0.9 | Soglia di campionamento del nucleo. |
--cfg-max | 10.0 | Coefficiente di guida privo di classificazione max. |
--cfg-min | 1.0 | Coefficiente minimo di CFG (annealed accanto al programma di maschera). |
--steps | 20,10,10,10 | Iterazioni di decodifica separate per codebook (4 valori). |
--seed | Semi casuali per l'uscita riproducibile. |
Esemplari:
# 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
trascrizione-batch
Trascrivere una directory di file audio; il modello viene caricato una volta.
speech transcribe-batch <input-dir> [options]
| Opzione | Predefinito | Designazione |
|---|---|---|
<input-dir> | Elenco dei file audio da trascrivere ( WAV, FLAC, ecc.) | |
--output-dir | directory di output per le trascrizioni | |
--engine | qwen3 | ASR motore (valori uguali come trascrizione) |
--jsonl | Risultati di output come linee JSON, uno per file |
restaurare
Ripristinare il discorso (denoise + dereverb) con Sidon — CoreML, uscita 48 kHz.
speech restore <audio-file> [options]
| Opzione | Predefinito | Designazione |
|---|---|---|
--output, -o | input_restored.wav | Uscita WAV percorso file (48 kHz) |
--variant | fp16 | Precisione / variante del fascio |
--compute-units | Core ML posizionamento per entrambe le fasi: ane, gpu, cpu, all (default: vocoder gpu, predittore auto) |
separato
Separare una traccia musicale in fusti (voce, tamburi, basso, altro).
speech separate <input> [options]
| Opzione | Predefinito | Designazione |
|---|---|---|
--stems | vocals,drums,bass,other | Stems da estrarre: voci, tamburi, basso, altro |
--engine | umx | Motore: umx (default) o htdemucs (alta qualità) |
--output-dir | directory di output per le trascrizioni |
upsample
Super-risoluzione audio con FlashSR — AudioSR distillato a un passo, uscita 48 kHz.
speech upsample <audio-file> [options]
| Opzione | Predefinito | Designazione |
|---|---|---|
--output, -o | hr.wav | Uscita WAV percorso file (48 kHz) |
--variant | int4 | Precisione / variante del fascio |
--seed | Semi per produzione deterministica |
qwen3-tts-coreml
Swift Supporti 0.6B/256 e 1.7B/1024 fasci; 0.6B rimane l'impostazione predefinita. 1.7B pacchetti di default a CPU e richiede un preparato 2048-canale Float32 .npy embedding del diffusore tramite --speaker-embeddingLa convalida GPU/ANE e iOS rimangono separate.
speech qwen3-tts-coreml "<text>" [options]
| Opzione | Predefinito | Designazione |
|---|---|---|
--output, -o | output.wav | Uscita WAV percorso file |
--language | english | Lingua di uscita |
--model | Hugging Face | |
--model-directory | — | Fascio di modello compilato locale; prevale sul download --model. |
--speaker-embedding | — | Preparato Float32 .npy altoparlante incorporato in corrispondenza della larghezza del modello (1024 o 2048). |
Vibevoce
Testo a scelta con Microsoft VibeVoice (MLX).
speech vibevoice "<text>" --voice-cache <cache> [options]
| Opzione | Predefinito | Designazione |
|---|---|---|
--voice-cache, -v | cache vocale da vibevoice-encode-voice (richiesto) | |
--steps | Passi di inferenza DPM-Solver (più alta = migliore qualità) | |
--cfg | 1.3 | Forza di guida senza classificatori |
--long-form | Sintesi a forma lunga per testi lunghi |
vibevoice-encode-voice
Mint a VibeVoice voice cache da una registrazione di riferimento più trascrizione.
speech vibevoice-encode-voice <input> "<transcript>" [options]
| Opzione | Predefinito | Designazione |
|---|---|---|
<input> | File audio di riferimento | |
<transcript> | Trascrizione dell'audio di riferimento (solo in inglese) | |
--output, -o | cache vocale in uscita (.safetensors) |
tradurre
Traduci il testo in una lingua di destinazione con MADLAD-400 (MLX).
speech translate "<text>" --to <lang> [options]
| Opzione | Predefinito | Designazione |
|---|---|---|
--to, -t | Codice di lingua di destinazione (ISO 639-1, ad esempio, es, zh, ja) | |
--stream | Token di streaming come decodificano | |
--model | Hugging Face |
clessidra
Scegliere tra le risposte consentite utilizzando Clef-flash localmente su Apple Silicon. anteprima di sviluppo.
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 4096La richiesta contiene testo in state e un ordine questions array. Ogni campo ha un id e una type: choice con un choices mappa, noul per il vero/falso, o score con ordine levels. L'output è JSON con probabilità, risposte selezionate, conteggio token, tempo di carico del modello e tempo di decisione.
Per impostazione predefinita, i download del comando aufklarer/Clef-flash-9B-MLX-4bit. Uso --model-dir per i file esistenti o --offline per la cache. Il limite di token predefinito a 4096 e accetta 1–16384. Guida di Clef per una richiesta completa e l'uso della memoria misurata.
scintillante
La classificazione del testo e l'entità dello schema si estende con GLiNER2.5-Decide (MLX).Anteprima dello sviluppo: non ancora in un rilascio.
speech gliner classify "<text>" --labels <a,b,c> [options]
speech gliner extract "<text>" --labels <a,b,c> [options]
| Opzione | Predefinito | Designazione |
|---|---|---|
--variant | int8 | Pubblicato pesi da scaricare: fp32, fp16 o int8 |
--model | Hugging Face | |
--model-dir | Directory di modelli locali invece di scaricare | |
--labels | Etichette di candidato separate da un compagno (1 a 255, distinte) | |
--description | Descrizione dell'etichetta come etichetta=text; ripetibile | |
--task | azione | Nome dell'attività nel prompt degli schemi (classificare solo) |
--threshold | 0.5 | Punteggio minimo della campata (solo extra) |
--evaluate-layers | Valutare gli strati di encoder uno alla volta per abbassare la memoria di picco | |
--json | JSON con ogni probabilità, o si estende con gli offset UTF-16, più tempistiche |
avatar-motion
Generare NVIDIA Audio2Face-3D avatar-motion coefficient frames da audio vocale.
speech avatar-motion <input> [options]
| Opzione | Predefinito | Designazione |
|---|---|---|
--output, -o | avatar-motion.jsonl | Uscita percorso file JSONL |
--model | …James-MLX | Fascio di identità Avatar (predefinito James; Claire e Mark disponibili) |
--verbose | Stampa tempistiche e conteggi frame |
MOSS-TTS-Nano
Utilizzare --voice-sample per clonazione vocale; non è necessaria alcuna trascrizione di riferimento. I riferimenti mono sono duplicati a stereo, rivenditampleed a 48 kHz e imbottiti a un limite di 80 ms. codificare un riferimento una volta e riutilizzare i suoi codici attraverso le richieste.
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 | aufklarer/MOSS-TTS-Nano-100M-CoreML | Repositore di modello o directory locale |
--moss-nano-compute-units | C'e' un problema. | cpu o gpu |
--moss-nano-max-frames | 300 | Telaio massimo 80 ms; EOS naturale richiesto |
--moss-nano-seed | 0 | Riproducibile Swift seme di campionamento |
Inferenza locale
Per 12B, i marcatori di chiusura adiacenti ripetuti immediatamente dopo una chiamata completa e validata vengono consumati con tale chiamata. Non creano un'altra chiamata o modificano i suoi argomenti. I marcatori standalone e gli argomenti malformati rimangono errori; E4B mantiene una gestione rigorosa.
Per mantenere le richieste di chat native fallite, impostare failureCaptureDirectory La cattura è disattivata per impostazione predefinita. La directory deve negare il gruppo e l'altro accesso; nuove directory utilizzano 0700 e l'uso di file di guasto 0600. I file includono l'esatto corpo di richiesta, ID di richiesta ed errore. Le generazioni complete di 12B mantengono anche il prompt reso, ID di token, output grezzo e ragione di arresto prima di parsing. I guasti E4B non hanno record di generazione grezza. Questi file locali contengono contenuto di conversazione e strumento; errori HTTP e richieste di successo non includono.
Agenti opzionali La direzione carica un Gemma 4 12B Unificata INT4 modello di testo insieme E4B. Modello d'uso: "gemma4-12b-it" per chattare con strumenti nativi, storia dei risultati e cancellazione. E4B rimane disponibile per altre richieste. Gemma4UnifiedChat utilizza il pinned MLX L'implementazione del testo e rilascia la cache KV di ogni richiesta. La parsing di risposta rimuove i delimitatori del canale dal testo restituito. I terminatori di chiamata degli strumenti orfani vengono rifiutati come risposte malformate.
Le costruzioni di origine accettano --inference-manifest modelli.json per caricare in scena Gemma 4 E4B INT4, VoxCPM2♪ Whisper Large-v3e Silero VAD. Questo servizio inizia offline e rifiuta identità di modello incompatibili.
speech-server --inference-manifest models.json --port 8080Voxtral TTS
Voxtral 4B TTS 2603 funziona localmente su Apple Silicon attraverso il modulo VoxtraLTTS: 20 voci predefinite, nove lingue e 24 kHz monolingua.
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.wavSolo le voci preimpostate; la clonazione audio di riferimento non è disponibile. I flussi di output audio attraverso il SDK, CLI, WebSocket e HTTP PCM. Fornire il testo di input completo sul fronte. I pesi del modello utilizzano CC BY-NC 4.0.
Fish Audio Dramma 3
Il supporto sperimentale MLX nativo per Drama 3 è disponibile attraverso FishAudioDrama3Model. 35B ibrido-attenzione MoE backbone, torre audio temporale e Fish DAC codec produrre 44.1 kHz mono audio. 4-bit checkpoint superato forma d'onda e indipendente ASR controlli per generazione, clonazione di riferimento e uscita CLI su Apple M5 Pro. 8-bit e BF16 rimane invariato.
Modalità di memoria balanced I buffer Idle MLX sono tagliati sopra 512 MiB ai confini della fase; questo non è un limite di memoria totale. --fish-drama3-memory-mode unrestricted o memoryOptions: .unrestricted per il carico impaziente e il comportamento di caching precedente.
Sfiori di generazione di testo 794.4 MiB di pesi di codifica di riferimento. Il primo riferimento codifica carichi e li mantiene, quindi mantenere codec.safetensors disponibili fino ad allora. I codici di riferimento precomputati non hanno bisogno dell'encoder.
Fornisci un testo completo di input. La clonazione vocale richiede una clip di riferimento e la sua trascrizione esatta. 0–15 e le emozioni in linea sono supportate. lo streaming PCM è disponibile attraverso generateStreaming, generateStream e --stream. Il blocco predefinito contiene cornici codec 3, circa ms 139 dell'audio. L'ingresso automatico di testo a lungo testo e a flusso rimane indisponibile. Raggiungere il limite della cornice lancia un errore.
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))| Opzione | Predefinito |
|---|---|
--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 |
Costruito con Fish Audio. Bundles conservano la Licenza Comunitaria e AVVISO.