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).

BreezeTTS · CLI · Swift API

speech speak "The quick brown fox jumps over the lazy dog." --engine breeze \
  --instruct "A clear, calm English narrator." --stream -o design.wav
  • --breeze-model-id: aufklarer/Breeze-TTS-2-MLX-8bit
  • --breeze-bundle-dir
  • --breeze-cache-limit-mib: 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).

Utilizzo Swift e CLI

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

Il 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]
OpzionePredefinitoDesignazione
<file>File audio da trascrivere (WAV, M4A e MP3)
--engineqwen3Motore ASR: qwen3, qwen3-coreml, parakeet, nemotron, omnilingual, cohere, voxtral, moss, whisper
--model, -m0.6BModello 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-tokensCoreML: 512
MLX: 5120
[moss] Token di trascrizione massimi generati.
--kv-cachefp16[moss mlx] Precisione dinamica del KV-cache: fp16 o int8.
--languageSuggerimento linguistico (opzionale, ignorato da omnilingual)
--window10[omnilingual] CoreML dimensione della finestra in secondi: 5 o 10
--backendcoreml[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.
--variant300M[omnilingual mlx] Dimensioni: 300M, 1B, 3B, o 7B
--bits4[omnilingual mlx] bit di quantizzazione: 4 o 8
--streamAbilitare la trascrizione di streaming con VAD
--max-segment10Durata massima del segmento in secondi (streaming)
--partialEmettere 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]
OpzionePredefinitoDesignazione
<file>File audio
--text, -tTesto da allineare (se omesso, trascrive prima)
--model, -m0.6BASR modello per la trascrizione: 0.6B, 1.7B o ID completo
--aligner-modelID modello allineatore forzato
--languageSuggerimenti 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]
OpzionePredefinitoDesignazione
<text>Testo da sintetizzare (facoltativo se si utilizza --batch-file
--engineqwen3Motore TTS: qwen3, cosyvoice, voxcpm2, indextts2, f5, higgs, breeze, indic-mio, magpie, o magpie-coreml, moss-nano, fireredtts3, moss-voicegenerator
--output, -ooutput.wavUscita WAV percorso file
--languageenglishLingua. Omettere di usare il dialetto nativo dell'altoparlante quando --speaker è impostato.
--streamAttivare la sintesi di streaming
--voice-sampleAudio di riferimento per clonazione vocale (opera con qwen3, cosyvoice, voxcpm2, f5, higgse indextts2)
--verboseMostra informazioni dettagliate sulla tempistica

Qwen3-TTS Opzioni

OpzionePredefinitoDesignazione
--modelbaseVariazione del modello: base, customVoice o full HF model ID
--speakerVoce nominale (richiesto --model customVoice)
--instructIstruzioni di stile (modello vocale personalizzato)
--list-speakersElenco diffusori disponibili e uscita
--temperature0.3Temperatura di campionamento
--top-k50Campionamento Top-k
--max-tokens500Token massimi (500 = ~40 audio)
--batch-fileFile con un testo per riga per sintesi batch
--batch-size4Dimensione max lotto per generazione parallela
--first-chunk-frames3Cornici Codec in primo chunk in streaming
--chunk-frames25Cornici in codice per pezzo in streaming

Opzioni CosyVoice3

OpzionePredefinitoDesignazione
--speakersMapping per il dialogo multi-altoparlante: s1=alice.wav,s2=bob.wav
--cosy-instructIstruzioni di stile (overrides default). Controlla lo stile vocale per CosyVoice3.
--turn-gap0.2Il silenzio tra dialogo si trasforma in secondi
--crossfade0.0Crossfade sovrapposizione tra giri in secondi
--model-idID modello HuggingFace

VoxCPM2

OpzionePredefinitoDesignazione
--voxcpm2-variantbf16Variante di quantizzazione: bf16, int8, o int4. Sostiene a aufklarer/VoxCPM2-MLX-<variant>.
--voxcpm2-instructDescrizione vocale in lingua naturale (progetto vocale), ad esempio "una giovane donna, calda e gentile"
--voxcpm2-ref-audioFile audio di riferimento per clonazione (16 kHz mono, rivenditampled internamente).
--voxcpm2-prompt-audio / --voxcpm2-prompt-textCoppia "Ultimate cloning" — clip di riferimento + la sua trascrizione per clonazione di conservazione della prosodia.
--voxcpm2-cfg-value2.0Scala di guida senza classificazione per il campione di diffusione.
--voxcpm2-timesteps10Passi del risolutore Euler per patch audio generata.
--voxcpm2-max-tokens2000Max ha generato le patch prima di fermarsi forzato.
--voxcpm2-min-tokens2Le macchie di min prima che la testa di arresto è permesso di sparare.
--seedSeed 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.

OpzionePredefinitoDesignazione
--indextts2-model-idaufklarer/IndexTTS2-MLX-fp16HuggingFace model ID. Predefiniti per aufklarer/IndexTTS2-MLX-fp16.
--indextts2-bundle-dirCaricare un bundle locale espanso invece di scaricare da Hugging Face.
--indextts2-emotion-audioAudio di riferimento opzionale emozione/stile. Defaults al riferimento del diffusore.
--indextts2-emotionVettore di emozione preimpostato opzionale o 8-value. Preimpostazioni includono eager, happy, excitede calm.
--indextts2-emotion-weight1.0Scale --indextts2-emotion; mantenere modesta quando l'identità dell'altoparlante è importante.
--indextts2-speaking-rate1.0Moltiplicatore a tasso di voce da 0.5 a 1.5; i valori sopra 1.0
--indextts2-max-pauseTappo opzionale per lunghe pause interne a bassa energia, in pochi secondi.
--indextts2-s2mel-steps15S2Mel passi di flusso (default 15, auricolare valutato; 25 partite a monte esattamente)

F5-TTS Opzioni

OpzionePredefinitoDesignazione
--f5-reference-textTrascrizione di riferimento: il contenuto di testo di --voice-sample (richiesto)
--f5-steps16Passi di misurazione del flusso (default 16; 32 per la massima fedeltà)
--f5-cfg-strength2.0Forza di guida senza classificatori
--f5-sway-1.0Coefficiente di campionamento
--f5-speed1.0Moltiplicatore a tasso parlante
--f5-seed0Semi per produzione deterministica
--f5-target-rms0.1Obiettivo di normalizzazione RMS di riferimento
--f5-model-idHugging Face
--f5-bundle-dirCarica un pacchetto da questa directory locale

Higgs TTS 3 Opzioni

OpzionePredefinitoDesignazione
--higgs-ref-textTrascrizione di riferimento: il contenuto di testo di --voice-sample (migliori clonazione)
--higgs-temperature0.8Temperatura di campionamento (default 0.8)
--higgs-top-pSoglia di campionamento Nucleus (fuori per impostazione predefinita)
--higgs-top-kTaglio di campionamento Top-k (fuori per impostazione predefinita)
--higgs-max-new-tokens2048Cornici audio generati massimi (25 al secondo)
--higgs-seed0Semi per produzione deterministica
--higgs-model-idHugging Face
--higgs-bundle-dirCarica 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.

OpzionePredefinitoDesignazione
--magpie-variantint4Solo 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-speakersofiaAltoparlante al forno: sofia, aria, jason, leo, o john. L'identità è coerente in tutte le lingue 9 e in entrambi i backend.
--magpie-temperature0.6Temperatura di campionamento (0 = avidità). Utilizzare 0.6 per il giapponese — l'avidità si blocca sulla prima frase.
--magpie-top-k80Filtro in alto per il campionamento.
--magpie-max-frames500Tappo rigido su cornici codec (~23 s).
--magpie-min-frames4Cornici minimi prima di EOS consentito.
--magpie-prephonemizedTrattare l'ingresso come IPA / fonemi stream; saltare per lingua G2P.
--list-speakersStampare 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.

Attuazione (PR #541): main

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.

OpzionePredefinitoDesignazione
--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-steps10Passi di flusso per patch acustica.
--fireredtts3-max-patches400Cappello 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-frames750Cappello di generazione; raggiungerlo prima che il completamento aumenti un errore.
--moss-voicegenerator-chunk-frames3Cornici codec completi per PCM chunk (1–32).
--seed2 / 42Seme 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]
OpzionePredefinitoDesignazione
<text>Testo per sintetizzare
--voiceaf_heartPreimpostazione vocale (50 disponibile in 10 lingue)
--languageenCodice linguistico: en, es, fr, hi, it, ja, pt, zh, ko, de
--output, -okokoro_output.wavUscita WAV percorso file
--list-voicesElenca tutte le voci e le uscite disponibili
--model, -mID 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]
OpzionePredefinitoDesignazione
--input, -iImmissione audio WAV file (24kHz mono) (richiesto)
--output, -oresponse.wavRisposta in uscita WAV file
--voiceNATM0Preimpostazione vocale (ad esempio NATM0, NATF1, VARF0)
--system-promptassistantPreset: assistant, focused, customer-service, teacher
--system-prompt-textTesto del prompt del sistema personalizzato (overrides preset)
--max-steps200Passi di generazione massima a 12,5Hz (~16s)
--streamEmettere pezzi audio durante la generazione
--compileAttiva trasformatore compilato (calore + fusione del kernel)
--list-voicesElenco preset vocali disponibili
--list-promptsElenca le impostazioni preimpostate del prompt del sistema disponibili
--transcriptStampa il testo interno monologo del modello
--jsonUscita come JSON (trascrizione, latenza, percorso audio)
--verboseMostra informazioni dettagliate sulla tempistica

