Maskinöversättning · Engelskt original

CLI-referens

Breeze TTS 2 · Breeze TTS

Engelska/kinesiska TTS med röstdesign, referenskloning och riktning och strömmande ljud (MLX BF16/8-bit, 24 kHz; forskning/icke-kommersiell licens).

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: Optionell processomfattande återanvändbar MLX cachebudget i MiB; 0 inaktiverar cachning.
  • --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

Native Apple runtime · PocketTTS

PocketTTS lägger till infödd CoreML talsyntes till speech-swift. Alla steg som standard för CPU-bara avrättning. Den engelska Alba förinställda strömmar 1,920-provramarna vid 24 kHz (80 ms per ram).

Swift och CLI-användning

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

kommandot speech är ingångspunkten för lokal talbehandling.

Installera med Homebrew

På Apple Silicon med macOS 15 eller nyare, installera CLI med Homebrew:

brew install speech
speech --help

För att uppdatera en befintlig installation, kör brew upgrade speech.

Alternativ: bygg från källa

I en speech-swift kassan, kör make build, använd sedan .build/release/speech . Se Getting Started guide för förutsättningar och källbyggda instruktioner.

transkribera

Transkribera ljudfiler till text.

speech transcribe <file> [options]
AlternativStandardBeskrivning
<file>Ljudfil för att transkribera (WAV, M4A, MP3, CAF)
--engineqwen3ASR motor: qwen3, qwen3-coreml, parakeet, nemotron, omnilingual, cohere, voxtral, moss, whisper
--model, -m0.6BModellvariant: 0.6B, 1.7B, eller full HuggingFace modell ID (qwen3 endast) [whisper]: default, turbo, eller full CoreML HuggingFace repo ID.
[cohere/voxtral]INT5 (standard), INT8, FP16 , en Hugging Face modell ID, eller en lokal katalog. [moss coreml]: int8 (default) eller fp16; [moss mlx]: int5 (default) eller int8MOSS accepterar också ett kompatibelt Hugging Face-registrerings-ID eller lokal katalog.
--max-tokensCoreML: 512
MLX: 5120
[moss] Maximalt genererade transkripttokens.
--kv-cachefp16[moss mlx] Dynamic KV-cache precision: fp16 eller int8.
--languageSpråk tips (valfritt, ignoreras av allmänt)
--window10[omnilingual] CoreML fönsterstorlek på några sekunder: 5 eller 10
--backendcoreml[omnilingual/moss] Backend: coreml (Neural Engine) eller mlx (Metal GPU). MOSS MLX ger en dynamik 131,072-token kontext; MOSS CoreML Använder en fast 1,024Token State.
--variant300M[omnilingual mlx] Storlek: 300M, 1B, = 3B, eller 7B
--bits4[omnilingual mlx] Quantisation bits: 4 eller 8
--streamAktivera streaming transkription med VAD
--max-segment10Maximal segmentlängd på sekunder (streaming)
--partialEmit partiella resultat under tal (streaming)

Exempel:

# Basic transcription
speech transcribe recording.wav

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

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

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

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

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

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

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

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

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

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

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

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

Align

Word-level tvångsjustering - få exakta tidsstämplar för varje ord.

speech align <file> [options]
AlternativStandardBeskrivning
<file>Audio Fil
--text, -tText för att anpassa (om utelämnas, transkriberar först)
--model, -m0.6BASR modell för transkription: 0.6B, 1.7B, eller full ID
--aligner-modelTvingad aligner modell ID
--languageSpråk tips

Exempel:

# 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?"

talar

Text-till-tal syntes.

speech speak "<text>" [options]
AlternativStandardBeskrivning
<text>Text för att syntetisera (tillval om du använder --batch-file)
--engineqwen3TTS motor: qwen3, cosyvoice, voxcpm2, indextts2, f5, higgs, breeze, indic-mio, magpieeller magpie-coreml, moss-nano, fireredtts3, moss-voicegenerator
--output, -ooutput.wavUtgång WAV filväg
--languageenglishSpråk. Omit för att använda högtalarens inhemska dialekt när --speaker är inställd.
--streamMöjlig streaming syntes
--voice-sampleReferens ljud för röst kloning (arbetar med qwen3, cosyvoice, voxcpm2, f5, higgsoch indextts2)
--verboseVisa detaljerad timing info

Qwen3-TTS Alternativ

AlternativStandardBeskrivning
--modelbaseModell variant: base, customVoice, eller full HF-modell ID
--speakerHögtalarröst (kräver --model customVoice)
--instructStilinstruktion (CustomVoice modell)
--list-speakersLista tillgängliga högtalare och exit
--temperature0.3Provtagningstemperatur
--top-k50Top-k sampling
--max-tokens500Maximala tokens (500 = ~40s ljud)
--batch-fileFil med en text per rad för batch syntes
--batch-size4Max batch storlek för parallell generation
--first-chunk-frames3Codec ramar i första strömmade chunk
--chunk-frames25Codec ramar per streamad chunk

CosyVoice3 alternativ

