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

BreezeTTS · CLI · Swift API

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

Swift en CLI-gebruik

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)
--engineqwen3ASR-motor: qwen3, qwen3-coreml, parakeet, nemotron, omnilingual, cohere, voxtral, moss, whisper
--model, -m0.6BModelvariant: 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-tokensCoreML: 512
MLX: 5120
[moss] Maximale gegenereerde transcript tokens.
--kv-cachefp16[moss mlx] Dynamische KV-cache-precisie: fp16 of int8.
--languageTaal hint (facultatief, genegeerd door omnilingual)
--window10[omnilingual] CoreML venstergrootte in seconden: 5 of 10
--backendcoreml[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.
--variant300M[omnilingual mlx] Grootte: 300M, 1B, 3B, of 7B
--bits4[omnilingual mlx] Kwantiseringsbits: 4 of 8
--streamstreaming transcriptie inschakelen met VAD
--max-segment10 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, -m0.6BASR model voor transcriptie: 0.6B, 1.7B, of volledige ID
--aligner-modelGedwongen uitlijner model ID
--languageTaalhint

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)
--engineqwen3TTS-motor: qwen3, cosyvoice, voxcpm2, indextts2, f5, higgs, breeze, indic-mio, magpie, of magpie-coreml, moss-nano, fireredtts3, moss-voicegenerator
--output, -ooutput.wav Uitvoer WAV bestandspad
--languageenglishTaal. Ga naar het moedertaaldialect van de luidspreker wanneer --speaker is ingesteld.
--streamStreamsynthese 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
--modelbaseModelvariant: base, customVoice, of volledige HF model ID
--speakerSpeaker stem (vereist --model customVoice)
--instructStijl instructie (CustomVoice model)
--list-speakers Beschikbare luidsprekers tonen en afsluiten
--temperature0.3 Temperatuur van de bemonstering
--top-k50 Monstername van top-k
--max-tokens500 Maximale tokens (500 = ~40s audio)
--batch-file Bestand met één tekst per regel voor batchsynthese
--batch-size4 Maximale batchgrootte voor parallelle generatie
--first-chunk-frames3Codec-frames in eerste gestreamde brok
--chunk-frames25Codec frames per gestreamd brok

CosyVoice3 Opties

Optie Standaard Omschrijving
--speakersSpeaker mapping voor dialoog met meerdere luidsprekers: s1=alice.wav,s2=bob.wav
--cosy-instructStijl instructie (overschrijft standaard). Bedient stemstijl voor CosyVoice3.
--turn-gap0.2Stiltekloof tussen dialoog in seconden
--crossfade0.0Crossfade overlapping tussen bochten in seconden
--model-idHuggingFace model ID

VoxCPM2 Opties