Overrides di campionamento

OpzionePredefinitoDesignazione
--audio-temp0.8Temperatura di campionamento audio
--text-temp0.7Temperatura di campionamento del testo
--audio-top-k250Audio candidati top-k
--repetition-penalty1.2Pena di ripetizione audio (1.0 = disabilitato)
--text-repetition-penalty1.2Pena di ripetizione del testo (1.0 = disabilitato)
--repetition-window30Finestra di penalità in cornici
--silence-early-stop15Silenziamento cornici prima della prima fermata (0 = disabilitato)
--entropy-threshold0Soglia di entropia di testo per arresto precoce (0 = disabilitato)
--entropy-window10Passi 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]
OpzionePredefinitoDesignazione
--model, -maufklarer/VoiceChat-11B-Perception-MLX-int5Hugging Face
--revisionmainRevisione del mozzo.
--system-promptOverride il prompt del sistema.
--mcp-configConfigurazione di Provider-neutral JSON per server utensili MCP
--mcp-servertutti configuratiSelezionare un server configurato; ripetere per selezionare di più.
--mcp-write-policyallowPolitica di scrittura: immediata allow, modello-mediato confirm, o deny
--mcp-timeout-seconds15MCP timeout di registrazione degli strumenti; l'avvio del server consente almeno 60 secondi.
--greetChiedi al modello di salutare prima.
--no-aecDisattivare la cancellazione dell'eco acustico Apple.
--no-transcriptDisattivare le didascalie degli utenti RNN-T dal vivo.
--no-rnnt-turn-takingDisabilita NVIDIA RNN-T turn-taking fallback di sicurezza.
--prebuffer-frames380 ms frame di uscita tamponati prima della riproduzione.
--max-buffered-frames8Massima coda 80 ms microfoniera prima che l'audio stante venga abbandonato.
--max-secondsSmettere di catturare dal vivo dopo questo molti secondi.
--inputLeggere un file audio invece del microfono.
--output, -oScrivere il testo completo 22.05 kHz WAV.
--tail-seconds6Silenzio aggiunto dopo l'ingresso del file.
--force-turn-at-endForza BOS al file EOF; test di regressione solo.
--plainUtilizzare l'uscita di sola append invece del cruscotto arrotondato fisso.
--debug-timelineMostra la frase relativa e generati-pronuncia-end timestamps più gli eventi del ciclo di vita decoded tool-call.
--terminal-width120Larghezza del display del terminale.
--temperature0Temperatura di testo; 0 è avido.
--text-top-p1Testo in alto.
--guidance0.2Forza di guida EAR-TTS.
--speech-top-p0.95EAR-TTS top-p.
--speech-noise0.001EAR-TTS rumore di campionamento.
--speech-iterations8EAR-TTS MaskGIT iterations per frame.
--realtime-speech-iterations2Bilancio di ridefinizione vocale intermedio utilizzato per proteggere la velocità in tempo reale; sovraccarico grave utilizza un passo.
--live-speech-context-seconds20La 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]
OpzionePredefinitoDesignazione
<input>Fonte audio WAV file (mono, rivendita effettuata internamente a 24 kHz) (richiesto)
--output, -otranslated.wavUscita 24 kHz Inglese WAV file
--source-langfrSuggerimento 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.
--quantization4bitVariante: 4bit (~2.7 GB) o 8bit (~3.9 GB)
--model-idHuggingFace modello id override (precede la precedenza su --quantization)
--compileEseguire il passaggio di riscaldamento del trasformatore temporale prima di tradurre
--verboseStampa per-fase ( Mimi codificare, generazione, Mimi
--transcriptStampare gli ID di token SPM (il cablaggio di decodifica SPM è un follow-up)

Variabili dell'ambiente

VariabileEffetti
HIBIKI_GREEDY=1Forza decodifica argmax per testo + audio di destinazione. Riproducibile — utilizzato dai canari CI rigorosi.
HIBIKI_MODEL_IDOverride 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]
OpzioneDesignazione
<file>File audio per analizzare
--model, -mID modello HuggingFace
--onsetSoglia di insorgenza (inizio di prua)
--offsetSoglia di offset (speech end)
--min-speechDurata minima del discorso in pochi secondi
--min-silenceDurata minima del silenzio in pochi secondi
--jsonUscita 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]
OpzioneDesignazione
<file>File audio per analizzare
--engineVAD: mlx (default) o coreml
--model, -mHuggingFace model ID (auto-selezionato dal motore)
--onsetSoglia d'arresto
--offsetSoglia di offset
--min-speechDurata minima del discorso in pochi secondi
--min-silenceDurata minima del silenzio in pochi secondi
--jsonUscita come JSON
--smart-turnConfermare ogni pausa con Smart Turn
--turn-thresholdSoglia di completamento Smart Turn (default 0.5)
--turn-max-silenceSecondi 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]
OpzioneDesignazione
<file>File audio con un'unica volta utente (qualsiasi tasso di campionamento); gli ultimi 8 s sono utilizzati
--thresholdProbabilità a o sopra la quale il giro conta come completo (default 0.5
--model, -mHuggingFace model ID. Predefiniti per aufklarer/Smart-Turn-v3.2-CoreML
--model-dirdirectory locale che tiene smart_turn.mlmodelc e config.json; salta il download
--jsonUscita 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]
OpzioneDesignazione
<file>File audio per analizzare
--keywordsFormati: "hey soniqo" (greedy BPE), "hey soniqo:0.15:0.5" (con soglia/boost), o "LIGHT UP|▁ L IGHT ▁UP:0.25:2.0"
--keywords-fileParola chiave, una voce per riga (stessa sintassi come --keywords); # per i commenti
--model, -mHuggingFace model ID. Predefiniti per aufklarer/KWS-Zipformer-3M-CoreML-INT8
--jsonUscita 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]
OpzionePredefinitoDesignazione
<file>File audio per analizzare
--enginepyannoteMotore di di diarizzazione: pyannote, community1 ( CoreML + nativo PLDA/VBx), sortformer o nemotron3
--nemotron3-backendcoremlNemotron 3 backend: coreml o mlx
--nemotron3-directoryFascio di modello locale opzionale Nemotron 3
--nemotron3-compute-unitsaneUnità di calcolo CoreML: ane, cpu, gpu, o all
--community1-compute-unitsaneUnità di elaborazione Community-1 CoreML: ane, cpu, gpu, o all
--num-speakersContatore preciso noto per Community-1
--min-speakers1Conto minimo di altoparlanti per Community-1
--max-speakersConto massimo del diffusore per Community-1
--target-speakerIscrizioni audio per l'estrazione di altoparlante target (solo piannota)
--embedding-enginemlxMotore di embedding del diffusore: mlx o coreml (solo in piannota)
--vad-filterPrefiltro con Silero VAD (solo per piannota)
--rttmUscita in formato RTTM
--jsonUscita come JSON
--score-againstReferenza 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]
OpzioneDesignazione
<file>File audio contenente voce dell'altoparlante
--enginemlx (default) o coreml per WeSpeaker 256-dim; redimnet2 per l'identità persistente CoreML 192-dim; camplusplus per CAM++ CoreML 192-dim
--jsonUscita come JSON