AlternativStandardBeskrivning
--speakersHögtalarkartläggning för dialog med flera högtalare: s1=alice.wav,s2=bob.wav
--cosy-instructStilinstruktion (överskrider standard) kontrollerar röststil för CosyVoice3.
--turn-gap0.2Tystnadsklyftan mellan dialogen vänder på sekunder
--crossfade0.0Crossfade överlappning mellan turer i sekunder
--model-idHuggingFace modell ID

VoxCPM2 Alternativ

AlternativStandardBeskrivning
--voxcpm2-variantbf16Quantization variant: bf16, int8, eller int4. Löser till aufklarer/VoxCPM2-MLX-<variant>.
--voxcpm2-instructNaturligt språklig röstbeskrivning (röstdesign), t.ex. "en ung kvinna, varm och mild".
--voxcpm2-ref-audioReferens ljudfil för kloning (16 kHz mono, återförsäljs internt).
--voxcpm2-prompt-audio / --voxcpm2-prompt-text"Ultimate cloning" par - referensklipp + dess transkript för prosody-bevara kloning.
--voxcpm2-cfg-value2.0Klassificeringsfri vägledning för diffusionsprovtagaren.
--voxcpm2-timesteps10Euler lösare steg per genererad ljud patch.
--voxcpm2-max-tokens2000Max genererade fläckar innan tvångsstopp.
--voxcpm2-min-tokens2Mina fläckar innan stopphuvudet får skjuta.
--seedSeed MLX RNG före syntes (deterministisk över löpningar).

IndexTTS2 Optioner

IndexTTS2 är en noll-shot röstkloningsmotor som backas upp av en utökad MLX bunt. Det kräver --voice-sample och kör för närvarande batch syntes endast.

AlternativStandardBeskrivning
--indextts2-model-idaufklarer/IndexTTS2-MLX-fp16HuggingFace modell ID. Standarder till aufklarer/IndexTTS2-MLX-fp16.
--indextts2-bundle-dirLadda ett lokalt utökat bunt istället för att ladda ner från Hugging Face.
--indextts2-emotion-audioValfria känslor / stil referensljud. Standarder till högtalaren referens.
--indextts2-emotionValfria förinställda eller 8-värde känslor vektor. Förinställningar inkluderar eager, happy, = excited och calm.
--indextts2-emotion-weight1.0Skalor --indextts2-emotion; håll dig blygsam när högtalaridentitet spelar roll.
--indextts2-speaking-rate1.0Speaking-rate multiplikator från 0.5 att 1.5värdena ovan 1.0 är snabbare.
--indextts2-max-pauseValfri cap för långa interna lågenergi pauser, på några sekunder.
--indextts2-s2mel-steps15S2Mel flödessteg (standard 15, öronbegränsad; 25 matcher uppströms exakt)

F5-TTS Alternativ

AlternativStandardBeskrivning
--f5-reference-textReferensutskrift: textinnehållet i --voice-sample (krävs)
--f5-steps16Flödesmatchningssteg (standard 16, 32 för maximal trohet)
--f5-cfg-strength2.0Klassificeringsfri vägledningsstyrka
--f5-sway-1.0Sway sampling koefficient
--f5-speed1.0tal-rate multiplikator
--f5-seed0Frö för deterministisk utgång
--f5-target-rms0.1Referens RMS normaliseringsmål
--f5-model-idHugging Face modell ID
--f5-bundle-dirLadda en bunt från denna lokala katalog

Higgs TTS 3 Alternativ

AlternativStandardBeskrivning
--higgs-ref-textReferensutskrift: textinnehållet i --voice-sample (förbättrar kloning)
--higgs-temperature0.8Provtagningstemperatur (standard 0,8)
--higgs-top-pNucleus provtagning tröskel (av som standard)
--higgs-top-kTop-k sampling cutoff (off by default)
--higgs-max-new-tokens2048Maximalt genererade ljudramar (25 per sekund)
--higgs-seed0Frö för deterministisk utgång
--higgs-model-idHugging Face modell ID
--higgs-bundle-dirLadda en bunt från denna lokala katalog

Magpie Options

NVIDIA Magpie-TTS Multilingual 357M, 9 språk med 5 bakade högtalare. Välj backend med ZX QXZ --engine magpie (MLX, standard) eller --engine magpie-coreml (CoreML för de stora modellerna med MLX som kör LocalTransformer + ljudinbäddningar). Magpie guide för fullständig per-language G2P nedbrytning. Voice Cloning stöds inte: --voice-sample, --speakeroch --instruct förkastas med hjälp av ett fel som pekar på --magpie-speaker I stället.

AlternativStandardBeskrivning
--magpie-variantint4MLX-bara. Kvantisering: int4 (247 MB) int8 (411 MB) löser sig aufklarer/Magpie-TTS-Multilingual-357M-MLX-<variant>CoreML-motorn använder INT8 CoreML bunt och ignorerar denna flagga.
--magpie-speakersofiaBakad högtalare: sofia, aria, jason, leoeller johnIdentitet är konsekvent över alla 9-språk och båda backends.
--magpie-temperature0.6Provtagningstemperatur (0 = girig) Använd 0.6 för japanska - giriga fastnar på den första frasen.
--magpie-top-k80Top-k filter för provtagning.
--magpie-max-frames500Hårddisk på codec-ramar (~23 s).
--magpie-min-frames4Minsta ramar innan EOS tillåts.
--magpie-prephonemizedBehandla inmatning som IPA / telefonme stream; hoppa över G2P per språk.
--list-speakersSkriv ut de 5 bakade högtalarna och utgången.