Optie Standaard Omschrijving
--voxcpm2-variantbf16Kwantisatievariant: 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-value2.0 Classificatorvrije geleidingsschaal voor de diffusiemonsternemer.
--voxcpm2-timesteps10Euler solver stappen per gegenereerde audio patch.
--voxcpm2-max-tokens2000Max gegenereerde patches voor geforceerde stop.
--voxcpm2-min-tokens2Min patches voordat de stopkop mag vuren.
--seedZaad 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-idaufklarer/IndexTTS2-MLX-fp16HuggingFace model ID. Standaardwaarden voor aufklarer/IndexTTS2-MLX-fp16.
--indextts2-bundle-dirLaad een lokale uitgebreide bundel in plaats van te downloaden van Hugging Face.
--indextts2-emotion-audioOptionele emotie/stijl referentie audio. Standaarden voor de speaker referentie.
--indextts2-emotionOptionele preset of 8-waarde emotie vector. Voorinstellingen zijn inclusief eager, happy, exciteden calm.
--indextts2-emotion-weight1.0Schaal --indextts2-emotion; houd bescheiden wanneer luidsprekeridentiteit belangrijk is.
--indextts2-speaking-rate1.0Spreeksnelheidsmultiplicator van 0.5 tot 1.5; waarden boven 1.0 zijn sneller.
--indextts2-max-pauseOptionele dop voor lange interne pauzes met lage energie, in seconden.
--indextts2-s2mel-steps15S2Mel 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-steps16 Stappen voor de flow-matching (standaard 16; 32 voor maximale trouw)
--f5-cfg-strength2.0 Klasse-vrije geleidingssterkte
--f5-sway-1.0Sway-bemonsteringscoëfficiënt
--f5-speed1.0Speaking-rate multiplier
--f5-seed0Zaad voor deterministische output
--f5-target-rms0.1 Referentie RMS normalisatiedoelstelling
--f5-model-idHugging 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-temperature0.8 Temperatuur van de bemonstering (standaard 0,8)
--higgs-top-pNucleus-bemonsteringsdrempel (standaardafwijking)
--higgs-top-kTop-k bemonstering cutoff (standaard uit)
--higgs-max-new-tokens2048 Maximaal gegenereerde audioframes (25 per seconde)
--higgs-seed0Zaad voor deterministische output
--higgs-model-idHugging 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-variantint4 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-speakersofiaGebakken speaker: sofia, aria, jason, leo, of john. Identiteit is consistent in alle 9 talen en beide backends.
--magpie-temperature0.6De bemonsteringstemperatuur (0 = hebzuchtig). Gebruik 0.6 voor de Japanse hebzuchtige komt vast te zitten op de eerste zin.
--magpie-top-k80Top-k filter voor bemonstering.
--magpie-max-frames500 Harde dop op codec frames (~23 s).
--magpie-min-frames4Minimumframes voor EOS toegestaan.
--magpie-prephonemizedBehandel 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.

