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).
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).
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-speakerskommandot 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]
| Alternativ | Standard | Beskrivning |
|---|---|---|
<file> | Ljudfil för att transkribera (WAV, M4A, MP3, CAF) | |
--engine | qwen3 | ASR motor: qwen3, qwen3-coreml, parakeet, nemotron, omnilingual, cohere, voxtral, moss, whisper |
--model, -m | 0.6B | Modellvariant: 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-tokens | CoreML: 512MLX: 5120 | [moss] Maximalt genererade transkripttokens. |
--kv-cache | fp16 | [moss mlx] Dynamic KV-cache precision: fp16 eller int8. |
--language | Språk tips (valfritt, ignoreras av allmänt) | |
--window | 10 | [omnilingual] CoreML fönsterstorlek på några sekunder: 5 eller 10 |
--backend | coreml | [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. |
--variant | 300M | [omnilingual mlx] Storlek: 300M, 1B, = 3B, eller 7B |
--bits | 4 | [omnilingual mlx] Quantisation bits: 4 eller 8 |
--stream | Aktivera streaming transkription med VAD | |
--max-segment | 10 | Maximal segmentlängd på sekunder (streaming) |
--partial | Emit 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]
| Alternativ | Standard | Beskrivning |
|---|---|---|
<file> | Audio Fil | |
--text, -t | Text för att anpassa (om utelämnas, transkriberar först) | |
--model, -m | 0.6B | ASR modell för transkription: 0.6B, 1.7B, eller full ID |
--aligner-model | Tvingad aligner modell ID | |
--language | Språ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]
| Alternativ | Standard | Beskrivning |
|---|---|---|
<text> | Text för att syntetisera (tillval om du använder --batch-file) | |
--engine | qwen3 | TTS motor: qwen3, cosyvoice, voxcpm2, indextts2, f5, higgs, breeze, indic-mio, magpieeller magpie-coreml, moss-nano, fireredtts3, moss-voicegenerator |
--output, -o | output.wav | Utgång WAV filväg |
--language | english | Språk. Omit för att använda högtalarens inhemska dialekt när --speaker är inställd. |
--stream | Möjlig streaming syntes | |
--voice-sample | Referens ljud för röst kloning (arbetar med qwen3, cosyvoice, voxcpm2, f5, higgsoch indextts2) | |
--verbose | Visa detaljerad timing info |
Qwen3-TTS Alternativ
| Alternativ | Standard | Beskrivning |
|---|---|---|
--model | base | Modell variant: base, customVoice, eller full HF-modell ID |
--speaker | Högtalarröst (kräver --model customVoice) | |
--instruct | Stilinstruktion (CustomVoice modell) | |
--list-speakers | Lista tillgängliga högtalare och exit | |
--temperature | 0.3 | Provtagningstemperatur |
--top-k | 50 | Top-k sampling |
--max-tokens | 500 | Maximala tokens (500 = ~40s ljud) |
--batch-file | Fil med en text per rad för batch syntes | |
--batch-size | 4 | Max batch storlek för parallell generation |
--first-chunk-frames | 3 | Codec ramar i första strömmade chunk |
--chunk-frames | 25 | Codec ramar per streamad chunk |
CosyVoice3 alternativ
| Alternativ | Standard | Beskrivning |
|---|---|---|
--speakers | Högtalarkartläggning för dialog med flera högtalare: s1=alice.wav,s2=bob.wav | |
--cosy-instruct | Stilinstruktion (överskrider standard) kontrollerar röststil för CosyVoice3. | |
--turn-gap | 0.2 | Tystnadsklyftan mellan dialogen vänder på sekunder |
--crossfade | 0.0 | Crossfade överlappning mellan turer i sekunder |
--model-id | HuggingFace modell ID |
VoxCPM2 Alternativ
| Alternativ | Standard | Beskrivning |
|---|---|---|
--voxcpm2-variant | bf16 | Quantization variant: bf16, int8, eller int4. Löser till aufklarer/VoxCPM2-MLX-<variant>. |
--voxcpm2-instruct | Naturligt språklig röstbeskrivning (röstdesign), t.ex. "en ung kvinna, varm och mild". | |
--voxcpm2-ref-audio | Referens 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-value | 2.0 | Klassificeringsfri vägledning för diffusionsprovtagaren. |
--voxcpm2-timesteps | 10 | Euler lösare steg per genererad ljud patch. |
--voxcpm2-max-tokens | 2000 | Max genererade fläckar innan tvångsstopp. |
--voxcpm2-min-tokens | 2 | Mina fläckar innan stopphuvudet får skjuta. |
--seed | Seed 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.
| Alternativ | Standard | Beskrivning |
|---|---|---|
--indextts2-model-id | aufklarer/IndexTTS2-MLX-fp16 | HuggingFace modell ID. Standarder till aufklarer/IndexTTS2-MLX-fp16. |
--indextts2-bundle-dir | Ladda ett lokalt utökat bunt istället för att ladda ner från Hugging Face. | |
--indextts2-emotion-audio | Valfria känslor / stil referensljud. Standarder till högtalaren referens. | |
--indextts2-emotion | Valfria förinställda eller 8-värde känslor vektor. Förinställningar inkluderar eager, happy, = excited och calm. | |
--indextts2-emotion-weight | 1.0 | Skalor --indextts2-emotion; håll dig blygsam när högtalaridentitet spelar roll. |
--indextts2-speaking-rate | 1.0 | Speaking-rate multiplikator från 0.5 att 1.5värdena ovan 1.0 är snabbare. |
--indextts2-max-pause | Valfri cap för långa interna lågenergi pauser, på några sekunder. | |
--indextts2-s2mel-steps | 15 | S2Mel flödessteg (standard 15, öronbegränsad; 25 matcher uppströms exakt) |
F5-TTS Alternativ
| Alternativ | Standard | Beskrivning |
|---|---|---|
--f5-reference-text | Referensutskrift: textinnehållet i --voice-sample (krävs) | |
--f5-steps | 16 | Flödesmatchningssteg (standard 16, 32 för maximal trohet) |
--f5-cfg-strength | 2.0 | Klassificeringsfri vägledningsstyrka |
--f5-sway | -1.0 | Sway sampling koefficient |
--f5-speed | 1.0 | tal-rate multiplikator |
--f5-seed | 0 | Frö för deterministisk utgång |
--f5-target-rms | 0.1 | Referens RMS normaliseringsmål |
--f5-model-id | Hugging Face modell ID | |
--f5-bundle-dir | Ladda en bunt från denna lokala katalog |
Higgs TTS 3 Alternativ
| Alternativ | Standard | Beskrivning |
|---|---|---|
--higgs-ref-text | Referensutskrift: textinnehållet i --voice-sample (förbättrar kloning) | |
--higgs-temperature | 0.8 | Provtagningstemperatur (standard 0,8) |
--higgs-top-p | Nucleus provtagning tröskel (av som standard) | |
--higgs-top-k | Top-k sampling cutoff (off by default) | |
--higgs-max-new-tokens | 2048 | Maximalt genererade ljudramar (25 per sekund) |
--higgs-seed | 0 | Frö för deterministisk utgång |
--higgs-model-id | Hugging Face modell ID | |
--higgs-bundle-dir | Ladda 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.
| Alternativ | Standard | Beskrivning |
|---|---|---|
--magpie-variant | int4 | MLX-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-speaker | sofia | Bakad högtalare: sofia, aria, jason, leoeller johnIdentitet är konsekvent över alla 9-språk och båda backends. |
--magpie-temperature | 0.6 | Provtagningstemperatur (0 = girig) Använd 0.6 för japanska - giriga fastnar på den första frasen. |
--magpie-top-k | 80 | Top-k filter för provtagning. |
--magpie-max-frames | 500 | Hårddisk på codec-ramar (~23 s). |
--magpie-min-frames | 4 | Minsta ramar innan EOS tillåts. |
--magpie-prephonemized | Behandla inmatning som IPA / telefonme stream; hoppa över G2P per språk. | |
--list-speakers | Skriv 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.
| Alternativ | Standard | Beskrivning |
|---|---|---|
--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-steps | 10 | Flödessteg per akustisk lapp. |
--fireredtts3-max-patches | 400 | Generation 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-frames | 750 | Generation cap; når den innan slutförandet höjer ett fel. |
--moss-voicegenerator-chunk-frames | 3 | Komplett codec-ramar per PCM-knapp (1-32). |
--seed | 2 / 42 | Begä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]
| Alternativ | Standard | Beskrivning |
|---|---|---|
<text> | Text för att syntetisera | |
--voice | af_heart | Röstförinställd (50 tillgängliga på 10 språk) |
--language | en | Språkkod: en, es, fr, hi, it, ja, pt, zh, ko, de |
--output, -o | kokoro_output.wav | Utgång WAV filväg |
--list-voices | Lista alla tillgängliga röster och exit | |
--model, -m | HuggingFace 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]
| Alternativ | Standard | Beskrivning |
|---|---|---|
--input, -i | Input audio WAV fil (24kHz mono) (krävs) | |
--output, -o | response.wav | Utgångsrespons WAV fil |
--voice | NATM0 | Röstförinställd (t.ex. NATM0, NATF1, VARF0) |
--system-prompt | assistant | Förinställd: assistant, focused, customer-service, teacher |
--system-prompt-text | Anpassade system snabb text (överskridande förinställd) | |
--max-steps | 200 | Max generation steg på 12,5 Hz (~16s) |
--stream | Emit ljud bitar under generation | |
--compile | Aktivera sammanställd transformator (warmup + kernel fusion) | |
--list-voices | Lista tillgängliga röstförinställningar | |
--list-prompts | Lista tillgängliga system snabb förinställningar | |
--transcript | Skriv ut modellens inre monologtext | |
--json | Utgång som JSON (transcript, latens, ljudväg) | |
--verbose | Visa detaljerad timing info |
Sampling Overrides
| Alternativ | Standard | Beskrivning |
|---|---|---|
--audio-temp | 0.8 | Audio provtagningstemperatur |
--text-temp | 0.7 | Textprovtagningstemperatur |
--audio-top-k | 250 | Audio top-k kandidater |
--repetition-penalty | 1.2 | Repetitionsstraff (1,0 = funktionshindrad) |
--text-repetition-penalty | 1.2 | Textrepetitionsstraff (1,0 = inaktiverat) |
--repetition-window | 30 | Repetition strafffönster i ramar |
--silence-early-stop | 15 | Tystnadsramar före tidigt stopp (0 = inaktiverad) |
--entropy-threshold | 0 | Tröskelvärdet för textentropi för tidig stopp (0 = inaktiverad) |
--entropy-window | 10 | Konsekutiva 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]
| Alternativ | Standard | Beskrivning |
|---|---|---|
--model, -m | aufklarer/VoiceChat-11B-Perception-MLX-int5 | Hugging Face modell ID eller komplett lokal bunt. |
--revision | main | Hub revision. |
--system-prompt | åsidosätter systemet snabbt. | |
--mcp-config | Leverantörsneutral JSON-konfiguration för MCP verktygsservrar. | |
--mcp-server | alla konfigurerade | Välj en konfigurerad server; upprepa för att välja mer. |
--mcp-write-policy | allow | Skriv policy: omedelbar allow, modellmedierad confirm, eller deny. |
--mcp-timeout-seconds | 15 | MCP verktygstidsuttag; serverstart tillåter minst 60 sekunder. |
--greet | Fråga modellen att hälsa först. | |
--no-aec | Inaktivera Apple akustisk eko avbokning. | |
--no-transcript | Inaktivera RNN-T-användarkaptioner. | |
--no-rnnt-turn-taking | Inaktivera NVIDIA RNN-T-svängning av säkerhetsnedgångar. | |
--prebuffer-frames | 3 | 80 ms output ramar buffrade före uppspelning. |
--max-buffered-frames | 8 | Maximalt köade 80 ms mikrofonramar innan stal ljud tappas. |
--max-seconds | Sluta live-fånga efter det här många sekunder. | |
--input | Läs en ljudfil istället för mikrofonen. | |
--output, -o | Skriv hela kontexten 22,05 kHz WAV. | |
--tail-seconds | 6 | Tystnaden appended efter filinmatning. |
--force-turn-at-end | Tvinga BOS på filen EOF; regressionstester endast. | |
--plain | Använd endast append-only utgång istället för den fasta redraw instrumentbrädan. | |
--debug-timeline | Visa relativ fras och genererade uttal-slut-tidsstämplar plus avkodade verktyg-samtal livscykel händelser. | |
--terminal-width | 120 | Terminal display bredd. |
--temperature | 0 | Texttemperatur; 0 är girigt. |
--text-top-p | 1 | Text top-p. |
--guidance | 0.2 | EAR-TTS vägledning styrka. |
--speech-top-p | 0.95 | EAR-TTS top-p. |
--speech-noise | 0.001 | EAR-TTS provtagningsbuller. |
--speech-iterations | 8 | EAR-TTS MaskGIT iterationer per ram. |
--realtime-speech-iterations | 2 | Den mellanliggande röstförädlingsbudgeten som används för att skydda realtidshastigheten; svår överbelastning använder ett steg. |
--live-speech-context-seconds | 20 | Nyligen 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]
| Alternativ | Standard | Beskrivning |
|---|---|---|
<input> | Källa ljud WAV fil (mono, försvann till 24 kHz internt) (krävs) | |
--output, -o | translated.wav | Utgång 24 kHz engelska WAV fil |
--source-lang | fr | Kä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. |
--quantization | 4bit | Variant: 4bit (~2,7 GB) eller 8bit (~3,9 GB) |
--model-id | HuggingFace modell id override (tar företräde över --quantization) | |
--compile | Kör den temporala transformatorn uppvärmningspass innan du översätter | |
--verbose | Print per fas timings (Mimi kod, generation, Mimi dekod) | |
--transcript | Skriv ut modellens inre-monolog råa SPM token IDs (SPM-avkodningsledning är en uppföljning) |
Miljövariabler
| Variabel | Effekt |
|---|---|
HIBIKI_GREEDY=1 | Force 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]
| Alternativ | Beskrivning |
|---|---|
<file> | Ljudfil för att analysera |
--model, -m | HuggingFace modell ID |
--onset | Onset tröskel (talstart) |
--offset | Offset tröskel (taländ) |
--min-speech | Minsta tallängden på sekunder |
--min-silence | Minsta tystnadslängden på sekunder |
--json | Utgång som JSON |
Vad-stream
Streaming röst aktivitet detektion med Silero VAD v5. Processer tal i 32ms bitar.
speech vad-stream <file> [options]
| Alternativ | Beskrivning |
|---|---|
<file> | Ljudfil för att analysera |
--engine | VAD motor: mlx (standard) eller coreml |
--model, -m | HuggingFace modell ID (autovald av motor) |
--onset | Onset tröskel |
--offset | Offset tröskel |
--min-speech | Minsta tallängden på sekunder |
--min-silence | Minsta tystnadslängden på sekunder |
--json | Utgång som JSON |
--smart-turn | Bekräfta varje paus med Smart Turn innan ett segment avslutas; mellansentenspauser går samman i ett segment |
--turn-threshold | Smart Turn slutförande tröskel (standard 0.5) |
--turn-max-silence | Sekunder 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]
| Alternativ | Beskrivning |
|---|---|
<file> | Ljudfil med en användarvridning (varje provfrekvens); de senaste 8 s används |
--threshold | Sannolikhet vid eller över vilken vändningen räknas som komplett (standard 0.5) |
--model, -m | HuggingFace modell ID. Standarder till aufklarer/Smart-Turn-v3.2-CoreML |
--model-dir | Lokal katalog innehav smart_turn.mlmodelc och config.json; hoppar över nedladdningen |
--json | Utgå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]
| Alternativ | Beskrivning |
|---|---|
<file> | Ljudfil för att analysera |
--keywords | En 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-file | Keyword-fil, en post per rad (samma syntax som --keywords); # för kommentarer |
--model, -m | HuggingFace modell ID. Standarder till aufklarer/KWS-Zipformer-3M-CoreML-INT8 |
--json | Utgå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]
| Alternativ | Standard | Beskrivning |
|---|---|---|
<file> | Ljudfil för att analysera | |
--engine | pyannote | Diarization engine: pyannote, community1 (CoreML + infödd PLDA/VBx), sortformer, eller nemotron3 |
--nemotron3-backend | coreml | Nemotron 3 backend: coreml eller mlx |
--nemotron3-directory | Valfritt lokalt Nemotron 3 modellpaket | |
--nemotron3-compute-units | ane | CoreML compute units: ane, cpu, = gpu, eller all |
--community1-compute-units | ane | Community-1 CoreML compute units: ane, cpu, = gpu, eller all |
--num-speakers | Känd exakt högtalarantal för Community-1 | |
--min-speakers | 1 | Minsta högtalarantal för Community-1 |
--max-speakers | Maximalt högtalarantal för Community-1 | |
--target-speaker | Inskrivningsljud för målhögtalare extraktion (endast Pyannote) | |
--embedding-engine | mlx | Högtalarinbäddningsmotor: mlx eller coreml (endast pyannot) |
--vad-filter | Pre-filter med Silero VAD (endast pyannot) | |
--rttm | Utgång i RTTM-format | |
--json | Utgång som JSON | |
--score-against | Referens 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]
| Alternativ | Beskrivning |
|---|---|
<file> | Audio-fil som innehåller högtalarröst |
--engine | mlx (default) eller coreml för WeSpeaker 256-dim; redimnet2 för ihållande identitet CoreML 192-dim; camplusplus för CAM++ CoreML 192-dim |
--json | Utgång som JSON |
språk-id
Identifiera talat språk i en ljudfil.
speech language-id <file> [options]
| Alternativ | Beskrivning |
|---|---|
<file> | Ljudfil för att klassificera |
--engine | Inferensmotor: mlx eller coreml |
--model | Överskrid Hugging Face modell ID |
--top | Antal rankade språkkandidater |
--json | Utgå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]
| Alternativ | Standard | Beskrivning |
|---|---|---|
<file> | Input audio file | |
--output, -o | input_clean.wav | Output file path |
--model, -m | HuggingFace 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]
| Alternativ | Standard | Beskrivning |
|---|---|---|
<prompt> | Textprompt beskriver musiken att generera (t.ex. "happy rock") | |
--output, -o | magnet.wav | Utgång WAV väg (32 kHz mono) |
--variant | small-int4 | Modellvariant: small-int4, small-int8, medium-int4eller medium-int8. Löser aufklarer/MAGNeT-{Small,Medium}-30secs-MLX-{4,8}bit. |
--temperature | 3.0 | Provtagningstemperatur, annealed linjärt per steg. |
--top-p | 0.9 | Nucleus provtagning tröskel. |
--cfg-max | 10.0 | Max-klassificeringsfri vägledningskoefficient. |
--cfg-min | 1.0 | Min CFG-koefficient (annealed tillsammans med maskschemat). |
--steps | 20,10,10,10 | Komma-separat avkodning iterationer per kodbok (4 värden). |
--seed | Slumpmä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]
| Alternativ | Standard | Beskrivning |
|---|---|---|
<input-dir> | Regissör för ljudfiler för att transkribera (WAV, FLAC, etc.) | |
--output-dir | Output katalog för transkript | |
--engine | qwen3 | ASR motor (samma värden som transkribering) |
--jsonl | Utgå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]
| Alternativ | Standard | Beskrivning |
|---|---|---|
--output, -o | input_restored.wav | Utgång WAV filväg (48 kHz) |
--variant | fp16 | Precision/Buntle variant |
--compute-units | Core 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]
| Alternativ | Standard | Beskrivning |
|---|---|---|
--stems | vocals,drums,bass,other | Stammar att extrahera: sång, trummor, bas, andra |
--engine | umx | Motor: umx (standard) eller htdemucs (högre kvalitet) |
--output-dir | Output katalog för transkript |
Upsample
Audio super-resolution med FlashSR - enstegs destillerade AudioSR, 48 kHz-utgång.
speech upsample <audio-file> [options]
| Alternativ | Standard | Beskrivning |
|---|---|---|
--output, -o | hr.wav | Utgång WAV filväg (48 kHz) |
--variant | int4 | Precision/Buntle variant |
--seed | Frö 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]
| Alternativ | Standard | Beskrivning |
|---|---|---|
--output, -o | output.wav | Utgång WAV filväg |
--language | english | Utgångsspråk |
--model | Hugging 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]
| Alternativ | Standard | Beskrivning |
|---|---|---|
--voice-cache, -v | Röstcache från vibevoice-encode-voice (krävs) | |
--steps | DPM-Solver inferenssteg (högre = bättre kvalitet) | |
--cfg | 1.3 | Klassificeringsfri vägledningsstyrka |
--long-form | Chunked 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]
| Alternativ | Standard | Beskrivning |
|---|---|---|
<input> | Referens ljudfil | |
<transcript> | transkript av referensljudet (endast engelska) | |
--output, -o | Output voice cache (.safetensors) |
Översättning
Översätt text till ett målspråk med MADLAD-400 (MLX).
speech translate "<text>" --to <lang> [options]
| Alternativ | Standard | Beskrivning |
|---|---|---|
--to, -t | Målspråkskod (ISO 639-1, t.ex. es, zh, ja) | |
--stream | Stream tokens när de avkodar | |
--model | Hugging 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 4096Fö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]
| Alternativ | Standard | Beskrivning |
|---|---|---|
--variant | int8 | Publicerade vikter att ladda ner: fp32, fp16 eller int8 |
--model | Hugging Face förvar överrider | |
--model-dir | Lokal modellkatalog istället för att ladda ner | |
--labels | Komma-separat kandidatetiketter (1 till 255, distinkt) | |
--description | Etikettbeskrivning som etikett=text; repeterbar | |
--task | åtgärder | Uppgiftsnamn i schemat prompt (endast klassificera) |
--threshold | 0.5 | Minsta poäng (endast utdrag) |
--evaluate-layers | Utvärdera kodare lager en i taget för att sänka toppminnet | |
--json | JSON 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]
| Alternativ | Standard | Beskrivning |
|---|---|---|
--output, -o | avatar-motion.jsonl | Utgång JSONL filväg |
--model | …James-MLX | Avatar identitet bunt (James standard; Claire och Mark tillgänglig) |
--verbose | Print 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-model | aufklarer/MOSS-TTS-Nano-100M-CoreML | Modellförvar eller lokal katalog |
--moss-nano-compute-units | cpu | cpu eller gpu |
--moss-nano-max-frames | 300 | Maximalt 80 ms ramar; naturligt EOS krävs |
--moss-nano-seed | 0 | Reproducerbar Swift provtagningsfrö |
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 8080Voxtral 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.wavFö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.
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.wavimport FishAudioTTS
let model = try await FishAudioDrama3Model.fromBundle(bundleURL, memoryOptions: .balanced)
let pcm = try await model.generate(text: "Hello from Drama 3.", options: .init(seed: 42))| Alternativ | Standard |
|---|---|
--fish-drama3-model-id | mlx-community/fish-audio-drama-3-4bit |
--fish-drama3-bundle-dir | — |
--fish-drama3-reference-text | — |
--fish-drama3-max-frames | 2048 |
--fish-drama3-temperature | 1 |
--fish-drama3-top-k | 30 |
--fish-drama3-top-p | 0.9 |
--voice-sample | — |
--seed | 0 |
--stream | false |
--fish-drama3-chunk-frames | 3 |
--fish-drama3-memory-mode | balanced |
Byggd med Fish Audio. Bundles behåller gemenskapslicensen och NOTICE.