Magpie-coreml caveats: Den buntade NanoCodec spåras på ett fast 64-ramfönster, så --stream förkastas. --language ja auto-vägar till MLX-backend med en stderr-not (CoreML paketet inte skickar JA-tokenizer-tillgångar ännu). CoreML motor lata-laster MLX bunt på första syntesen för att driva LocalTransformer och genomsnittliga ljudinbäddningar; pure-CoreML-distribution spåras som en uppföljning.

Exempel:

# 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

Instruktion TTS alternativ

Experimental: Bygg infödd SDK stöd från huvudkällan. Homebrew och andra förbyggda CLI-utgåvor kanske inte inkluderar dessa motorer ännu.

Implementering (PR #541): main

Publicerad MLX buntar: aufklarer/FireRedTTS3-Instruct-MLX-fp32 aufklarer/MOSS-VoiceGenerator-MLX-bf16

Ge ett textargument, --instruct, och exakt en bunt katalog eller kompatibel modell ID. Referens ljud, fasta högtalare och batch ingång är ostödda.

Varje text- och instruktionsfält är begränsat till 32.768 UTF-8 byte. Den fullständiga ingångsprompten, inklusive dess mall, måste passa inom 4.096 tokens. Ingångar som överstiger gränsen avvisas.

FireRedTTS3-Instruct behåller Float32 modell och decoder vikter. Det returnerar buffert ljud: omit --stream. engelska och kinesiska --language alias accepteras. En generationsgräns höjer ett fel istället för att returnera truncerad framgång.

MOSS-VoiceGenerator behåller BF16 språkvikter och FP32 synthesis codec. Använd --stream för inkrementell PCM. Omit --language och sätta språkkrav i --instruct. Slutförande dränerar alla sexton kodböcker.

Instruktionsföljande kvalitet är oscored. Kortskriftsmätningar beskriver den testade inställningen; befintlig-modell latens certifiering förblir oavslutande.

AlternativStandardBeskrivning
--fireredtts3-bundle-dir—Kompatibel lokal exporterad bunt; välj det här eller modell-ID alternativet.
--fireredtts3-model-id—Publicerad kompatibel MLX bunt ID; välj den här eller en lokal katalog.
--fireredtts3-flow-steps10Flödessteg per akustisk lapp.
--fireredtts3-max-patches400Generation cap; når den innan slutförandet höjer ett fel.
--moss-voicegenerator-bundle-dir—Kompatibel lokal exporterad bunt; välj det här eller modell-ID alternativet.
--moss-voicegenerator-model-id—Publicerad kompatibel MLX bunt ID; välj den här eller en lokal katalog.
--moss-voicegenerator-max-frames750Generation cap; når den innan slutförandet höjer ett fel.
--moss-voicegenerator-chunk-frames3Komplett codec-ramar per PCM-knapp (1-32).
--seed2 / 42Begär frö: FireRedTTS3 standarder till 2; MOSS-VoiceGenerator till 42.

FireRedTTS3-Instruct MOSS-VoiceGenerator

Kokoro

Lätt text-till-tal med Kokoro-82M på Neural Engine (CoreML). Icke-autoregressivt - enda framåt pass, ~45ms latens.

speech kokoro "<text>" [options]
AlternativStandardBeskrivning
<text>Text för att syntetisera
--voiceaf_heartRöstförinställd (50 tillgängliga på 10 språk)
--languageenSpråkkod: en, es, fr, hi, it, ja, pt, zh, ko, de
--output, -okokoro_output.wavUtgång WAV filväg
--list-voicesLista alla tillgängliga röster och exit
--model, -mHuggingFace modell ID

Exempel:

# 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

svara svara

Full-duplex tal-till-tal dialog med PersonaPlex 7B.

speech respond [options]
AlternativStandardBeskrivning
--input, -iInput audio WAV fil (24kHz mono) (krävs)
--output, -oresponse.wavUtgångsrespons WAV fil
--voiceNATM0Röstförinställd (t.ex. NATM0, NATF1, VARF0)
--system-promptassistantFörinställd: assistant, focused, customer-service, teacher
--system-prompt-textAnpassade system snabb text (överskridande förinställd)
--max-steps200Max generation steg på 12,5 Hz (~16s)
--streamEmit ljud bitar under generation
--compileAktivera sammanställd transformator (warmup + kernel fusion)
--list-voicesLista tillgängliga röstförinställningar
--list-promptsLista tillgängliga system snabb förinställningar
--transcriptSkriv ut modellens inre monologtext
--jsonUtgång som JSON (transcript, latens, ljudväg)
--verboseVisa detaljerad timing info

Sampling Overrides

AlternativStandardBeskrivning
--audio-temp0.8Audio provtagningstemperatur
--text-temp0.7Textprovtagningstemperatur
--audio-top-k250Audio top-k kandidater
--repetition-penalty1.2Repetitionsstraff (1,0 = funktionshindrad)
--text-repetition-penalty1.2Textrepetitionsstraff (1,0 = inaktiverat)
--repetition-window30Repetition strafffönster i ramar
--silence-early-stop15Tystnadsramar före tidigt stopp (0 = inaktiverad)
--entropy-threshold0Tröskelvärdet för textentropi för tidig stopp (0 = inaktiverad)
--entropy-window10Konsekutiva lågentropisteg före tidigt stopp

Exempel:

# 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

Röstchatt

Live full-duplex konversation med Soniqo, drivs av NVIDIA Nemotron VoiceChat 11B. Mikrofonläge möjliggör Apple AEC, streaming RNN-T-kapslingar, human-facing realtidsmätningar, adaptiv 8→2→1-stegs röstrefinement och bunden ingångsresynkronisering istället för en lång tyst catch-up.

speech voice-chat [options]
AlternativStandardBeskrivning
--model, -maufklarer/VoiceChat-11B-Perception-MLX-int5Hugging Face modell ID eller komplett lokal bunt.
--revisionmainHub revision.
--system-promptåsidosätter systemet snabbt.
--mcp-configLeverantörsneutral JSON-konfiguration för MCP verktygsservrar.
--mcp-serveralla konfigureradeVälj en konfigurerad server; upprepa för att välja mer.
--mcp-write-policyallowSkriv policy: omedelbar allow, modellmedierad confirm, eller deny.
--mcp-timeout-seconds15MCP verktygstidsuttag; serverstart tillåter minst 60 sekunder.
--greetFråga modellen att hälsa först.
--no-aecInaktivera Apple akustisk eko avbokning.
--no-transcriptInaktivera RNN-T-användarkaptioner.
--no-rnnt-turn-takingInaktivera NVIDIA RNN-T-svängning av säkerhetsnedgångar.
--prebuffer-frames380 ms output ramar buffrade före uppspelning.
--max-buffered-frames8Maximalt köade 80 ms mikrofonramar innan stal ljud tappas.
--max-secondsSluta live-fånga efter det här många sekunder.
--inputLäs en ljudfil istället för mikrofonen.
--output, -oSkriv hela kontexten 22,05 kHz WAV.
--tail-seconds6Tystnaden appended efter filinmatning.
--force-turn-at-endTvinga BOS på filen EOF; regressionstester endast.
--plainAnvänd endast append-only utgång istället för den fasta redraw instrumentbrädan.
--debug-timelineVisa relativ fras och genererade uttal-slut-tidsstämplar plus avkodade verktyg-samtal livscykel händelser.
--terminal-width120Terminal display bredd.
--temperature0Texttemperatur; 0 är girigt.
--text-top-p1Text top-p.
--guidance0.2EAR-TTS vägledning styrka.
--speech-top-p0.95EAR-TTS top-p.
--speech-noise0.001EAR-TTS provtagningsbuller.
--speech-iterations8EAR-TTS MaskGIT iterationer per ram.
--realtime-speech-iterations2Den mellanliggande röstförädlingsbudgeten som används för att skydda realtidshastigheten; svår överbelastning använder ett steg.
--live-speech-context-seconds20Nyligen bevarade EAR-TTS-historien i live-läge; 0 håller full historia.

Exempel:

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

Med MCP aktiverad, modellinfödda call JSON och returnerade verktygs-respons-tokens användning NVIDIA"S tvåfas asynkron funktionsväg på en cached silence inbäddning. Det finns ingen utskrift router, regelbunden-uttryck matchare, påminnelse utkast till stat, argument reparation eller skript assistent svar: checkpoint ensam väljer ett verktyg och dess argument. Samordnaren validerar endast den infödda JSON, tillämpar läs / skriv politik, exekverar den valda MCP drift, och returnerar strukturerade resultat genom den utbildade funktionskanalen. Skrifter utförs omedelbart under standarden. allow policy, ta bort den andra bekräftelsen vända från påminnelser demo; en identisk färdig skriv är fortfarande undertryckt till ny användar tal. confirm endast när modellmedierad bekräftelse uttryckligen är önskvärd, eller deny För att vägra att skriva. MCP kommandon körs lokalt med den nuvarande användarens filsystem och applikationsbehörigheter, så använd endast betrodda konfigurationsfiler och serverpaket.

Mikrofonuppfattningen och RNN-T-kaptionerna fortsätter mellan modellsteg, medan externa MCP I/O körs i en separat uppgift. Talbärande mikrofonregioner fångade medan den delade funktionen cache är upptagen behålls som utvärderade inbäddningar och återspelas kausalt efter resultatet, så en bildade uppföljning inte längre kasseras. Replay är begränsad till en gammal semantisk ram per live callback; motsvarande ny ram förblir köad, replay text tvingas till PAD, och redan förflutet ljud är aldrig köad till högtalaren. MCP rundtur och verktygsresultat cache synkronisering. Avkodning och resultatlinjer visar modell / cache compute plus live interleave, resten som används av skådespelaren ger, bokföring och systeminnehåll; förgrundsljud RTF åtgärder ingen av det bakgrundsarbetet. När ett samtal är öppet hoppar den tvångs-PAD-textkanalen över sin oanvända full-vocabulary-projektion. Efter EOTC fryser tvåfasvägen det delade språket och EAR-TTS-tidslinjen medan det externa resultatet är pågående; mikrofonramar förblir levande för uppfattning och RNN-T men blir inte syntetiska PAD-positioner före resultatet. 16-token causal-prefill chunks. Den levande loopen läser en sammanhängande funktion snapshot och en MCP Snapshot varje 160 ms istället för att göra flera skådespelare samtal efter varje mikrofon ram. Vanlig konversation behåller 40-frame RNN-T-säkerhetsnedgång, medan en redan föreslagen inhemsk verktygskandidat kan begå efter åtta tomma ramar. Texten och funktionskanalen delar fortfarande en Nemotron-H-cache, så sammanhängande resultat-villkorat tal börjar först efter att funktionsresponsen stängs; godtyckligt assistenttal kan inte säkert köras som en andra kausal framtid parallellt.

En ren M5 Protokoll 48 GB release profil mätt 3.56–4.00 sekunder från slutet av tal till den första modellen-författade post-verktyg tal för tre påminnelse-list fraser med en fast 200 ms leverantör. Native JSON avkodning används 27–31 Steg in 1.15–1.28 sekunder, och en 67-token resultat synkroniserat i 0.58–0.72 sekunder. Med en avsiktligt långsam tvåsekundsleverantör var mikrofonarbetet under väntan kvar. 19.6 ms p95 och 19.8 Ms maximalt. En sista ren kör mätt 118 ms mikrofon-service p95 och 139 ms p95 separering bortom 80 ms fånga deadlines. Leverantören lägger därför till svar latens utan att frysa fånga; den återstående beräkningsgränsen är inhemsk call decoding plus delad-cache resultat replay.

Den buntade demo exponerar endast list_reminders, create_reminderoch update_reminder; Lista upptäckt förblir adapter-privat. En plattad påminnelse läsa täcker varje EventKit lista och ersätter långa leverantör UUID med stabila, sessionskodade referenser som r1Uppdateringar returnerar en av dessa modell-synliga referenser, och adaptern löser det exakt före utförande; det matchar aldrig talade namn eller transkript text. No-op uppdateringar och fraktionella prioriteringar avvisas snarare än rapporteras som framgångsrika förändringar. En kontrollerad uppdatering regression föll från 67 infödda steg / 5.25 sekunder med en realistisk UUID till 37 steg / om 2.29-sekunder med r1Skapa kräver bara ett namn medan valfria leverantörsstandarder förblir valfria. Den strömmande RNN-T-frontend använder NeMo-kompatibel reflektion padding vid rullande fönsterkanter istället för noll vaddering.

Filläge är den hårdvarufria reproducerbara vägen. --force-turn-at-end är endast för kontrollerade regressionstester och får inte rapporteras som naturlig vändning latens.

ljudöversättning

Streaming tal-till-tal översättning med Kyutai Hibiki Zero-3B. FR / ES / PT / DE → EN, enstaka binär, inget moln. Full guide

speech audio-translate <input.wav> [options]
AlternativStandardBeskrivning
<input>Källa ljud WAV fil (mono, försvann till 24 kHz internt) (krävs)
--output, -otranslated.wavUtgång 24 kHz engelska WAV fil
--source-langfrKälla Språk Tips (Källa)fr, es, pt, de) Autoupptäckt; metadata endast. FR + ES är strikta E2E-kanarier; PT + DE är bäst-effort.
--quantization4bitVariant: 4bit (~2,7 GB) eller 8bit (~3,9 GB)
--model-idHuggingFace modell id override (tar företräde över --quantization)
--compileKör den temporala transformatorn uppvärmningspass innan du översätter
--verbosePrint per fas timings (Mimi kod, generation, Mimi dekod)
--transcriptSkriv ut modellens inre-monolog råa SPM token IDs (SPM-avkodningsledning är en uppföljning)