Implementatie (PR #541): main

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-steps10 Stroomstappen per akoestische patch.
--fireredtts3-max-patches400Generatie 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-frames750Generatie cap; het bereiken van het voor voltooiing verhoogt een fout.
--moss-voicegenerator-chunk-frames3Complete codec frames per PCM chunk (1Z32).
--seed2 / 42Seed 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
--voiceaf_heartVoice preset (50 beschikbaar in 10 talen)
--languageenTaalcode: en, es, fr, hi, it, ja, pt, zh, ko, de
--output, -okokoro_output.wav Uitvoer WAV bestandspad
--list-voices Alle beschikbare stemmen tonen en afsluiten
--model, -mHuggingFace 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, -oresponse.wav Uitvoerrespons WAV bestand
--voiceNATM0Voice preset (bv. NATM0, NATF1 en VARF0)
--system-promptassistant Voorinstelling: assistant, focused, customer-service, teacher
--system-prompt-text Aangepaste systeemprompt tekst (overschrijft vooraf ingesteld)
--max-steps200Max generatie stappen op 12,5Hz (~16s)
--streamAudiodelen uitsturen tijdens de generatie
--compileGecompileerde transformator inschakelen (warmup + kernelfusie)
--list-voices Beschikbare stemvoorinstellingen tonen
--list-prompts Beschikbare systeempromptinstellingen tonen
--transcriptDe 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-temp0.8 Geluidsbemonsteringstemperatuur
--text-temp0.7 Tekstbemonsteringstemperatuur
--audio-top-k250Audio top-k kandidaten
--repetition-penalty1.2Audioherhalingstraf (1.0 = uitgeschakeld)
--text-repetition-penalty1.2 Tekstherhalingstraf (1.0 = uitgeschakeld)
--repetition-window30Herhalingsstrafvenster in frames
--silence-early-stop15Stilteframes voor vroege stop (0 = uitgeschakeld)
--entropy-threshold0Entropiedrempel voor vroege stop (0 = uitgeschakeld)
--entropy-window10 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, -maufklarer/VoiceChat-11B-Perception-MLX-int5Hugging Face model ID of complete lokale bundel.
--revisionmainHub revisie.
--system-promptSchakel de systeemprompt uit.
--mcp-configProvider-neutrale JSON configuratie voor MCP gereedschapsservers.
--mcp-server alle geconfigureerdSelecteer één geconfigureerde server; herhaal om meer te selecteren.
--mcp-write-policyallowSchrijfbeleid: onmiddellijk allow, model-gemedieerde confirm, of deny.
--mcp-timeout-seconds15MCP 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-transcriptSchakel live RNN-T-gebruikersbijschriften uit.
--no-rnnt-turn-takingSchakel NVIDIA RNN-T terugval van de veiligheidsinval.
--prebuffer-frames380 ms uitvoerframes gebufferd voor afspelen.
--max-buffered-frames8 Maximaal in de wachtrij staan 80 ms microfoonframes voordat oud audio wordt gedropt.
--max-secondsStop live gevangenneming na zoveel seconden.
--input Lees een audiobestand in plaats van de microfoon.
--output, -oSchrijf de volledige context 22.05 kHz WAV.
--tail-seconds6Stilte toegevoegd na invoer van het bestand.
--force-turn-at-endDwing BOS in bestand EOF; alleen regressietests.
--plain Gebruik alleen-addend uitvoer in plaats van het vaste dashboard.
--debug-timelineToon relatieve zin en gegenereerde-uitspraak-einde tijdstempels plus gedecodeerde tool-call lifecycle gebeurtenissen.
--terminal-width120Terminalweergavebreedte.
--temperature0 Teksttemperatuur: 0 is hebberig.
--text-top-p1 Tekst boven-p.
--guidance0.2EAR-TTS-geleidingssterkte.
--speech-top-p0.95EAR-TTS top-p.
--speech-noise0.001EAR-TTS-bemonsteringslawaai.
--speech-iterations8EAR-TTS MaskGIT iteraties per frame.
--realtime-speech-iterations2Intermediate voice-refinement budget gebruikt om real-time snelheid te beschermen; ernstige overbelasting maakt gebruik van een stap.
--live-speech-context-seconds20 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, -otranslated.wav Uitvoer 24 kHz Engels WAV bestand
--source-langfr Brontaalhint (fr, es, pt, de). Automatisch gedetecteerd; alleen metadata. FR + ES zijn strikte E2E kanaries; PT + DE zijn het beste-inspanning.
--quantization4bitVariant: 4bit (~2,7 GB) of 8bit (~3,9 GB)
--model-idHuggingFace model id-override (neemt voorrang boven --quantization)
--compileVoer de temporale transformator opwarmpas uit voordat u vertaalt
--verbosePer-fase timings afdrukken (Mimi coderen, genereren, Mimi decoderen)
--transcriptPrint de ruwe SPM token ID's van het model in de monoloog (SPM decoderen is een vervolg)

Omgevingsvariabelen

VariabeleEffect
HIBIKI_GREEDY=1Dwing argmax decodering voor tekst + doel audio. Reproduceerbare .. gebruikt door de strikte CI kanaries.
HIBIKI_MODEL_IDOverschrijf 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, -mHuggingFace model ID
--onset Begindrempel (spraakstart)
--offsetVerschuivingsdrempel (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
--engineVAD motor: mlx (standaard) of coreml
--model, -mHuggingFace model ID (automatisch geselecteerd door motor)
--onset Begindrempel
--offsetVerschuivingsdrempel
--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-thresholdSmart Turn voltooidrempel (standaard 0.5)
--turn-max-silenceStilteseconden 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, -mHuggingFace 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-fileKeyword file, één regel per regel (zelfde syntax als --keywords); # voor commentaar
--model, -mHuggingFace 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
--enginepyannoteDiarization engine: pyannote, community1 (CoreML + native PLDA/VBx), sortformer, of nemotron3
--nemotron3-backendcoremlNemotron 3 backend: coreml of mlx
--nemotron3-directoryFacultatief lokaal Nemotron 3 modelbundel
--nemotron3-compute-unitsaneCoreML rekeneenheden: ane, cpu, gpu, of all
--community1-compute-unitsaneCommunity-1 CoreML rekeneenheden: ane, cpu, gpu, of all
--num-speakersBekende exacte luidsprekertelling voor Community-1
--min-speakers1Minimum aantal sprekers voor Community-1
--max-speakersMaximum aantal sprekers voor Community-1
--target-speakerAudio inschrijven voor speakerextractie (alleen pyannote)
--embedding-enginemlxSpeaker 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
--enginemlx (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
--engineInferentiemotor: mlx of coreml
--modelDe 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, -oinput_clean.wavPad naar uitvoerbestand
--model, -mHuggingFace 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, -omagnet.wav Uitvoer WAV pad (32 kHz mono)
--variantsmall-int4Modelvariant: small-int4, small-int8, medium-int4, of medium-int8. Oplossen aan aufklarer/MAGNeT-{Small,Medium}-30secs-MLX-{4,8}bit.
--temperature3.0De bemonsteringstemperatuur wordt lineair gegloeid per fase.
--top-p0.9Nucleus-bemonsteringsdrempel.
--cfg-max10.0 Maximale classifier-vrije geleidingscoëfficiënt.
--cfg-min1.0Min CFG-coëfficiënt (verzonken naast het maskerschema).
--steps20,10,10,10 Door komma's gescheiden decodering van iteraties per codeboek (4 waarden).
--seedWillekeurig 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
--engineqwen3ASR 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, -oinput_restored.wav Uitvoer WAV bestandspad (48 kHz)
--variantfp16Precisie/bundelvariant
--compute-unitsCore 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
--stemsvocals,drums,bass,otherStengels te extraheren: zang, drums, bas, andere
--engineumxMotor: 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, -ohr.wav Uitvoer WAV bestandspad (48 kHz)
--variantint4Precisie/bundelvariant
--seedZaad 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, -ooutput.wav Uitvoer WAV bestandspad
--languageenglish Uitvoertaal
--modelHugging 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, -vVoice cache van vibevoice-encode-voice (nodig)
--stepsDPM-Solver-inferentiestappen (hoger = betere kwaliteit)
--cfg1.3 Klasse-vrije geleidingssterkte
--long-formChunked 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, -oVoice 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)
--streamStream tokens als ze decoderen
--modelHugging 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
--variantint8 Gepubliceerde gewichten om te downloaden: fp32, fp16 of int8
--modelHugging Face overschrijven
--model-dir Lokale modelmap in plaats van te downloaden
--labels Door komma's gescheiden candidate labels (1 tot 255, onderscheiden)
--descriptionLabelbeschrijving als label=tekst; herhaalbaar
--task actieTaaknaam in de schemaprompt (alleen classificeren)
--threshold0.5 Minimale spanscore (alleen extractie)
--evaluate-layersEvalueer encoderlagen één voor één om het piekgeheugen te verlagen
--jsonJSON 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, -oavatar-motion.jsonl Uitvoer JSONL-bestandspad
--model…James-MLXAvatar identiteitsbundel (James standaard; Claire en Mark beschikbaar)
--verboseAfdrukken 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-modelaufklarer/MOSS-TTS-Nano-100M-CoreMLModel repository of lokale map
--moss-nano-compute-unitscpucpu of gpu
--moss-nano-max-frames300 Maximaal 80 ms frames; natuurlijk EOS vereist
--moss-nano-seed0Herkauwbaar Swift bemonsteringszaad

MOSS-TTS-Nano

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 8080

API details

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

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

Lees de Voxtral TTS gids

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

Gebouwd met Fish Audio. Bundels behouden de Community License and Notice.

4-bit benchmark