Automatische vertaling · Engels origineel
CLI-naslag
Breeze TTS 2 · Breeze TTS
Engels/Chinees TTS met spraakontwerp, referentieklonen en richting, en gestreamde audio (MLX BF16/8-bit, 24 kHz; onderzoek/niet-commerciële licentie).
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: Optioneel herbruikbaar voor procesbreed MLX cachebudget in MiB; 0 schakelt caching uit.--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
Inheemse Apple runtime · PocketTTS
PocketTTS voegt native CoreML spraaksynthese toe aan speech-swift. Alle fasen zijn standaard voor CPU-uitvoering. De Engelse Alba-voorinstelling streamt 1.920-sample frames op 24 kHz (80 ms per frame).
speech speak "Hello world." --engine pocket --stream \
--pocket-bundle-dir /path/to/bundle --pocket-seed 42 -o hello.wav
# --pocket-model-id, --pocket-max-frames, --list-speakers Het speech commando is het ingangspunt voor lokale spraakverwerking.
Installeren met Homebrew
Op Apple Silicon met macOS 15 of nieuwer, installeer de CLI met Homebrew:
brew install speech
speech --help
Om een bestaande installatie te updaten, voer brew upgrade speech uit.
Alternatief: bouwen vanaf bron
In een speech-swift checkout, start make build, gebruik dan .build/release/speech . Zie de Gestarte handleiding voor vereisten en bron-build instructies.
transcriberen
Audiobestanden naar tekst overbrengen.
speech transcribe <file> [options]
| Optie | Standaard | Omschrijving |
|---|---|---|
<file> | Audiobestand om te transcriberen (WAV, M4A en MP3) | |
--engine | qwen3 | ASR-motor: qwen3, qwen3-coreml, parakeet, nemotron, omnilingual, cohere, voxtral, moss, whisper |
--model, -m | 0.6B | Modelvariant: 0.6B, 1.7B, of volledige HuggingFace model ID (alleen qwen3) [whisper]: default, turbo, of volledige CoreML HuggingFace repo ID.[cohere/voxtral]: INT5 (standaard), INT8, FP16 of een Hugging Face model ID, of een lokale map. [moss coreml]: int8 (standaard) of fp16; [moss mlx]: int5 (standaard) of int8MOSS accepteert ook een compatibele Hugging Face repository ID of lokale map. |
--max-tokens | CoreML: 512MLX: 5120 | [moss] Maximale gegenereerde transcript tokens. |
--kv-cache | fp16 | [moss mlx] Dynamische KV-cache-precisie: fp16 of int8. |
--language | Taal hint (facultatief, genegeerd door omnilingual) | |
--window | 10 | [omnilingual] CoreML venstergrootte in seconden: 5 of 10 |
--backend | coreml | [omnilingual/moss] Backend: coreml (Neural Engine) of mlx (Metal GPU). MOSS MLX biedt een dynamische context van 131,072-token; MOSS CoreML maakt gebruik van een vaste 1.024-tokentoestand. |
--variant | 300M | [omnilingual mlx] Grootte: 300M, 1B, 3B, of 7B |
--bits | 4 | [omnilingual mlx] Kwantiseringsbits: 4 of 8 |
--stream | streaming transcriptie inschakelen met VAD | |
--max-segment | 10 | Maximale segmentduur in seconden (streaming) |
--partial | Gedeeltelijke resultaten tijdens spraak (streaming) doorgeven |
Voorbeelden:
# 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
uitlijnen
Word-level gedwongen uitlijning te krijgen nauwkeurige tijdstempels voor elk woord.
speech align <file> [options]
| Optie | Standaard | Omschrijving |
|---|---|---|
<file> | Audiobestand | |
--text, -t | Tekst om uit te lijnen (indien weggelaten, transcribeert eerst) | |
--model, -m | 0.6B | ASR model voor transcriptie: 0.6B, 1.7B, of volledige ID |
--aligner-model | Gedwongen uitlijner model ID | |
--language | Taalhint |
Voorbeelden:
# 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?"
spreken
Tekst-tot-spraak synthese.
speech speak "<text>" [options]
| Optie | Standaard | Omschrijving |
|---|---|---|
<text> | Tekst naar synthesizer (facultatief indien --batch-file wordt gebruikt) | |
--engine | qwen3 | TTS-motor: qwen3, cosyvoice, voxcpm2, indextts2, f5, higgs, breeze, indic-mio, magpie, of magpie-coreml, moss-nano, fireredtts3, moss-voicegenerator |
--output, -o | output.wav | Uitvoer WAV bestandspad |
--language | english | Taal. Ga naar het moedertaaldialect van de luidspreker wanneer --speaker is ingesteld. |
--stream | Streamsynthese inschakelen | |
--voice-sample | Referentie audio voor voice klonen (werkt met qwen3, cosyvoice, voxcpm2, f5, higgsen indextts2) | |
--verbose | Gedetailleerde timing-informatie tonen |
Qwen3-TTS Opties
| Optie | Standaard | Omschrijving |
|---|---|---|
--model | base | Modelvariant: base, customVoice, of volledige HF model ID |
--speaker | Speaker stem (vereist --model customVoice) | |
--instruct | Stijl instructie (CustomVoice model) | |
--list-speakers | Beschikbare luidsprekers tonen en afsluiten | |
--temperature | 0.3 | Temperatuur van de bemonstering |
--top-k | 50 | Monstername van top-k |
--max-tokens | 500 | Maximale tokens (500 = ~40s audio) |
--batch-file | Bestand met één tekst per regel voor batchsynthese | |
--batch-size | 4 | Maximale batchgrootte voor parallelle generatie |
--first-chunk-frames | 3 | Codec-frames in eerste gestreamde brok |
--chunk-frames | 25 | Codec frames per gestreamd brok |
CosyVoice3 Opties
| Optie | Standaard | Omschrijving |
|---|---|---|
--speakers | Speaker mapping voor dialoog met meerdere luidsprekers: s1=alice.wav,s2=bob.wav | |
--cosy-instruct | Stijl instructie (overschrijft standaard). Bedient stemstijl voor CosyVoice3. | |
--turn-gap | 0.2 | Stiltekloof tussen dialoog in seconden |
--crossfade | 0.0 | Crossfade overlapping tussen bochten in seconden |
--model-id | HuggingFace model ID |
VoxCPM2 Opties
| Optie | Standaard | Omschrijving |
|---|---|---|
--voxcpm2-variant | bf16 | Kwantisatievariant: bf16, int8, of int4. Lost op tot aufklarer/VoxCPM2-MLX-<variant>. |
--voxcpm2-instruct | Natuurlijke spraakbeschrijving (stemontwerp), bv. "een jonge vrouw, warm en zacht". | |
--voxcpm2-ref-audio | Referentie audiobestand voor het klonen (16 kHz mono, intern opnieuw ingedeeld). | |
--voxcpm2-prompt-audio / --voxcpm2-prompt-text | "Ultimate klonen" paar . . referentie clip + zijn transcript voor prosody-bewaarklonen. | |
--voxcpm2-cfg-value | 2.0 | Classificatorvrije geleidingsschaal voor de diffusiemonsternemer. |
--voxcpm2-timesteps | 10 | Euler solver stappen per gegenereerde audio patch. |
--voxcpm2-max-tokens | 2000 | Max gegenereerde patches voor geforceerde stop. |
--voxcpm2-min-tokens | 2 | Min patches voordat de stopkop mag vuren. |
--seed | Zaad MLX RNG voor synthese (deterministisch overloop). |
IndexTTS2 Opties
IndexTTS2 is een nul-shot stemklonerende motor ondersteund door een uitgebreide MLX bundel. Het vereist --voice-sample en draait momenteel alleen batchsynthese.
| Optie | Standaard | Omschrijving |
|---|---|---|
--indextts2-model-id | aufklarer/IndexTTS2-MLX-fp16 | HuggingFace model ID. Standaardwaarden voor aufklarer/IndexTTS2-MLX-fp16. |
--indextts2-bundle-dir | Laad een lokale uitgebreide bundel in plaats van te downloaden van Hugging Face. | |
--indextts2-emotion-audio | Optionele emotie/stijl referentie audio. Standaarden voor de speaker referentie. | |
--indextts2-emotion | Optionele preset of 8-waarde emotie vector. Voorinstellingen zijn inclusief eager, happy, exciteden calm. | |
--indextts2-emotion-weight | 1.0 | Schaal --indextts2-emotion; houd bescheiden wanneer luidsprekeridentiteit belangrijk is. |
--indextts2-speaking-rate | 1.0 | Spreeksnelheidsmultiplicator van 0.5 tot 1.5; waarden boven 1.0 zijn sneller. |
--indextts2-max-pause | Optionele dop voor lange interne pauzes met lage energie, in seconden. | |
--indextts2-s2mel-steps | 15 | S2Mel stroomstappen (standaard 15, oor-gevalideerd; 25 komt precies vóór elkaar overeen) |
F5-TTS Opties
| Optie | Standaard | Omschrijving |
|---|---|---|
--f5-reference-text | Referentietranscriptie: de tekstinhoud van --voice-sample (nodig) | |
--f5-steps | 16 | Stappen voor de flow-matching (standaard 16; 32 voor maximale trouw) |
--f5-cfg-strength | 2.0 | Klasse-vrije geleidingssterkte |
--f5-sway | -1.0 | Sway-bemonsteringscoëfficiënt |
--f5-speed | 1.0 | Speaking-rate multiplier |
--f5-seed | 0 | Zaad voor deterministische output |
--f5-target-rms | 0.1 | Referentie RMS normalisatiedoelstelling |
--f5-model-id | Hugging Face model ID | |
--f5-bundle-dir | Een bundel laden uit deze lokale map |
Higgs TTS 3 Opties
| Optie | Standaard | Omschrijving |
|---|---|---|
--higgs-ref-text | Referentietranscript: de tekstinhoud van --voice-sample (verbetert klonen) | |
--higgs-temperature | 0.8 | Temperatuur van de bemonstering (standaard 0,8) |
--higgs-top-p | Nucleus-bemonsteringsdrempel (standaardafwijking) | |
--higgs-top-k | Top-k bemonstering cutoff (standaard uit) | |
--higgs-max-new-tokens | 2048 | Maximaal gegenereerde audioframes (25 per seconde) |
--higgs-seed | 0 | Zaad voor deterministische output |
--higgs-model-id | Hugging Face model ID | |
--higgs-bundle-dir | Een bundel laden uit deze lokale map |
Magpie-opties
NVIDIA Magpie-TTS Meertalige 357M, 9 talen met 5 gebakken luidsprekers. Kies de backend met --engine magpie (MLX, standaard) of --engine magpie-coreml (CoreML voor de grote modellen met MLX rijden de LocalTransformer + audio inbeddingen). Zie de Magpie-gids voor de volledige G2P-afbraak per taal. Voice klonen wordt niet ondersteund: --voice-sample, --speakeren --instruct worden afgewezen met een handige fout die wijst op --magpie-speaker In plaats daarvan.
| Optie | Standaard | Omschrijving |
|---|---|---|
--magpie-variant | int4 | Alleen MLX. Kwantisering: int4 (247 MB) of int8 (411 MB). Lost op tot aufklarer/Magpie-TTS-Multilingual-357M-MLX-<variant>. De CoreML engine gebruikt de INT8 CoreML en negeert deze vlag. |
--magpie-speaker | sofia | Gebakken speaker: sofia, aria, jason, leo, of john. Identiteit is consistent in alle 9 talen en beide backends. |
--magpie-temperature | 0.6 | De bemonsteringstemperatuur (0 = hebzuchtig). Gebruik 0.6 voor de Japanse hebzuchtige komt vast te zitten op de eerste zin. |
--magpie-top-k | 80 | Top-k filter voor bemonstering. |
--magpie-max-frames | 500 | Harde dop op codec frames (~23 s). |
--magpie-min-frames | 4 | Minimumframes voor EOS toegestaan. |
--magpie-prephonemized | Behandel invoer als IPA / fome stream; sla per taal G2P over. | |
--list-speakers | Druk de 5 gebakken speakers af en sluit af. |
magpie-coreml-groeven: de gebundelde NanoCodec wordt getraceerd op een vast 64-framevenster, dus --stream wordt afgewezen. --language ja auto-routes naar de MLX backend met een stderr-note (de CoreML-bundel verscheept nog geen JA-tokenizer-activa). De CoreML-motorluifel laadt de MLX-bundel op de eerste synthese om de lokale transformer en gemiddelde audio-beddingen te sturen; pure-CoreML-implementatie wordt gevolgd als een vervolg.
Voorbeelden:
# 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
Instructie TTS opties
Experimenteel: Native SDK ondersteuning van de hoofdbron bouwen. Homebrew en andere vooraf gebouwde CLI-vrijgaven kunnen deze motoren nog niet omvatten.
Gepubliceerd MLX bundels: aufklarer/FireRedTTS3-Instruct-MLX-fp32 · aufklarer/MOSS-VoiceGenerator-MLX-bf16
Geef één tekstargument, --instruct, en precies één bundelmap of compatibel model-ID. Referentieaudio, vaste luidsprekers en batch-invoer worden niet ondersteund.
Elke tekst- en instructieveld is beperkt tot 32.768 UTF-8 bytes. De volledige weergegeven invoerprompt, inclusief de sjabloon, moet binnen 4.096 tokens passen. Invoeren die beide grenzen overschrijden worden afgewezen.
FireRedTTS3-Instruct behoudt Float32 model- en decodergewichten. Het geeft gebufferde audio terug: laat --stream. Engels en Chinees --language aliassen worden geaccepteerd. Een generatielimiet verhoogt een fout in plaats van terug te keren naar afgekapt succes.
MOSS-VoiceGenerator behoudt BF16 taalgewichten en FP32 synthesizercodec. Gebruik --stream voor incrementele PCM. Verwijder --language en zet taalvereisten in --instruct. Afronding drains alle zestien codeboeken.
De kwaliteit van de instructie volgt niet. Short-script metingen beschrijven de geteste setup; bestaande model latency certificering blijft niet overtuigend.
| Optie | Standaard | Omschrijving |
|---|---|---|
--fireredtts3-bundle-dir | — | Compatibele lokale geëxporteerde bundel; kies dit of de model-ID optie. |
--fireredtts3-model-id | — | Gepubliceerde compatibele MLX bundel-ID; kies dit of een lokale map. |
--fireredtts3-flow-steps | 10 | Stroomstappen per akoestische patch. |
--fireredtts3-max-patches | 400 | Generatie cap; het bereiken van het voor voltooiing verhoogt een fout. |
--moss-voicegenerator-bundle-dir | — | Compatibele lokale geëxporteerde bundel; kies dit of de model-ID optie. |
--moss-voicegenerator-model-id | — | Gepubliceerde compatibele MLX bundel-ID; kies dit of een lokale map. |
--moss-voicegenerator-max-frames | 750 | Generatie cap; het bereiken van het voor voltooiing verhoogt een fout. |
--moss-voicegenerator-chunk-frames | 3 | Complete codec frames per PCM chunk (1Z32). |
--seed | 2 / 42 | Seed aanvragen: FireRedTTS3 standaard naar 2; MOSS-VoiceGenerator naar 42. |
FireRedTTS3-Instruct · MOSS-VoiceGenerator
kokoro
Lichtgewicht tekst-tot-spraak met Kokoro-82M op Neural Engine (CoreML). Niet-autoregressieve single forward pass, ~45ms latency.
speech kokoro "<text>" [options]
| Optie | Standaard | Omschrijving |
|---|---|---|
<text> | Te synthetiseren tekst | |
--voice | af_heart | Voice preset (50 beschikbaar in 10 talen) |
--language | en | Taalcode: en, es, fr, hi, it, ja, pt, zh, ko, de |
--output, -o | kokoro_output.wav | Uitvoer WAV bestandspad |
--list-voices | Alle beschikbare stemmen tonen en afsluiten | |
--model, -m | HuggingFace model ID |
Voorbeelden:
# 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
antwoord
Volledige dialoog tussen spraak en spraak met PersonaPlex 7B.
speech respond [options]
| Optie | Standaard | Omschrijving |
|---|---|---|
--input, -i | Invoeraudio WAV bestand (24kHz mono) (nodig) | |
--output, -o | response.wav | Uitvoerrespons WAV bestand |
--voice | NATM0 | Voice preset (bv. NATM0, NATF1 en VARF0) |
--system-prompt | assistant | Voorinstelling: assistant, focused, customer-service, teacher |
--system-prompt-text | Aangepaste systeemprompt tekst (overschrijft vooraf ingesteld) | |
--max-steps | 200 | Max generatie stappen op 12,5Hz (~16s) |
--stream | Audiodelen uitsturen tijdens de generatie | |
--compile | Gecompileerde transformator inschakelen (warmup + kernelfusie) | |
--list-voices | Beschikbare stemvoorinstellingen tonen | |
--list-prompts | Beschikbare systeempromptinstellingen tonen | |
--transcript | De innerlijke monoloogtekst van het model afdrukken | |
--json | Uitvoer als JSON (transcript, latency, audio pad) | |
--verbose | Gedetailleerde timing-informatie tonen |
Monsterneming overschrijven
| Optie | Standaard | Omschrijving |
|---|---|---|
--audio-temp | 0.8 | Geluidsbemonsteringstemperatuur |
--text-temp | 0.7 | Tekstbemonsteringstemperatuur |
--audio-top-k | 250 | Audio top-k kandidaten |
--repetition-penalty | 1.2 | Audioherhalingstraf (1.0 = uitgeschakeld) |
--text-repetition-penalty | 1.2 | Tekstherhalingstraf (1.0 = uitgeschakeld) |
--repetition-window | 30 | Herhalingsstrafvenster in frames |
--silence-early-stop | 15 | Stilteframes voor vroege stop (0 = uitgeschakeld) |
--entropy-threshold | 0 | Entropiedrempel voor vroege stop (0 = uitgeschakeld) |
--entropy-window | 10 | Consecutieve lage-entropie stappen voor vroege stop |
Voorbeelden:
# 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
voice-chat
Live full-duplex conversation with Soniqo, powered by NVIDIA Nemotron VoiceChat 11B. Microfoonmodus maakt Apple AEC mogelijk, streaming RNN-T bijschriften, mensgerichte real-time metrics, adaptieve 8→2→1-stap spraakverfijning, en begrensde invoerresynchronisatie in plaats van een lange stille inhaal.
speech voice-chat [options]
| Optie | Standaard | Omschrijving |
|---|---|---|
--model, -m | aufklarer/VoiceChat-11B-Perception-MLX-int5 | Hugging Face model ID of complete lokale bundel. |
--revision | main | Hub revisie. |
--system-prompt | Schakel de systeemprompt uit. | |
--mcp-config | Provider-neutrale JSON configuratie voor MCP gereedschapsservers. | |
--mcp-server | alle geconfigureerd | Selecteer één geconfigureerde server; herhaal om meer te selecteren. |
--mcp-write-policy | allow | Schrijfbeleid: onmiddellijk allow, model-gemedieerde confirm, of deny. |
--mcp-timeout-seconds | 15 | MCP tool-call timeout; serveropstart maakt ten minste 60 seconden mogelijk. |
--greet | Vraag het model eerst te begroeten. | |
--no-aec | Apple akoestische echo-annulering uitschakelen. | |
--no-transcript | Schakel live RNN-T-gebruikersbijschriften uit. | |
--no-rnnt-turn-taking | Schakel NVIDIA RNN-T terugval van de veiligheidsinval. | |
--prebuffer-frames | 3 | 80 ms uitvoerframes gebufferd voor afspelen. |
--max-buffered-frames | 8 | Maximaal in de wachtrij staan 80 ms microfoonframes voordat oud audio wordt gedropt. |
--max-seconds | Stop live gevangenneming na zoveel seconden. | |
--input | Lees een audiobestand in plaats van de microfoon. | |
--output, -o | Schrijf de volledige context 22.05 kHz WAV. | |
--tail-seconds | 6 | Stilte toegevoegd na invoer van het bestand. |
--force-turn-at-end | Dwing BOS in bestand EOF; alleen regressietests. | |
--plain | Gebruik alleen-addend uitvoer in plaats van het vaste dashboard. | |
--debug-timeline | Toon relatieve zin en gegenereerde-uitspraak-einde tijdstempels plus gedecodeerde tool-call lifecycle gebeurtenissen. | |
--terminal-width | 120 | Terminalweergavebreedte. |
--temperature | 0 | Teksttemperatuur: 0 is hebberig. |
--text-top-p | 1 | Tekst boven-p. |
--guidance | 0.2 | EAR-TTS-geleidingssterkte. |
--speech-top-p | 0.95 | EAR-TTS top-p. |
--speech-noise | 0.001 | EAR-TTS-bemonsteringslawaai. |
--speech-iterations | 8 | EAR-TTS MaskGIT iteraties per frame. |
--realtime-speech-iterations | 2 | Intermediate voice-refinement budget gebruikt om real-time snelheid te beschermen; ernstige overbelasting maakt gebruik van een stap. |
--live-speech-context-seconds | 20 | Recente EAR-TTS geschiedenis behouden in live modus; 0 houdt volledige geschiedenis. |
Voorbeelden:
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
Met MCP ingeschakeld, model-native call JSON en geretourneerde tool-respons tokens gebruiken NVIDIA's twee-fase asynchrone functie pad op een gecached stilte inbedding. Er is geen transcript router, regular-expression matcher, herinnering concept staat, argument reparatie, of scripted assistent antwoord: het checkpoint alleen kiest een hulpmiddel en zijn argumenten. De coördinator valideert alleen de native JSON, past lees-/schrijfbeleid toe, voert de geselecteerde MCP-operatie uit, en geeft gestructureerde resultaten terug via het getrainde functiekanaal. Schrijft onmiddellijk onder de standaarduitvoering allow beleid, het verwijderen van de tweede bevestiging draai van de herinneringen demo; een identieke voltooide schrijven wordt nog steeds onderdrukt tot nieuwe gebruiker spraak. confirm alleen wanneer een modelgemedieerde bevestiging uitdrukkelijk wordt gewenst, of deny MCP commando's draaien lokaal met de huidige gebruikers bestandssysteem en applicatierechten, dus gebruik alleen vertrouwde configuratiebestanden en serverpakketten.
Microfoonperceptie en RNN-T bijschriften blijven tussen de modelstappen, terwijl externe MCP I/O in een aparte taak draait. Spraakdragende microfoonregio's worden gevangen terwijl de gedeelde functiecache bezet is, worden bewaard als geëvalueerde inbeddingen en na het resultaat een oorzakelijke herhaling, zodat een bijschrifte follow-up niet langer wordt weggegooid. Replay is beperkt tot één oud semantisch frame per live callback; het bijbehorende nieuwe frame blijft in de wachtrij staan, replay tekst wordt gedwongen naar PAD, en al-uitgeklapte audio wordt nooit in de wachtlijst geplaatst voor de luidspreker. Bijpassende inactieve EAR-TTS cache posities synchroniseren later in begrensde acht-frame-chunks. Het dashboard scheidt de native call decodering, de MCP ronde trip, en tool-result cache synchronisatie. Decoderen tonen model/cache compute plus live interleave, het restant gebruikt door actor opbrengsten, boekhouding en systeem stelling; voorgrond audio RTF meet geen van die achtergrond werk. Zodra een oproep is geopend, het geforceerd-PAD tekstkanaal slaat zijn ongebruikte full-vocabulaire projectie over. Na EOTC, de twee-fase pad bevriest de gedeelde taal en EAR-TTS tijdlijn terwijl het externe resultaat is in behandeling; microfoon frames blijven live voor waarneming en RNN-T, maar worden niet synthetische PAD-posities voor het resultaat. Bekende resultaten opnieuw afspelen in begrensde 16De live lus leest één samenhangende functie snapshot en één MCP snapshot elke 160 ms in plaats van het maken van meerdere acteur calls na elk microfoon frame. Gewoon gesprek behoudt de 40-frame RNN-T veiligheidsvalkback, terwijl een reeds voorgestelde native tool candidate kan committen na acht lege frames. De tekst- en functiekanalen delen nog steeds één Nemotron-H cache, dus coherente resultaat-geconditioneerde spraak begint pas nadat de functie respons sluit; willekeurige assistent spraak kan niet veilig draaien als een tweede causale toekomst parallel.
Een schone M5 Pro 48 GB-ontgrendelingsprofiel gemeten 3.56–4.00 seconden vanaf het einde van de toespraak tot de eerste model-geauthoriseerde post-tool speech voor drie herinnering-lijst zinnen met een vaste 200 ms provider. Native JSON decodering gebruikt 27–31 stap in 1.15–1.28 seconden, en een 67-gesynchroniseerd resultaat in 0.58–0.72 seconden. Met een opzettelijk langzame twee-seconden provider, microfoon werk tijdens het wachten bleef 19.6 ms p95 en 19.8 maximaal ms. Een eindschoonloop gemeten 118 ms microfoon-service p95 en 139 ms p95 laatheid voorbij de 80 ms capture deadlines. De provider voegt daarom antwoord latency zonder bevriezing capture toe; de resterende rekenlimiet is native call decodering plus shared-cache resultaat replay.
De gebundelde demo stelt alleen list_reminders, create_reminder, en update_reminder; lijstontdekking blijft adapter-privé. Eén afgeplatte herinneringslezing dekt elke EventKit-lijst en vervangt lange provider UUID's met stabiele, sessie-gescoorde referenties zoals r1. Updates geven een van die model-zichtbare referenties terug, en de adapter lost het op precies voor uitvoering; het komt nooit overeen met gesproken namen of transcripttekst. No-op-updates en fractionele prioriteiten worden afgewezen in plaats van gerapporteerd als succesvolle veranderingen. Een gecontroleerde update-regressie daalde van 67 native stappen / 5,25 seconden met een realistische UUID tot 37 stappen / ongeveer 2,29 seconden met r1. Creëer vereist alleen een naam terwijl optionele provider de standaardwaarden facultatief blijven.
Bestandsmodus is het hardwarevrije reproduceerbaare pad. --force-turn-at-end is alleen bedoeld voor gecontroleerde regressietests en mag niet worden gerapporteerd als natuurlijke turn-taking latency.
audio-vertaling
Streaming speech-to-speech translation using Kyutai Hibiki Zero-3B. FR / ES / PT / DE → EN, single binary, no cloud. Full guide →
speech audio-translate <input.wav> [options]
| Optie | Standaard | Omschrijving |
|---|---|---|
<input> | Bron audio WAV bestand (mono, herverdeeld naar 24 kHz intern) (nodig) | |
--output, -o | translated.wav | Uitvoer 24 kHz Engels WAV bestand |
--source-lang | fr | Brontaalhint (fr, es, pt, de). Automatisch gedetecteerd; alleen metadata. FR + ES zijn strikte E2E kanaries; PT + DE zijn het beste-inspanning. |
--quantization | 4bit | Variant: 4bit (~2,7 GB) of 8bit (~3,9 GB) |
--model-id | HuggingFace model id-override (neemt voorrang boven --quantization) | |
--compile | Voer de temporale transformator opwarmpas uit voordat u vertaalt | |
--verbose | Per-fase timings afdrukken (Mimi coderen, genereren, Mimi decoderen) | |
--transcript | Print de ruwe SPM token ID's van het model in de monoloog (SPM decoderen is een vervolg) |
Omgevingsvariabelen
| Variabele | Effect |
|---|---|
HIBIKI_GREEDY=1 | Dwing argmax decodering voor tekst + doel audio. Reproduceerbare .. gebruikt door de strikte CI kanaries. |
HIBIKI_MODEL_ID | Overschrijf de standaard aufklarer/Hibiki-Zero-3B-MLX-4bit repo op looptijd. |
Voorbeelden:
# 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
Offline spraakactiviteit detectie met Pyannote segmentatie.
speech vad <file> [options]
| Optie | Omschrijving |
|---|---|
<file> | Audio-bestand om te analyseren |
--model, -m | HuggingFace model ID |
--onset | Begindrempel (spraakstart) |
--offset | Verschuivingsdrempel (uitschakeleind) |
--min-speech | Minimale spraakduur in seconden |
--min-silence | Minimale stilteduur in seconden |
--json | Uitvoer als JSON |
vad-stream
Streaming voice activity detection met behulp van Silero VAD v5. Processeert spraak in 32ms brokken.
speech vad-stream <file> [options]
| Optie | Omschrijving |
|---|---|
<file> | Audio-bestand om te analyseren |
--engine | VAD motor: mlx (standaard) of coreml |
--model, -m | HuggingFace model ID (automatisch geselecteerd door motor) |
--onset | Begindrempel |
--offset | Verschuivingsdrempel |
--min-speech | Minimale spraakduur in seconden |
--min-silence | Minimale stilteduur in seconden |
--json | Uitvoer als JSON |
--smart-turn | Bevestig elke pauze met Smart Turn alvorens een segment te beëindigen; mid-sence pauzes samenvoegen tot één segment |
--turn-threshold | Smart Turn voltooidrempel (standaard 0.5) |
--turn-max-silence | Stilteseconden na een veto-pauze die het segment toch beëindigen (standaard 2.0) |
draaien
Eind-van-draai detectie met Smart Turn v3.2 (8M params, CoreML, 23 talen). Selecteer de laatste 8 s van een geregistreerde uitdrukking en drukt de kans af dat de spreker klaar is, de volledige / onvolledige uitspraak, en de gevolgtrekkingstijd.
speech turn <file> [options]
| Optie | Omschrijving |
|---|---|
<file> | Audio-bestand met één gebruiker draaien (elke sample rate); de laatste 8 s worden gebruikt |
--threshold | Waarschijnlijkheid waarbij de draai als volledig telt (standaard 0.5) |
--model, -m | HuggingFace model ID. Standaardwaarden voor aufklarer/Smart-Turn-v3.2-CoreML |
--model-dir | Lokale map met smart_turn.mlmodelc en config.json; slaat de download over |
--json | Uitvoer als 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
wakker worden
Wake-word / keyword spotting met behulp van de KWS Zipformer (3.49M params, CoreML INT8, 26× real-time, alleen Engels).
speech wake <file> [options]
| Optie | Omschrijving |
|---|---|
<file> | Audio-bestand om te analyseren |
--keywords | Een of meer trefwoorden. Formaten: "hey soniqo" (greedy BPE), "hey soniqo:0.15:0.5" (met drempel/boost), of "LIGHT UP|▁ L IGHT ▁UP:0.25:2.0" (sherpa-onnx-stijl expliciete BPE-stukken) |
--keywords-file | Keyword file, één regel per regel (zelfde syntax als --keywords); # voor commentaar |
--model, -m | HuggingFace model ID. Standaardwaarden voor aufklarer/KWS-Zipformer-3M-CoreML-INT8 |
--json | Uitvoer als 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
Speaker diarization . identificeer wie gesproken wanneer.
speech diarize <file> [options]
| Optie | Standaard | Omschrijving |
|---|---|---|
<file> | Audio-bestand om te analyseren | |
--engine | pyannote | Diarization engine: pyannote, community1 (CoreML + native PLDA/VBx), sortformer, of nemotron3 |
--nemotron3-backend | coreml | Nemotron 3 backend: coreml of mlx |
--nemotron3-directory | Facultatief lokaal Nemotron 3 modelbundel | |
--nemotron3-compute-units | ane | CoreML rekeneenheden: ane, cpu, gpu, of all |
--community1-compute-units | ane | Community-1 CoreML rekeneenheden: ane, cpu, gpu, of all |
--num-speakers | Bekende exacte luidsprekertelling voor Community-1 | |
--min-speakers | 1 | Minimum aantal sprekers voor Community-1 |
--max-speakers | Maximum aantal sprekers voor Community-1 | |
--target-speaker | Audio inschrijven voor speakerextractie (alleen pyannote) | |
--embedding-engine | mlx | Speaker inbedding motor: mlx of coreml (alleen pyannote) |
--vad-filter | Voorfilter met Silero VAD (alleen pyannote) | |
--rttm | Uitvoer in RTTM-formaat | |
--json | Uitvoer als JSON | |
--score-against | Referentie RTTM-bestand om DER te berekenen |
Voorbeelden:
# 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
inbedluidspreker
Haal een speaker die vector insluit uit audio.
speech embed-speaker <file> [options]
| Optie | Omschrijving |
|---|---|
<file> | Audiobestand met luidsprekerstem |
--engine | mlx (standaard) of coreml voor WeSpeaker 256-dim; redimnet2 voor persistente identiteit CoreML 192-dim, camplusplus voor CAM++ CoreML 192-dim |
--json | Uitvoer als JSON |
taal-id
Identificeer de gesproken taal in een audiobestand.
speech language-id <file> [options]
| Optie | Omschrijving |
|---|---|
<file> | Te classificeren audiobestand |
--engine | Inferentiemotor: mlx of coreml |
--model | De Hugging Face model-ID negeren |
--top | Aantal gerangschikte taalkandidaten |
--json | Het resultaat als JSON uitvoeren |
speech language-id recording.wav --top 5
speech language-id recording.wav --engine coreml --json
denoise
Achtergrondruis verwijderen met DeepFilterNet3 op Neural Engine.
speech denoise <file> [options]
| Optie | Standaard | Omschrijving |
|---|---|---|
<file> | Audiobestand invoeren | |
--output, -o | input_clean.wav | Pad naar uitvoerbestand |
--model, -m | HuggingFace model ID |
Voorbeeld:
speech denoise noisy-recording.wav -o clean.wav
componeren
Maak 30 s muziek van een tekstprompt met MAGNeT op MLX.
speech compose <prompt> [options]
| Optie | Standaard | Omschrijving |
|---|---|---|
<prompt> | Tekstprompt die de te genereren muziek beschrijft (bv. "happy rock") | |
--output, -o | magnet.wav | Uitvoer WAV pad (32 kHz mono) |
--variant | small-int4 | Modelvariant: small-int4, small-int8, medium-int4, of medium-int8. Oplossen aan aufklarer/MAGNeT-{Small,Medium}-30secs-MLX-{4,8}bit. |
--temperature | 3.0 | De bemonsteringstemperatuur wordt lineair gegloeid per fase. |
--top-p | 0.9 | Nucleus-bemonsteringsdrempel. |
--cfg-max | 10.0 | Maximale classifier-vrije geleidingscoëfficiënt. |
--cfg-min | 1.0 | Min CFG-coëfficiënt (verzonken naast het maskerschema). |
--steps | 20,10,10,10 | Door komma's gescheiden decodering van iteraties per codeboek (4 waarden). |
--seed | Willekeurig zaad voor reproduceerbaare output. |
Voorbeelden:
# 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
Een directory van audiobestanden overschrijven; het model wordt eenmaal geladen.
speech transcribe-batch <input-dir> [options]
| Optie | Standaard | Omschrijving |
|---|---|---|
<input-dir> | Map van audiobestanden om te transcriberen (WAV, FLAC, enz.) | |
--output-dir | Uitvoermap voor de transcripten | |
--engine | qwen3 | ASR motor (zelfde waarden als transcribe) |
--jsonl | Uitvoerresultaten als JSON-regels, één per bestand |
herstellen
Herstellen van spraak (denoise + dereverb) met Sidon CoreML, 48 kHz uitgang.
speech restore <audio-file> [options]
| Optie | Standaard | Omschrijving |
|---|---|---|
--output, -o | input_restored.wav | Uitvoer WAV bestandspad (48 kHz) |
--variant | fp16 | Precisie/bundelvariant |
--compute-units | Core ML plaatsing voor beide fasen: ane, gpu, cpu, all (standaard: vocoder gpu, voorspeller auto) |
gescheiden
Scheid een muzieknummer in stengels (zang, drums, bas, andere).
speech separate <input> [options]
| Optie | Standaard | Omschrijving |
|---|---|---|
--stems | vocals,drums,bass,other | Stengels te extraheren: zang, drums, bas, andere |
--engine | umx | Motor: umx (standaard) of htdemucs (hogere kwaliteit) |
--output-dir | Uitvoermap voor de transcripten |
upsample
Audio super-resolutie met FlashSR . One-step gedistilleerd AudioSR, 48 kHz uitgang.
speech upsample <audio-file> [options]
| Optie | Standaard | Omschrijving |
|---|---|---|
--output, -o | hr.wav | Uitvoer WAV bestandspad (48 kHz) |
--variant | int4 | Precisie/bundelvariant |
--seed | Zaad voor deterministische output |
qwen3-tts-coreml
Swift ondersteunt 0,6B/256 en 1,7B/1024 bundels; 0,6B blijft de standaard. De experimentele 1,7B bundel standaard naar CPU en vereist een voorbereide 2048-kanaal Float32 .npy luidspreker inbedding via --speaker-embedding. GPU/ANE en iOS validatie blijven gescheiden.
speech qwen3-tts-coreml "<text>" [options]
| Optie | Standaard | Omschrijving |
|---|---|---|
--output, -o | output.wav | Uitvoer WAV bestandspad |
--language | english | Uitvoertaal |
--model | Hugging Face model ID | |
--model-directory | — | Lokale gecompileerde modelbundel; heeft voorrang boven het downloaden van --model. |
--speaker-embedding | — | Bereid Float32 .npy luidspreker inbedding die overeenkomt met de modelbreedte (1024 of 2048). |
vibevoice
Tekst-tot-spraak met Microsoft VibeVoice (MLX).
speech vibevoice "<text>" --voice-cache <cache> [options]
| Optie | Standaard | Omschrijving |
|---|---|---|
--voice-cache, -v | Voice cache van vibevoice-encode-voice (nodig) | |
--steps | DPM-Solver-inferentiestappen (hoger = betere kwaliteit) | |
--cfg | 1.3 | Klasse-vrije geleidingssterkte |
--long-form | Chunked long-form synthese voor lange teksten |
vibevoice-encode-voice
Mint een VibeVoice voice cache van een referentie opname plus transcript.
speech vibevoice-encode-voice <input> "<transcript>" [options]
| Optie | Standaard | Omschrijving |
|---|---|---|
<input> | Referentie audiobestand | |
<transcript> | Transcript van de referentie audio (alleen Engels) | |
--output, -o | Voice cache (.safetensors) |
vertalen
Vertaal tekst in een doeltaal met MADLAD-400 (MLX).
speech translate "<text>" --to <lang> [options]
| Optie | Standaard | Omschrijving |
|---|---|---|
--to, -t | Doeltaalcode (ISO 639-1, bv. es, zh, ja) | |
--stream | Stream tokens als ze decoderen | |
--model | Hugging Face model ID |
sleutel
Kies uit toegestane antwoorden met behulp van Clef-flash lokaal op Apple Silicon. Ontwikkelingsvoorbeeld.
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 Het verzoek bevat tekst in state en een bestelde questions array. Elk veld heeft een id en een type: choice met een choices kaart, noul voor true/false, of score met besteld levels. Uitvoer is JSON met waarschijnlijkheid, geselecteerde antwoorden, aantal token, laadtijd van het model, en beslissingstijd.
Standaard wordt het commando gedownload aufklarer/Clef-flash-9B-MLX-4bit Gebruik --model-dir voor bestaande bestanden of --offline voor de cache. De token limiet standaard 4096 en accepteert 1Z16384. Zie de Clef-gids voor een volledig verzoek en gemeten geheugengebruik.
gliner
Schema-geconditioneerde tekstclassificatie en entiteit overspant met GLiNER2.5-Decide (MLX). Ontwikkelingsvoorbeeld: nog niet in een uitgave. Geef de tekst door aan stdin.
speech gliner classify "<text>" --labels <a,b,c> [options]
speech gliner extract "<text>" --labels <a,b,c> [options]
| Optie | Standaard | Omschrijving |
|---|---|---|
--variant | int8 | Gepubliceerde gewichten om te downloaden: fp32, fp16 of int8 |
--model | Hugging Face overschrijven | |
--model-dir | Lokale modelmap in plaats van te downloaden | |
--labels | Door komma's gescheiden candidate labels (1 tot 255, onderscheiden) | |
--description | Labelbeschrijving als label=tekst; herhaalbaar | |
--task | actie | Taaknaam in de schemaprompt (alleen classificeren) |
--threshold | 0.5 | Minimale spanscore (alleen extractie) |
--evaluate-layers | Evalueer encoderlagen één voor één om het piekgeheugen te verlagen | |
--json | JSON met elke waarschijnlijkheid, of overspanningen met UTF-16 offsets, plus timings |
avatar-motion
Genereer NVIDIA Audio2Face-3D avatar-motion-coëfficient frames van spraakaudio.
speech avatar-motion <input> [options]
| Optie | Standaard | Omschrijving |
|---|---|---|
--output, -o | avatar-motion.jsonl | Uitvoer JSONL-bestandspad |
--model | …James-MLX | Avatar identiteitsbundel (James standaard; Claire en Mark beschikbaar) |
--verbose | Afdrukken timing en frame telt |
MOSS-TTS-Nano
Gebruik --voice-sample voor voice-klonen; er is geen referentie-transcript nodig. Mono-verwijzingen worden gedupliceerd naar stereo, herclassificeerd naar 48 kHz en opgevuld tot een 80 ms grens. Codeer een referentie eenmaal en hergebruik de codes van de verzoeken.
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 | Model repository of lokale map |
--moss-nano-compute-units | cpu | cpu of gpu |
--moss-nano-max-frames | 300 | Maximaal 80 ms frames; natuurlijk EOS vereist |
--moss-nano-seed | 0 | Herkauwbaar Swift bemonsteringszaad |
Lokale lokale gevolgtrekking
Voor 12B worden herhaalde naast elkaar liggende tool-call sluitmarkers direct na een volledige, gevalideerde oproep gebruikt. Ze maken geen andere oproep of wijzigen de argumenten ervan. Standalone markers en onjuist gevormde argumenten blijven fouten; E4B behoudt strikte behandeling.
Om mislukte native chatverzoeken te behouden, moet failureCaptureDirectory worden ingesteld in het gevolg manifest. Capture is standaard uitgeschakeld. De directory moet groep en andere toegang weigeren; nieuwe mappen gebruiken 0700 en foutbestanden gebruiken 0600. Bestanden omvatten de exacte aanvraagformulier, ID-aanvraag en foutmelding. Gereed 12B-generaties behouden ook de weergegeven prompt, token-ID's, ruwe uitvoer en stoppen reden voor het verwerken. E4B fouten hebben geen ruwe generatierecord. Deze lokale bestanden bevatten conversatie- en gereedschapsinhoud; HTTP-fouten en succesvolle verzoeken bevatten ze niet.
Facultatief agentDirectory laadt een geënsceneerd Gemma 4 12B Unified INT4 tekstmodel naast E4B. Gebruik model: "gemma4-12b-it" voor chat met inheemse hulpmiddelen, resultaatgeschiedenis en annulering. E4B blijft beschikbaar voor andere verzoeken. Gemma4UnifiedChat gebruikt de gepinde MLX tekstimplementatie en geeft elk verzoek uit de KV-cache. Response parsing verwijdert kanaaldelimiters uit de geretourneerde tekst. Onderwezen tool-call terminators worden afgewezen als misvormde reacties.
Bronbouwen accepteren --inference-manifest modellen.json om gefaseerd Gemma 4 E4B INT4, VoxCPM2, volledig Whisper Large-v3 en Silero VAD. Deze dienst start offline en wijst incompatibele modelidentiteit af.
speech-server --inference-manifest models.json --port 8080Voxtral TTS
Voxtral 4B TTS 2603 draait lokaal op Apple Silicon via de Voxtral tTS module: 20 vooraf ingestelde stemmen, negen talen en 24 kHz mono speech.
speech speak "Hello, welcome to Voxtral." --engine voxtral --voxtral-voice casual_male --stream --voxtral-chunk-frames 3 -o hello.wav
speech speak --engine voxtral --list-speakers
speech speak "Bonjour." --engine voxtral --voxtral-voice fr_female --voxtral-max-frames 500 --voxtral-seed 0 -o bonjour.wavUitsluitend stemmen vooraf instellen; referentie-audio klonen is niet beschikbaar. Audiouitvoer stroomt door de SDK, CLI, WebSocket en HTTP PCM. Geef de volledige invoertekst vooraf. Modelgewichten gebruiken CC BY-NC 4.0.
Fish Audio Drama 3
Experimentele native MLX ondersteuning voor Drama 3 is beschikbaar via FishAudioDrama3Model. Een 35B hybride-aandacht MoE backbone, temporal audio tower en Fish DAC codec produceren 44,1 kHz mono audio. De 4-bits controlepunt doorgegeven golfvorm en onafhankelijke ASR controles voor tekst alleen genereren, referentie klonen en CLI output op Apple M5 Pro. 8-bit en BF16 blijven ongeldig.
Geheugenmodus balanced is de standaard. Onbezet MLX buffers worden gesnoeid boven 512 MiB in fasegrenzen; dit is geen totale geheugenlimiet. Globale allocatiegrenzen blijven ongewijzigd. Selecteer --fish-drama3-memory-mode unrestricted of memoryOptions: .unrestricted for great loading and the previous caching behavior.
Tekst-only generatie stelt 794.4 MiB referentie-encodergewichten uit. De eerste referentie-encoding ladingen en behoudt ze, dus houd codec.safetensors tot dan beschikbaar. Voorgecomponeerde referentiecodes hebben de encoder niet nodig.
Voice cloning vereist een referentie clip en de exacte transcriptie. Speaker tags 0Z15 en inline emoties worden ondersteund. PCM streaming is beschikbaar via generateStreaming, generateStream en --stream. De standaard brok bevat 3 codec frames, over 139 ms audio. Automatische lang-tekst chunking en gestreamde tekst invoer blijven niet beschikbaar. Het bereiken van de frame limiet gooit een fout.
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))| Optie | Standaard |
|---|---|
--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 |
Gebouwd met Fish Audio. Bundels behouden de Community License and Notice.