lingua-id

Identificare la lingua parlata in un file audio.

speech language-id <file> [options]
OpzioneDesignazione
<file>File audio per classificare
--engineMotore di inferenza: mlx o coreml
--modelOverride the Hugging Face model ID
--topNumero di candidati di lingua classificata
--jsonUscita 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]
OpzionePredefinitoDesignazione
<file>File audio di input
--output, -oinput_clean.wavPercorso file di uscita
--model, -mID 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]
OpzionePredefinitoDesignazione
<prompt>Testo che descrive la musica da generare (ad esempio "happy rock")
--output, -omagnet.wavUscita WAV percorso (32 kHz mono)
--variantsmall-int4Modello variante: small-int4, small-int8, medium-int4, o medium-int8. Sostiene a aufklarer/MAGNeT-{Small,Medium}-30secs-MLX-{4,8}bit.
--temperature3.0Temperatura di campionamento, ricotto linearmente per fase.
--top-p0.9Soglia di campionamento del nucleo.
--cfg-max10.0Coefficiente di guida privo di classificazione max.
--cfg-min1.0Coefficiente minimo di CFG (annealed accanto al programma di maschera).
--steps20,10,10,10Iterazioni di decodifica separate per codebook (4 valori).
--seedSemi 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]
OpzionePredefinitoDesignazione
<input-dir>Elenco dei file audio da trascrivere ( WAV, FLAC, ecc.)
--output-dirdirectory di output per le trascrizioni
--engineqwen3ASR motore (valori uguali come trascrizione)
--jsonlRisultati 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]
OpzionePredefinitoDesignazione
--output, -oinput_restored.wavUscita WAV percorso file (48 kHz)
--variantfp16Precisione / variante del fascio
--compute-unitsCore 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]
OpzionePredefinitoDesignazione
--stemsvocals,drums,bass,otherStems da estrarre: voci, tamburi, basso, altro
--engineumxMotore: umx (default) o htdemucs (alta qualità)
--output-dirdirectory di output per le trascrizioni