Miljövariabler

VariabelEffekt
HIBIKI_GREEDY=1Force argmax avkodning för text + målljud. Reproducible - som används av strikta CI-kanarier.
HIBIKI_MODEL_IDÖverskrid standard aufklarer/Hibiki-Zero-3B-MLX-4bit repo vid drifttid.

Exempel:

# 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 för Vad

Offline röst aktivitet detektion med Pyannote segmentering.

speech vad <file> [options]
AlternativBeskrivning
<file>Ljudfil för att analysera
--model, -mHuggingFace modell ID
--onsetOnset tröskel (talstart)
--offsetOffset tröskel (taländ)
--min-speechMinsta tallängden på sekunder
--min-silenceMinsta tystnadslängden på sekunder
--jsonUtgång som JSON

Vad-stream

Streaming röst aktivitet detektion med Silero VAD v5. Processer tal i 32ms bitar.

speech vad-stream <file> [options]
AlternativBeskrivning
<file>Ljudfil för att analysera
--engineVAD motor: mlx (standard) eller coreml
--model, -mHuggingFace modell ID (autovald av motor)
--onsetOnset tröskel
--offsetOffset tröskel
--min-speechMinsta tallängden på sekunder
--min-silenceMinsta tystnadslängden på sekunder
--jsonUtgång som JSON
--smart-turnBekräfta varje paus med Smart Turn innan ett segment avslutas; mellansentenspauser går samman i ett segment
--turn-thresholdSmart Turn slutförande tröskel (standard 0.5)
--turn-max-silenceSekunder av tystnad efter en vetoad paus som slutar segmentet ändå (standard 2.0)