upsample

Super-risoluzione audio con FlashSR — AudioSR distillato a un passo, uscita 48 kHz.

speech upsample <audio-file> [options]
OpzionePredefinitoDesignazione
--output, -ohr.wavUscita WAV percorso file (48 kHz)
--variantint4Precisione / variante del fascio
--seedSemi 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]
OpzionePredefinitoDesignazione
--output, -ooutput.wavUscita WAV percorso file
--languageenglishLingua di uscita
--modelHugging 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]
OpzionePredefinitoDesignazione
--voice-cache, -vcache vocale da vibevoice-encode-voice (richiesto)
--stepsPassi di inferenza DPM-Solver (più alta = migliore qualità)
--cfg1.3Forza di guida senza classificatori
--long-formSintesi 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]
OpzionePredefinitoDesignazione
<input>File audio di riferimento
<transcript>Trascrizione dell'audio di riferimento (solo in inglese)
--output, -ocache vocale in uscita (.safetensors)

tradurre

Traduci il testo in una lingua di destinazione con MADLAD-400 (MLX).

speech translate "<text>" --to <lang> [options]
OpzionePredefinitoDesignazione
--to, -tCodice di lingua di destinazione (ISO 639-1, ad esempio, es, zh, ja)
--streamToken di streaming come decodificano
--modelHugging 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 4096