vända

Slutet-of-turn detektion med Smart Turn v3.2 (8M params, CoreML, 23 språk). Scores the last 8 s of a recorded utter the probability that the speaker has slut, the komplett/incomplete verdict, and the inference time.

speech turn <file> [options]
AlternativBeskrivning
<file>Ljudfil med en användarvridning (varje provfrekvens); de senaste 8 s används
--thresholdSannolikhet vid eller över vilken vändningen räknas som komplett (standard 0.5)
--model, -mHuggingFace modell ID. Standarder till aufklarer/Smart-Turn-v3.2-CoreML
--model-dirLokal katalog innehav smart_turn.mlmodelc och config.json; hoppar över nedladdningen
--jsonUtgång som 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

Vakna

On-device wake-word / keyword spotting med hjälp av KWS Zipformer (3.49M param, CoreML INT8, 26× realtid, endast engelska).

speech wake <file> [options]
AlternativBeskrivning
<file>Ljudfil för att analysera
--keywordsEn eller flera sökord. Format: "hey soniqo" (girig BPE), "hey soniqo:0.15:0.5" (med tröskel/boost), eller "LIGHT UP|▁ L IGHT ▁UP:0.25:2.0"
--keywords-fileKeyword-fil, en post per rad (samma syntax som --keywords); # för kommentarer
--model, -mHuggingFace modell ID. Standarder till aufklarer/KWS-Zipformer-3M-CoreML-INT8
--jsonUtgång som 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

Högtalare diarization - identifiera vem som talade när.

speech diarize <file> [options]
AlternativStandardBeskrivning
<file>Ljudfil för att analysera
--enginepyannoteDiarization engine: pyannote, community1 (CoreML + infödd PLDA/VBx), sortformer, eller nemotron3
--nemotron3-backendcoremlNemotron 3 backend: coreml eller mlx
--nemotron3-directoryValfritt lokalt Nemotron 3 modellpaket
--nemotron3-compute-unitsaneCoreML compute units: ane, cpu, = gpu, eller all
--community1-compute-unitsaneCommunity-1 CoreML compute units: ane, cpu, = gpu, eller all
--num-speakersKänd exakt högtalarantal för Community-1
--min-speakers1Minsta högtalarantal för Community-1
--max-speakersMaximalt högtalarantal för Community-1
--target-speakerInskrivningsljud för målhögtalare extraktion (endast Pyannote)
--embedding-enginemlxHögtalarinbäddningsmotor: mlx eller coreml (endast pyannot)
--vad-filterPre-filter med Silero VAD (endast pyannot)
--rttmUtgång i RTTM-format
--jsonUtgång som JSON
--score-againstReferens RTTM-fil för att beräkna DER

Exempel:

# 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

Extrahera en högtalare inbäddningsvektor från ljud.

speech embed-speaker <file> [options]
AlternativBeskrivning
<file>Audio-fil som innehåller högtalarröst
--enginemlx (default) eller coreml för WeSpeaker 256-dim; redimnet2 för ihållande identitet CoreML 192-dim; camplusplus för CAM++ CoreML 192-dim
--jsonUtgång som JSON

språk-id

Identifiera talat språk i en ljudfil.

speech language-id <file> [options]
AlternativBeskrivning
<file>Ljudfil för att klassificera
--engineInferensmotor: mlx eller coreml
--modelÖverskrid Hugging Face modell ID
--topAntal rankade språkkandidater
--jsonUtgång resultatet som JSON
speech language-id recording.wav --top 5
speech language-id recording.wav --engine coreml --json

Denoise

Ta bort bakgrundsljud med DeepFilterNet3 på Neural Engine.

speech denoise <file> [options]
AlternativStandardBeskrivning
<file>Input audio file
--output, -oinput_clean.wavOutput file path
--model, -mHuggingFace modell ID

Exempel:

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

Komponera

Generera 30 s musik från en textprompt med MAGNeT på MLX.

speech compose <prompt> [options]
AlternativStandardBeskrivning
<prompt>Textprompt beskriver musiken att generera (t.ex. "happy rock")
--output, -omagnet.wavUtgång WAV väg (32 kHz mono)
--variantsmall-int4Modellvariant: small-int4, small-int8, medium-int4eller medium-int8. Löser aufklarer/MAGNeT-{Small,Medium}-30secs-MLX-{4,8}bit.
--temperature3.0Provtagningstemperatur, annealed linjärt per steg.
--top-p0.9Nucleus provtagning tröskel.
--cfg-max10.0Max-klassificeringsfri vägledningskoefficient.
--cfg-min1.0Min CFG-koefficient (annealed tillsammans med maskschemat).
--steps20,10,10,10Komma-separat avkodning iterationer per kodbok (4 värden).
--seedSlumpmässigt utsäde för reproducerbar utgång.