La 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]
OpzionePredefinitoDesignazione
--variantint8Pubblicato pesi da scaricare: fp32, fp16 o int8
--modelHugging Face
--model-dirDirectory di modelli locali invece di scaricare
--labelsEtichette di candidato separate da un compagno (1 a 255, distinte)
--descriptionDescrizione dell'etichetta come etichetta=text; ripetibile
--taskazioneNome dell'attività nel prompt degli schemi (classificare solo)
--threshold0.5Punteggio minimo della campata (solo extra)
--evaluate-layersValutare gli strati di encoder uno alla volta per abbassare la memoria di picco
--jsonJSON 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]
OpzionePredefinitoDesignazione
--output, -oavatar-motion.jsonlUscita percorso file JSONL
--model…James-MLXFascio di identità Avatar (predefinito James; Claire e Mark disponibili)
--verboseStampa 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-modelaufklarer/MOSS-TTS-Nano-100M-CoreMLRepositore di modello o directory locale
--moss-nano-compute-unitsC'e' un problema.cpu o gpu
--moss-nano-max-frames300Telaio massimo 80 ms; EOS naturale richiesto
--moss-nano-seed0Riproducibile Swift seme di campionamento

MOSS-TTS-Nano

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 8080

Dettagli API

Voxtral 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.wav

Solo 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.

Leggi la guida Voxtral TTS

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.wav
import FishAudioTTS
let model = try await FishAudioDrama3Model.fromBundle(bundleURL, memoryOptions: .balanced)
let pcm = try await model.generate(text: "Hello from Drama 3.", options: .init(seed: 42))
OpzionePredefinito
--fish-drama3-model-idmlx-community/fish-audio-drama-3-4bit
--fish-drama3-bundle-dir—
--fish-drama3-reference-text—
--fish-drama3-max-frames2048
--fish-drama3-temperature1
--fish-drama3-top-k30
--fish-drama3-top-p0.9
--voice-sample—
--seed0
--streamfalse
--fish-drama3-chunk-frames3
--fish-drama3-memory-modebalanced

Costruito con Fish Audio. Bundles conservano la Licenza Comunitaria e AVVISO.

4-bit benchmark