Exempel:

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

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

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

Transcribe-batch

Transkribera en katalog med ljudfiler; modellen laddas en gång.

speech transcribe-batch <input-dir> [options]
AlternativStandardBeskrivning
<input-dir>Regissör för ljudfiler för att transkribera (WAV, FLAC, etc.)
--output-dirOutput katalog för transkript
--engineqwen3ASR motor (samma värden som transkribering)
--jsonlUtgångsresultat som JSON-linjer, en per fil

Återställ återställning

Återställ tal (denoise + dereverb) med Sidon - CoreML, 48 kHz-utgång.

speech restore <audio-file> [options]
AlternativStandardBeskrivning
--output, -oinput_restored.wavUtgång WAV filväg (48 kHz)
--variantfp16Precision/Buntle variant
--compute-unitsCore ML placering för båda stegen: ane, gpu, cpu, all (standard: vocoder gpu, prediktor auto)

separat separat

Separat ett musikspår i stjälkar (vokaler, trummor, bas, andra).

speech separate <input> [options]
AlternativStandardBeskrivning
--stemsvocals,drums,bass,otherStammar att extrahera: sång, trummor, bas, andra
--engineumxMotor: umx (standard) eller htdemucs (högre kvalitet)
--output-dirOutput katalog för transkript

Upsample

Audio super-resolution med FlashSR - enstegs destillerade AudioSR, 48 kHz-utgång.

speech upsample <audio-file> [options]
AlternativStandardBeskrivning
--output, -ohr.wavUtgång WAV filväg (48 kHz)
--variantint4Precision/Buntle variant
--seedFrö för deterministisk utgång

qwen3-tts-coreml

Swift stöd 0.6B/256 och 1.7B/1024 buntar; 0.6B förblir standarden. experimentell 1.7B bunt standarder för CPU och kräver en förberedd 2048Kanal Float32 .npy högtalare inbäddning via --speaker-embeddingGPU/ANE och iOS validering förblir separat.

speech qwen3-tts-coreml "<text>" [options]
AlternativStandardBeskrivning
--output, -ooutput.wavUtgång WAV filväg
--languageenglishUtgångsspråk
--modelHugging Face modell ID
--model-directory—Lokalt sammanställd modellpaket; tar företräde över nedladdning --model.
--speaker-embedding—Förberedd Float32 .npy högtalare inbäddning matchar modellbredden (1024 eller 2048).

Vibevoice

Text-till-tal med Microsoft VibeVoice (MLX).

speech vibevoice "<text>" --voice-cache <cache> [options]
AlternativStandardBeskrivning
--voice-cache, -vRöstcache från vibevoice-encode-voice (krävs)
--stepsDPM-Solver inferenssteg (högre = bättre kvalitet)
--cfg1.3Klassificeringsfri vägledningsstyrka
--long-formChunked long-form syntes för långa texter

Vibevoice-Encode-voice

Mint en VibeVoice röst cache från en referensinspelning plus transkript.

speech vibevoice-encode-voice <input> "<transcript>" [options]
AlternativStandardBeskrivning
<input>Referens ljudfil
<transcript>transkript av referensljudet (endast engelska)
--output, -oOutput voice cache (.safetensors)

Översättning

Översätt text till ett målspråk med MADLAD-400 (MLX).

speech translate "<text>" --to <lang> [options]
AlternativStandardBeskrivning
--to, -tMålspråkskod (ISO 639-1, t.ex. es, zh, ja)
--streamStream tokens när de avkodar
--modelHugging Face modell ID

CLF

Välj från tillåtna svar med Clef-flash lokalt på Apple Silicon. Utvecklingsförhandsgranskning.

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

Förfrågan innehåller text i state och en beställd questions Varje fält har en id och en type: choice med en choices Karta, noul för sann/falsk, eller score med beställd levelsOutput är JSON med sannolikheter, utvalda svar, token count, modellbelastningstid och beslutstid.

Som standard hämtar kommandot aufklarer/Clef-flash-9B-MLX-4bit. Använd --model-dir för befintliga filer eller --offline för cache. Token limit-standarderna till 4096 och accepterar 1-16384. Se Clef för en komplett begäran och mätt minnesanvändning.

gliner

Schema-konditionerad textklassificering och entitet sträcker sig över GLiNER2.5-Decide (MLX). Utvecklingsförhandsgranskning: ännu inte i en release. Omit texten för att läsa stdin.

speech gliner classify "<text>" --labels <a,b,c> [options]
speech gliner extract "<text>" --labels <a,b,c> [options]
AlternativStandardBeskrivning
--variantint8Publicerade vikter att ladda ner: fp32, fp16 eller int8
--modelHugging Face förvar överrider
--model-dirLokal modellkatalog istället för att ladda ner
--labelsKomma-separat kandidatetiketter (1 till 255, distinkt)
--descriptionEtikettbeskrivning som etikett=text; repeterbar
--taskåtgärderUppgiftsnamn i schemat prompt (endast klassificera)
--threshold0.5Minsta poäng (endast utdrag)
--evaluate-layersUtvärdera kodare lager en i taget för att sänka toppminnet
--jsonJSON med alla sannolikheter, eller spänner med UTF-16 offsets, plus timings

Avatar-Motion

Generera NVIDIA Audio2Face-3D avatar-motion koefficient ramar från talljud.

speech avatar-motion <input> [options]
AlternativStandardBeskrivning
--output, -oavatar-motion.jsonlUtgång JSONL filväg
--model…James-MLXAvatar identitet bunt (James standard; Claire och Mark tillgänglig)
--verbosePrint timing och ram räknas

MOSS-TTS-Nano

Använd --voice-sample för röstkloning; ingen referens utskrift behövs. Mono referenser dupliceras till stereo, försvann till 48 kHz och vadderas till en 80 ms gräns. Koda en referens en gång och återanvända dess koder över förfrågningar.

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-CoreMLModellförvar eller lokal katalog
--moss-nano-compute-unitscpucpu eller gpu
--moss-nano-max-frames300Maximalt 80 ms ramar; naturligt EOS krävs
--moss-nano-seed0Reproducerbar Swift provtagningsfrö

MOSS-TTS-Nano

Lokal inhemsk slutsats

För 12B, upprepade intilliggande verktygslåda stängning markörer omedelbart efter en fullständig, validerad samtal konsumeras med det samtalet. De skapar inte ett annat samtal eller ändrar sina argument. Standalone markörer och missbildade argument förbli fel; E4B behåller strikt hantering.

För att behålla misslyckade inhemska chattförfrågningar, ange failureCaptureDirectory i slutsatsen manifest. Capture är av som standard. Katalogen måste neka grupp och annan åtkomst; nya kataloger använder 0700 och misslyckande filer använder 0600Filer inkluderar den exakta förfrågan organ, begära ID och fel. Slutförda 12B generationer behåller också de återgivna snabb, token ID, rå utgång och stoppa anledning innan parsing. E4B fel har ingen rå generation rekord. Dessa lokala filer innehåller konversation och verktyg innehåll; HTTP fel och framgångsrika förfrågningar inte inkludera dem.

Valfria agentDirectory laddar en iscensatt Gemma 4 12B Unified INT4 textmodell tillsammans med E4B. Använd modell: "gemma4-12b-it" för chatt med inhemska verktyg, resultathistorik och avbokning. E4B förblir tillgänglig för andra förfrågningar. Gemma4UnifiedChat använder den höjda MLX text implementering och släpper varje förfrågan KV cache. Responseponselimsing

Källan bygger acceptera --inference-manifest modeller.json att ladda iscensatt Gemma 4 E4B INT4, VoxCPM2full, full Whisper Large-v3och Silero VADDenna tjänst startar offline och avvisar oförenliga modellidentiteter.

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

API detaljer

Voxtral TTS

Voxtral 4B TTS 2603 körs lokalt på Apple Silicon genom Voxtral TTS-modulen: 20 förinställda röster, nio språk och 24 kHz monotal.

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

Förinställda röster endast; referens-audio kloning är otillgänglig. Audio utgångsströmmar genom SDK, CLI, WebSocket och HTTP PCM. Supply the fullständig input text up front. Model vikter använder CC BY-NC 4.0.

Läs Voxtral TTS guide

Fish Audio Drama 3

Experimentell infödd MLX stöd för Drama 3 är tillgänglig via FishAudioDrama3ModelA. A. 35B hybrid-uppmärksamhet MoE ryggraden, temporalt ljudtorn och Fish DAC codec producerar 44.1 kHz mono ljud. 4-bit checkpoint passerade vågform och oberoende ASR kontroller för text-bara generationen, referenskloning och CLI-utgång på Apple M5 Pro. 8-bit och BF16 förblir ovärderlig.

Minnesläge balanced är standard. Idle MLX buffertar trimmas över 512 MiB vid scengränser; detta är inte en total minnesgräns. Globala allokatorgränser förblir oförändrade. Välj --fish-drama3-memory-mode unrestricted eller memoryOptions: .unrestricted för eager loading och föregående caching beteende.

Text-bara generationen skjuter upp 794.4 MiB av referenskodare vikter. Den första referenskodningsbelastningen och behåller dem, så håll codec.safetensors tillgängliga tills dess. Precomputed referenskoder behöver inte kodaren.

Ge fullständig inmatningstext. Voice kloning kräver ett referensklipp och dess exakta transkript. Speaker taggar 0-15 och inline känslor stöds. PCM streaming är tillgänglig via generateStreaming, generateStream och --stream. Standard chunk innehåller 3 kodramar, ca 139 ms ljud. Automatic long-text chunking och streamed texting restavailable.

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

Byggd med Fish Audio. Bundles behåller gemenskapslicensen och NOTICE.

4-bitars benchmark