Tłumaczenie automatyczne · Oryginał angielski

Dokumentacja CLI

Breeze TTS 2 · Breeze TTS

Angielski / chiński TTS z designem głosu, klonowaniem referencyjnym i kierunkiem oraz strumieniowym audio (MLX BF16 / 8-bit, 24 kHz; badania / licencja niekomercyjna).

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: Opcjonalny budżet pamięci podręcznej MLX w MiB o szerokim zastosowaniu procesowym; 0 wyłącza buforowanie.
  • --breeze-reference-text
  • --breeze-temperature: 0.9
  • --breeze-top-k: 50
  • --breeze-top-p: 1
  • --breeze-cfg-scale: 4
  • --breeze-max-frames: 750
  • --breeze-seed: 42
  • --first-chunk-frames: 3
  • --chunk-frames: 25

Native Apple runtime · PockettTS

PocketTTS dodaje rodzimą syntezę mowy CoreML do speech-swift. Wszystkie etapy domyślne do wykonania tylko CPU. angielskie strumienie Alba preset 1,920- próbki w 24 kHz (80 ms per frame).

Wykorzystanie Swift i CLI

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

W speech Polecenie jest punktem wejścia do lokalnego przetwarzania mowy.

Zainstaluj za pomocą Homebrew

Na Apple Silicon z macOS 15 lub nowszym, zainstalować CLI za pomocą Homebrew:

brew install speech
speech --help

Aby zaktualizować istniejącą instalację, uruchom brew upgrade speech.

Alternatywne: budować ze źródła

W speech-swift checkout, run make build, a następnie użyć .build/release/speechPatrz Rozpoczęcie przewodnika dla warunków wstępnych i instrukcji budowy źródła.

transcribe

Transcribe plików audio do tekstu.

speech transcribe <file> [options]
OpcjaDomyślneOpis
<file>Plik audio do transkrypcji (WAV, M4A i MP3)
--engineqwen3Silnik ASR: qwen3, qwen3-coreml, parakeet, nemotron, omnilingual, cohere, voxtral, moss, whisper
--model, -m0.6BWariant modelu: 0.6B, 1.7Blub pełny identyfikator modelu HuggingFace (tylko qwen3) [whisper]: default, turbo, lub pełny CoreML HuggingFace repo ID.
[cohere/voxtral]: INT5 (domyślnie), INT8, FP16, a Hugging Face model ID lub katalog lokalny. [moss coreml]: int8 (domyślnie) lub fp16; [moss mlx]: int5 (domyślnie) lub int8MOSS akceptuje również kompatybilny identyfikator repozytorium Hugging Face lub katalog lokalny.
--max-tokensCoreML: 512
MLX: 5120
[moss] Maksymalne generowane znaczniki transkrypcji.
--kv-cachefp16[moss mlx] Dynamiczna precyzja pamięci podręcznej: fp16 lub int8.
--languagePodpowiedź językowa (opcjonalnie, ignorowana przez wszystkowydajne)
--window10[omnilingual] Rozmiar okna CoreML w sekundach: 5 lub 10
--backendcoreml[omnilingual/moss] Wstecz: coreml (Neural Engine) mlx (Metal GPU). MOSS MLX zapewnia dynamikę 131,072-token kontekst; MOSS CoreML używa stałej 1,024-stan symboliczny.
--variant300M[omnilingual mlx] Rozmiar: 300M, 1B, 3Blub 7B
--bits4[omnilingual mlx] Bity ilościowe: 4 lub 8
--streamWłącz transkrypcję strumieniową za pomocą VAD
--max-segment10Maksymalny czas trwania segmentu w sekundach (streaming)
--partialCzęściowe wyniki Emit podczas mowy (streaming)

Przykłady:

# 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

wyrównanie

Word- poziom wymuszone wyrównanie - uzyskać dokładne znaczniki czasu dla każdego słowa.

speech align <file> [options]
OpcjaDomyślneOpis
<file>Plik audio
--text, -tTekst do wyrównania (jeśli pominięto, transkrypcje najpierw)
--model, -m0.6BASR model do transkrypcji: 0.6B, 1.7Blub pełny identyfikator
--aligner-modelIdentyfikator modelu wymuszonego
--languagePodpowiedź językowa

Przykłady:

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

Mów.

Synteza Text- to- mowy.

speech speak "<text>" [options]
OpcjaDomyślneOpis
<text>Tekst do syntetyzowania (opcjonalne, jeśli używa --batch-file)
--engineqwen3Silnik TTS: qwen3, cosyvoice, voxcpm2, indextts2, f5, higgs, breeze, indic-mio, magpielub magpie-coreml, moss-nano, fireredtts3, moss-voicegenerator
--output, -ooutput.wavWyjście ścieżki pliku WAV
--languageenglishJęzyk. Pomiń użycie rodzimego dialektu głośnika, gdy --speaker jest ustawiony.
--streamWłącz syntezę strumieniową
--voice-sampleReferencyjne audio do klonowania głosu (działa z qwen3, cosyvoice, voxcpm2, f5, higgsoraz indextts2)
--verbosePokaż szczegółowe informacje o czasie

Opcje Qwen3-TTS

OpcjaDomyślneOpis
--modelbaseWariant modelu: base, customVoicelub pełny identyfikator modelu HF
--speakerGłos głośnika (wymaga --model customVoice)
--instructInstrukcja stylu (CustomVoice model)
--list-speakersLista dostępnych głośników i wyjścia
--temperature0.3Temperatura pobierania próbek
--top-k50Pobieranie próbek Top- k
--max-tokens500Maksymalne żetony (500 = ~ 40s audio)
--batch-filePlik z jednym tekstem na linię do syntezy wsadowej
--batch-size4Maksymalny rozmiar partii dla równoległej generacji
--first-chunk-frames3Ramki kodekowe w pierwszym strumieniowym kawałku
--chunk-frames25Ramki kodekowe na strumieniowy kawałek

Opcje CosyVoice3

OpcjaDomyślneOpis
--speakersMapowanie głośników dla dialogu wielogłośnikowego: s1=alice.wav,s2=bob.wav
--cosy-instructInstrukcja stylu (domyślnie nadjeżdża). Steruje stylem głosu dla CosyVoice3.
--turn-gap0.2Luka w ciszy między dialogiem obraca się w sekundach
--crossfade0.0Crossfade pokrywają się między obrotami w sekundach
--model-idHuggingFace model ID

Opcje VoxCPM2

OpcjaDomyślneOpis
--voxcpm2-variantbf16Wariant ilościowy: bf16, int8lub int4. Resolutions to aufklarer/VoxCPM2-MLX-<variant>.
--voxcpm2-instructOpis głosu w języku naturalnym (projekt głosu), np. "młoda kobieta, ciepła i delikatna".
--voxcpm2-ref-audioReferencyjny plik audio do klonowania (16 kHz mono, przestawiony wewnętrznie).
--voxcpm2-prompt-audio / --voxcpm2-prompt-textPara "Ostatecznego klonowania" - klip referencyjny + jego transkrypcja do klonowania chroniącego prosodię.
--voxcpm2-cfg-value2.0Skala naprowadzania wolnego od substancji klasycznych dla próbnika dyfuzji.
--voxcpm2-timesteps10Etapy rozpuszczania eulera na generowaną łatę audio.
--voxcpm2-max-tokens2000Max generował łatki przed przymusowym zatrzymaniem.
--voxcpm2-min-tokens2Min plastry przed odpaleniem głowicy stopu.
--seedNasienie MLX RNG przed syntezą (determinalistyczne przez przejazdy).

Opcje IndexTTS2

IndexTTS2 jest zerostrzałowym silnikiem klonującym głos, który jest obsługiwany przez rozszerzony pakiet MLX. Wymaga --voice-sample i obecnie działa tylko syntezy wsadowej.

OpcjaDomyślneOpis
--indextts2-model-idaufklarer/IndexTTS2-MLX-fp16Identyfikator modelu HuggingFace. Domyślnie aufklarer/IndexTTS2-MLX-fp16.
--indextts2-bundle-dirWczytaj lokalny pakiet rozszerzony zamiast pobierać z Hugging Face.
--indextts2-emotion-audioOpcjonalne emocje / styl odniesienia audio. Domyślnie do odniesienia głośnika.
--indextts2-emotionOpcjonalnie ustawiony wektor emocjonujący 8.Presety zawierają eager, happy, excitedoraz calm.
--indextts2-emotion-weight1.0Skale --indextts2-emotion; zachować skromność, gdy kwestia tożsamości mówcy ma znaczenie.
--indextts2-speaking-rate1.0Mnożnik stopy głośnikowej z 0.5 do 1.5; wartości powyżej 1.0 są szybsze.
--indextts2-max-pauseOpcjonalny kapsel dla długich wewnętrznych pauz o niskiej energii, w sekundach.
--indextts2-s2mel-steps15Etapy przepływu S2Mel (domyślnie 15, potwierdzony przez ucho; 25 pasuje dokładnie do źródła)

Opcje F5-TTS

OpcjaDomyślneOpis
--f5-reference-textTranskrypcja referencyjna: zawartość tekstu --voice-sample (wymagana)
--f5-steps16Stopnie dopasowujące do przepływu (domyślnie 16; 32 dla maksymalnej wierności)
--f5-cfg-strength2.0Siła naprowadzania wolna od substancji klasycznych
--f5-sway-1.0Współczynnik próbkowania kołyski
--f5-speed1.0Mnożnik stopy głośnikowej
--f5-seed0Nasiona do produkcji deterministycznej
--f5-target-rms0.1Referencyjny cel normalizacji RMS
--f5-model-idHugging Face model ID
--f5-bundle-dirWczytaj pakiet z tego lokalnego katalogu

Higgs TTS 3 Opcje

OpcjaDomyślneOpis
--higgs-ref-textTranskrypcja referencyjna: zawartość tekstu --voice-sample (poprawia klonowanie)
--higgs-temperature0.8Temperatura pobierania próbek (domyślna 0,8)
--higgs-top-pPróg pobierania próbek Nucleus (domyślnie wyłączony)
--higgs-top-kWyłącznik do pobierania próbek Top- k (domyślnie wyłączony)
--higgs-max-new-tokens2048Maksymalne generowane ramy audio (25 na sekundę)
--higgs-seed0Nasiona do produkcji deterministycznej
--higgs-model-idHugging Face model ID
--higgs-bundle-dirWczytaj pakiet z tego lokalnego katalogu

Opcje sromu

NVIDIA Magpie- TTS Wielojęzyczny 357M, 9 języki z pieczonymi głośnikami 5. Wybierz tło --engine magpie (MLX, domyślnie) lub --engine magpie-coreml (CoreML dla dużych modeli z MLX jazdy LocalTransformer + Audio osadzania). Przewodnik po sromie dla pełnego przejęzyczenia G2P podział. Klonowanie głosu nie jest obsługiwane: --voice-sample, --speakeroraz --instruct są odrzucone z pomocnym błędem wskazującym na --magpie-speaker Zamiast tego.

OpcjaDomyślneOpis
--magpie-variantint4Wyłącznie MLX. Ilościowanie: int4 (247 MB) int8 (411 MB). aufklarer/Magpie-TTS-Multilingual-357M-MLX-<variant>. Silnik CoreML używa pakietu INT8 CoreML i ignoruje tę flagę.
--magpie-speakersofiaGłośnik pieczony: sofia, aria, jason, leolub johnTożsamość jest spójna we wszystkich językach 9 i obu tyłach.
--magpie-temperature0.6Temperatura pobierania próbek (0 = chciwość). 0.6 dla Japończyków - chciwy utknął na pierwszym zdaniu.
--magpie-top-k80Filtr Top- k do pobierania próbek.
--magpie-max-frames500Twarde wieczko na ramie kodekowej (~ 23 s).
--magpie-min-frames4Minimalne ramy przed EOS dozwolone.
--magpie-prephonemizedTreat input as IPA / phoneme stream; skip per- language G2P.
--list-speakersWydrukować 5 pieczonych głośników i wyjść.

magpie- coreml gaveats: połączenie NanoCodec jest śledzone w stałym oknie 64- ramki, więc --stream zostaje odrzucony. --language ja auto- trasach do MLX oparcie z nutą stderr ( CoreML pakiet nie wysyła jeszcze aktywa tokenizer JA). CoreML silnik lazy- ładuje MLX pakiet na pierwszej syntezie, aby napędzić LocalTransformer i średnio osadzone audio; pure- CoreML wdrażanie jest śledzone jako kontynuacja.

Przykłady:

# 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

Instrukcja Opcje TTS

Eksperymentalne: Zbuduj natywną obsługę SDK z głównego źródła. Homebrew i inne wcześniej zbudowane wydania CLI mogą nie zawierać tych silników jeszcze.

Realizacja (PR # 541): main

Opublikowane pakiety MLX: aufklarer/FireRedTTS3-Instruct-MLX-fp32 · aufklarer/MOSS-VoiceGenerator-MLX-bf16

Dostarcz jeden argument tekstowy, --instruct, i dokładnie jeden katalog pakietów lub kompatybilny model ID. Referencyjne audio, stałe głośniki i wejście wsadowe są nieobsługiwane.

Każde pole tekstowe i instruktażowe jest ograniczone do bajtów 32,768 UTF-8. Kompletny wyświetlony sygnał wejściowy, w tym jego szablon, musi mieścić się w żetonach 4,096, przy czym wejścia przekraczające każdą z wartości granicznych są odrzucane.

FireRedTTS3-Instruct zachowuje model Float32 i wagi dekoderów. Zwraca buforowany dźwięk: omit --stream. Angielski i chiński aliasy --language są akceptowane. Granica generacji podnosi błąd zamiast zwrotu okrojonego sukcesu.

MOSS- VoiceGenerator zachowuje wagę językową BF16 i kodek syntezy FP32. Użyj --stream dla przyrostowego PCM. Omit --language oraz umieścić wymagania językowe w --instruct, a zakończenie wysysa wszystkie szesnaście kodebook.

Pomiary krótkiego skryptu opisują testowaną konfigurację; istniejący model certyfikacji opóźniania pozostaje nierozstrzygający.

OpcjaDomyślneOpis
--fireredtts3-bundle-dir—Kompatybilny lokalny eksportowany pakiet; wybierz tę lub opcję model- ID.
--fireredtts3-model-id—Opublikowany kompatybilny identyfikator pakietu MLX; wybierz ten lub lokalny katalog.
--fireredtts3-flow-steps10Etapy przepływu na plaster akustyczny.
--fireredtts3-max-patches400Zasięg generacji; osiągnięcie go przed ukończeniem powoduje błąd.
--moss-voicegenerator-bundle-dir—Kompatybilny lokalny eksportowany pakiet; wybierz tę lub opcję model- ID.
--moss-voicegenerator-model-id—Opublikowany kompatybilny identyfikator pakietu MLX; wybierz ten lub lokalny katalog.
--moss-voicegenerator-max-frames750Zasięg generacji; osiągnięcie go przed ukończeniem powoduje błąd.
--moss-voicegenerator-chunk-frames3Kompletne ramy kodekowe na element PCM (1-32).
--seed2 / 42Żądanie nasion: FireRedTTS3 domyślnie 2; MOSS- VoiceGenerator do 42.

FireRedTTS3-Instruct · MOSS- VoiceGenerator

kokoro

Lekkie text- to- mowy przy użyciu Kokoro-82M na Neural Engine (CoreML). Non-autoregresywny - pojedyncze przejście do przodu, ~ 45ms latency.

speech kokoro "<text>" [options]
OpcjaDomyślneOpis
<text>Tekst do syntetyzowania
--voiceaf_heartPreset głosowy (50 dostępnych w 10 językach)
--languageenKod języka: en, es, fr, hi, it, ja, pt, zh, ko, de
--output, -okokoro_output.wavWyjście ścieżki pliku WAV
--list-voicesLista wszystkich dostępnych głosów i wyjść
--model, -mHuggingFace model ID

Przykłady:

# 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

odpowiedz

Full-duplex dialog mowy przy użyciu PersonaPlex 7B.

speech respond [options]
OpcjaDomyślneOpis
--input, -iPlik wejściowy audio WAV (24kHz mono) (wymagane)
--output, -oresponse.wavOdpowiedź wyjściowa pliku WAV
--voiceNATM0Preset głosu (np. NATM0, NATF1 i VARF0)
--system-promptassistantPreset: assistant, focused, customer-service, teacher
--system-prompt-textNiestandardowy tekst systemowy (przekroczenie ustawionego poziomu)
--max-steps200Maksymalne etapy wytwarzania przy 12,5Hz (~ 16 s)
--streamEmit audio fragmentów podczas generacji
--compileWłącz skompilowany transformator (rozgrzewanie + fuzja jądra)
--list-voicesLista dostępnych ustawień głosowych
--list-promptsLista dostępnych ustawień systemowych
--transcriptWydrukuj wewnętrzny tekst monolog modelu
--jsonWyjście jako JSON (transkrypcja, opóźnienie, ścieżka audio)
--verbosePokaż szczegółowe informacje o czasie

Przekroczenie pobierania próbek

OpcjaDomyślneOpis
--audio-temp0.8Temperatura próbkowania dźwięku
--text-temp0.7Temperatura próbkowania tekstu
--audio-top-k250Kandydaci na głośnomówiący
--repetition-penalty1.2Kara za powtarzanie dźwięku (1.0 = wyłączone)
--text-repetition-penalty1.2Kara za powtarzanie tekstu (1.0 = wyłączone)
--repetition-window30Okno kary powtórzenia w ramkach
--silence-early-stop15Ramki do wyciszenia przed wczesnym zatrzymaniem (0 = wyłączone)
--entropy-threshold0Próg entropii tekstowej dla wczesnego zatrzymania (0 = wyłączone)
--entropy-window10Poszczególne etapy niskoentropii przed wczesnym zatrzymaniem

Przykłady:

# 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

Na żywo pełne-duplex rozmowy z Soniqo, zasilany przez NVIDIA Nemotron VoiceChat 11B. Tryb mikrofonu umożliwia Apple AEC, streaming RNN- T podpisy, człowieka w czasie rzeczywistym mierniki, adaptacyjne 8→2→1-krok Udoskonalenie głosu, i ograniczone wejście resynchronizacji zamiast długi cichy chwyt-up.

speech voice-chat [options]
OpcjaDomyślneOpis
--model, -maufklarer/VoiceChat-11B-Perception-MLX-int5Hugging Face model ID lub kompletny pakiet lokalny.
--revisionmain- Rewizja miąższu.
--system-promptPrzekrocz tryb systemowy.
--mcp-configKonfiguracja JSON neutralna dla serwerów narzędzi MCP.
--mcp-serverwszystkie skonfigurowaneWybierz jeden skonfigurowany serwer; powtórz, aby wybrać więcej.
--mcp-write-policyallowPolityka pisania: natychmiastowa allow, model- intervered confirmlub deny.
--mcp-timeout-seconds15MCP - timeout wywołania; uruchamianie serwera pozwala na co najmniej 60 sekund.
--greetNajpierw poproś modelkę, żeby się przywitała.
--no-aecWyłącz anulowanie echa akustycznego Apple.
--no-transcriptWyłącz podpisy użytkowników RNN- T.
--no-rnnt-turn-takingWyłącz NVIDIA RNN- T turning-taking safety asfalts.
--prebuffer-frames380 ms ramki wyjściowe buforowane przed odtwarzaniem.
--max-buffered-frames8Maksymalny kolejka 80 ms mikrofonu ramki przed nieświeży audio jest upuszczony.
--max-secondsPo tylu sekundach, przestańcie na żywo.
--inputCzytaj plik audio zamiast mikrofonu.
--output, -oNapisz pełny kontekst 22.05 kHz WAV.
--tail-seconds6Cisza dołączona po wejściu pliku.
--force-turn-at-endWymuś BOS w pliku EOF; tylko testy regresji.
--plainUżyj tylko wyjścia apend- zamiast stałej deski rozdzielczej.
--debug-timelinePokaż względną frazę i uogólnione znaczniki czasu (timestabs) oraz dekodowane zdarzenia związane z cyklem życia.
--terminal-width120Szerokość wyświetlacza terminala.
--temperature0Temperatura tekstu; 0 jest chciwy.
--text-top-p1Tekst top- p.
--guidance0.2Siła naprowadzania EAR- TTS.
--speech-top-p0.95EAR- TTS top- p.
--speech-noise0.001EAR- TTS próbkowanie hałasu.
--speech-iterations8EAR- TTS MaskGIT iteracje na klatkę.
--realtime-speech-iterations2Średni budżet na poprawę jakości głosu wykorzystywany do ochrony prędkości w czasie rzeczywistym; poważne przeciążenie wykorzystuje jeden krok.
--live-speech-context-seconds20Ostatnia historia EAR- TTS zachowana w trybie live; 0 zachowuje pełną historię.

Przykłady:

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

Z włączoną funkcją MCP, model- native call JSON i zwrócone tokeny odpowiedzi narzędzi używają dwufazowej ścieżki funkcji Asynchronous NVIDIA na osadzaniu ciche buforowane. Nie ma transkrypcji router, regular- ekspresja matcher, przypomnienia projekt stanu, naprawy argumentów, lub skrypt asystent odpowiedzi: sam punkt kontrolny wybiera narzędzie i jego argumenty. Koordynator tylko waliduje natywny JSON, stosuje politykę odczytu / zapisu, wykonuje wybraną operację MCP i zwraca ustrukturyzowane wyniki poprzez przeszkolony kanał funkcyjny. allow zasady, usunięcie drugiego potwierdzenia skrętu z demo przypomnienia; identyczny wypełniony zapis jest nadal tłumiony do świeżej mowy użytkownika. confirm tylko wtedy, gdy potwierdzenie za pośrednictwem modela jest wyraźnie pożądane, lub deny komendy MCP uruchamiane lokalnie za pomocą systemu plików bieżącego użytkownika i uprawnień aplikacji, więc używaj tylko zaufanych plików konfiguracyjnych i pakietów serwerowych.

Percepcja mikrofonu i podpisy RNN- T są kontynuowane między etapami modelu, podczas gdy zewnętrzne MCP I / O działa w oddzielnym zadaniu. Przenośne regiony mikrofonu uchwycone podczas gdy wspólna funkcja cache jest zajęty są zatrzymywane jako ocenione embdings i odtwarzane przyczynowo po wyniku, więc podpisy follow- up nie jest już odrzucane. Replay jest ograniczony do jednego starego ramy semantyczne na żywo callback; odpowiadająca nowa ramka pozostaje w kolejce, repease tekst jest zmuszony do PAD, a już przeterminowane audio nie jest w kolejce do głośnika. Dopasowanie bezczynności EAR- TTS pozycji cache synchronizacji później w obciętych Eight- frame chunds. Dashboard separates rodzime call dekodowania, MCP runda trip i synchronizacja pamięci podręcznej z rezultatem narzędzia. Linie dekodowania i rezultatu pokazują model / kalkulację pamięci podrękowej plus live interleave, pozostałość użyta przez aktora plony, księgowość, i contention systemu; pierwszoplanowy dźwięk RTF nie mierzy żadnej z tych prac w tle. Gdy połączenie jest otwarte, obowiązkowy kanał tekstowy PAD pomija swoją nieużywaną projekcję pełnego słownictwa. Po EOTC, dwufazowa ścieżka zamraża wspólny język i osi czasu EAR- TTS, podczas gdy wynik zewnętrzny jest w toku; ramki mikrofonu pozostają na żywo dla percepcji i RNN- T, ale nie stają się syntetycznymi pozycjami PAD przed wynikiem. Znane wyniki powtórzenia w limitowanej 16-token caucal- prefill kawałki. Pętla na żywo odczytuje jeden spójny migawka funkcji i jeden MCP migawki co 160 ms zamiast wykonywania kilku połączeń aktorów po każdej ramie mikrofonu. Zwykła rozmowa zachowuje 40-frame RNN- T bezpieczeństwa fallback, podczas gdy już proponowany natywny kandydat narzędzie może popełnić po ośmiu pustych ramkach. Tekst i kanały funkcji nadal wspólne jeden Nemotron- H cache, więc spójne zależny od wyników mowy zaczyna się dopiero po zakończeniu odpowiedzi funkcji; arbitralne asystent mowy nie może bezpiecznie uruchomić jako druga przyczyna przyszłości równolegle.

Czysty M5 Pro 48 Zmierzony profil uwalniania GB 3.56–4.00 sekundy od końca mowy do pierwszego modela-autorski post-narzędzie mowy dla trzech przypomnienia-listy frazowania ze stałą 200 MS provider. Native JSON dekodowanie używane 27–31 stopień w 1.15–1.28 sekundy i 67-token wynik zsynchronizowany w 0.58–0.72 sekund. Z celowo wolne dwa-sekundowe dostawcy, praca mikrofonu podczas oczekiwania pozostał 19.6 ms p95 oraz 19.8 ms maximum. Ostateczny pomiar czystego przebiegu 118 ms microphone-service p95 oraz 139 ms p95 lateness beyond the 80 ms przechwytywania terminów. Dostawca dodaje więc latencję odpowiedzi bez przechwytywania zamrożenia; pozostałe limit obliczeń jest rodzime wywołanie dekodowania plus Shared- cache result resue.

Demo w pakiecie ujawnia tylko list_reminders, create_reminderoraz update_reminder; odkrycie listy pozostaje adapterowo-prywatne. Jeden spłaszczony przypomnienie obejmuje każdą listę EventKit i zastępuje długie UUID dostawcy ze stabilnymi, sesyjnoskopowymi referencjami, takimi jak: r1. Aktualizacje zwraca jeden z tych model- widocznych odniesień, a adapter rozwiązuje go dokładnie przed wykonaniem; nigdy nie pasuje do nazw wypowiedzianych lub tekstu transkrypcji. Aktualizację No- op i priorytety fractional są raczej odrzucone niż zgłaszane jako udane zmiany. Kontrolowana regresja aktualizacji spadła z 67 kroki / 5.25 sekundy z realistycznym UUID do 37 kroki / około 2.29 sekundy z r1. Tworzenie wymaga tylko nazwy, podczas gdy opcjonalne domyślne ustawienia dostawcy pozostają opcjonalne. Na froncie streaming RNN- T wykorzystuje NeMo- kompatybilne odbicie wyściełania na krawędziach okien toczenia zamiast zero wyściełań.

Tryb plików jest ścieżką reprodukcyjną beztwardego zapisu. --force-turn-at-end jest przeznaczony tylko do kontrolowanych testów regresji i nie może być zgłaszana jako naturalna zmienność.

audio- translate

Streaming przemówień-to@-@ mowy tłumaczenie za pomocą Kyutai Hibiki Zero-3B. FR / ES / PT / DE → PL, jeden binarny, nie chmura. Pełny przewodnik →

speech audio-translate <input.wav> [options]
OpcjaDomyślneOpis
<input>Źródło audio WAV (mono, przestawione wewnętrznie do 24 kHz) (wymagane)
--output, -otranslated.wavWyjście 24 kHz angielski plik WAV
--source-langfrPodpowiedź w języku źródłowym (fr, es, pt, de). Auto- wykryte; tylko metadane. FR + ES są rygorystyczne E2E kanarki; PT + DE są best- wysiłku.
--quantization4bitWariant: 4bit (~ 2.7 GB) 8bit 3.9 GB
--model-idHuggingFace model id device (ma pierwszeństwo nad --quantization)
--compileUruchom transformator temporalny rozgrzewający podanie przed tłumaczeniem
--verboseWydrukuj czas fazy przelotowej (Mimi kodowanie, generowanie, Mimi dekodowanie)
--transcriptWydrukuj wewnętrzne monologi modelu z tokenami SPM (okablowanie SPM jest kontynuacją)

Zmienne środowiska

ZmiennaEfekt
HIBIKI_GREEDY=1Wymuś dekodowanie argmax dla tekstu + docelowy dźwięk. Powielanie - używane przez ścisłych kanarków CI.
HIBIKI_MODEL_IDPomiń domyślną aufklarer/Hibiki-Zero-3B-MLX-4bit Repo w czasie biegania.

Przykłady:

# 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

Detekcja aktywności głosu przy użyciu segmentacji Pyannote.

speech vad <file> [options]
OpcjaOpis
<file>Plik audio do analizy
--model, -mHuggingFace model ID
--onsetPróg początkowy (początek mowy)
--offsetPróg offset (koniec mowy)
--min-speechMinimalny czas trwania mowy w sekundach
--min-silenceMinimalny czas ciszy w sekundach
--jsonWyjście jako JSON

vad- stream

Wykrywanie aktywności głosu przy użyciu strumieniowania Silero VAD v5. Procesy mowy w 32Ms chunks.

speech vad-stream <file> [options]
OpcjaOpis
<file>Plik audio do analizy
--engineSilnik VAD: mlx (domyślnie) lub coreml
--model, -mHuggingFace model ID (auto- wybrany przez silnik)
--onsetPróg początkowy
--offsetPróg offset
--min-speechMinimalny czas trwania mowy w sekundach
--min-silenceMinimalny czas ciszy w sekundach
--jsonWyjście jako JSON
--smart-turnPotwierdź każdą pauzę Smart Turn przed zakończeniem segmentu; pauzy w zdaniu środkowym łączą się w jeden segment
--turn-thresholdPróg zakończenia Smart Turn (wartość domyślna 0.5)
--turn-max-silenceSekundy ciszy po zawetowanej pauzie, która i tak kończy segment (domyślnie 2.0)

skręt

Wykrywanie zakrętu z Smart Turn v3.2 (8M params, CoreML, 23 ). Wyniki ostatniego 8 s zarejestrowanej wypowiedzi i drukuje prawdopodobieństwo, że głośnik skończył, kompletny / niekompletny werdykt i czas wnioskowania.

speech turn <file> [options]
OpcjaOpis
<file>Plik audio z jednym zwrotem użytkownika (każda częstotliwość próbkowania); używane są ostatnie 8 s
--thresholdPrawdopodobieństwo, w którym lub powyżej którego zakręt liczy się jako kompletny (domyślnie 0.5)
--model, -mIdentyfikator modelu HuggingFace. Domyślnie aufklarer/Smart-Turn-v3.2-CoreML
--model-dirLocal directory holding smart_turn.mlmodelc oraz config.json; pomija pobieranie
--jsonWyjście jako 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

budź się

Wake- word / słowo kluczowe wyświetlające urządzenie na KWS Zipformer (3.49M params, CoreML INT8, 26× real- time, tylko angielski).

speech wake <file> [options]
OpcjaOpis
<file>Plik audio do analizy
--keywordsJedno lub więcej słów kluczowych. Formaty: "hey soniqo" (chciwy BPE), "hey soniqo:0.15:0.5" (przy progu / zwiększeniu), lub "LIGHT UP|▁ L IGHT ▁UP:0.25:2.0" (sherpa- onnx- styl wyraźny BPE)
--keywords-filePlik słowa kluczowego, jeden wpis na linię (ta sama składnia co --keywords); # Uwagi
--model, -mIdentyfikator modelu HuggingFace. Domyślnie aufklarer/KWS-Zipformer-3M-CoreML-INT8
--jsonWyjście jako 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

diaryzacja

Diaryzacja mówcy - zidentyfikuj, kto mówił kiedy.

speech diarize <file> [options]
OpcjaDomyślneOpis
<file>Plik audio do analizy
--enginepyannoteSilnik diaryzacji: pyannote, community1 (CoreML + rodzima PLDA / VBx), sortformerlub nemotron3
--nemotron3-backendcoremlWtyczka Nemotron 3: coreml lub mlx
--nemotron3-directoryOpcjonalny pakiet modeli Nemotron 3
--nemotron3-compute-unitsaneJednostki obliczeniowe CoreML: ane, cpu, gpulub all
--community1-compute-unitsaneCommunity-1 CoreML jednostki obliczeniowe: ane, cpu, gpulub all
--num-speakersZnana dokładna liczba głośników dla Community-1
--min-speakers1Minimalna liczba głośników dla Community-1
--max-speakersMaksymalna liczba głośników dla Community-1
--target-speakerAudio enrollment do ekstrakcji głośnika docelowego (tylko piannote)
--embedding-enginemlxSilnik głośnikowy: mlx lub coreml (tylko piannote)
--vad-filterFiltr wstępny z Silero VAD (tylko piannote)
--rttmWyjście w formacie RTTM
--jsonWyjście jako JSON
--score-againstOdniesienie do pliku RTTM do obliczenia DER

Przykłady:

# 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

głośnik pokładowy

Wyciągnij głośnik osadzający wektor z audio.

speech embed-speaker <file> [options]
OpcjaOpis
<file>Plik audio zawierający głos głośnika
--enginemlx (domyślnie) lub coreml dla WeSpeaker 256- dim; redimnet2 dla tożsamości trwałej CoreML 192- dim; camplusplus dla CAM + + CoreML 192- dim
--jsonWyjście jako JSON

language- id

Identyfikacja języka mówionego w pliku audio.

speech language-id <file> [options]
OpcjaOpis
<file>Plik audio do klasyfikacji
--engineSilnik impulsowy: mlx lub koreml
--modelPominięcie identyfikatora modelu Hugging Face
--topLiczba kandydatów do rankingu językowego
--jsonWynik jako JSON
speech language-id recording.wav --top 5
speech language-id recording.wav --engine coreml --json

denoza

Usunąć dźwięk tła za pomocą DeepFilterNet3 na Neural Engine.

speech denoise <file> [options]
OpcjaDomyślneOpis
<file>Wprowadź plik audio
--output, -oinput_clean.wavŚcieżka pliku wyjściowego
--model, -mHuggingFace model ID

Przykład:

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

komponowanie

Generuj 30 s muzyki z polecenia tekstowego za pomocą MAGNET na MLX.

speech compose <prompt> [options]
OpcjaDomyślneOpis
<prompt>Plik tekstowy opisujący muzykę do wygenerowania (np. "happy rock")
--output, -omagnet.wavŚcieżka wyjściowa WAV (32 kHz mono)
--variantsmall-int4Wariant modelu: small-int4, small-int8, medium-int4lub medium-int8. Resolutions to aufklarer/MAGNeT-{Small,Medium}-30secs-MLX-{4,8}bit.
--temperature3.0Temperatura próbkowania, wyżarzana liniowo na każdym etapie.
--top-p0.9Próg pobierania próbek Nucleus.
--cfg-max10.0Maksymalny współczynnik naprowadzania wolny od klasyfikacji.
--cfg-min1.0Min współczynnik CFG (wyżarzany wzdłuż harmonogramu masek).
--steps20,10,10,10Oddzielone od Comma- dekodowania iteracji na codebook (4 wartości).
--seedLosowy materiał siewny do produkcji powtarzalnej.

Przykłady:

# 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

transkrybe- partia

Transcribe katalog plików audio; model jest ładowany raz.

speech transcribe-batch <input-dir> [options]
OpcjaDomyślneOpis
<input-dir>Katalog plików audio do zapisu (WAV, FLAC, itp.)
--output-dirKatalog wyjściowy dla transkryptów
--engineqwen3Silnik ASR (takie same wartości jak transkrypcja)
--jsonlWyniki wyjściowe jako linie JSON, jeden na plik

przywracanie

Przywróć mowę (denoise + dereverb) za pomocą wyjścia Sidon - CoreML, 48 kHz.

speech restore <audio-file> [options]
OpcjaDomyślneOpis
--output, -oinput_restored.wavŚcieżka wyjścia pliku WAV (48 kHz)
--variantfp16Wariant precyzji / pęczka
--compute-unitsUmieszczenie Core ML w obu etapach: ane, gpu, cpu, all (domyślnie: vocoder gpu, predyctor auto)

oddzielny

Oddziel utwór muzyczny na łodygi (wokale, perkusje, basy, inne).

speech separate <input> [options]
OpcjaDomyślneOpis
--stemsvocals,drums,bass,otherKamienie do wydobycia: wokale, perkusje, basy, pozostałe
--engineumxSilnik: umx (domyślnie) lub htdemucs (wyższa jakość)
--output-dirKatalog wyjściowy dla transkryptów

upsample

Superrozdzielczość audio z FlashSR - jednostopniowa destylacja AudioSR, wyjście 48 kHz.

speech upsample <audio-file> [options]
OpcjaDomyślneOpis
--output, -ohr.wavŚcieżka wyjścia pliku WAV (48 kHz)
--variantint4Wariant precyzji / pęczka
--seedNasiona do produkcji deterministycznej

qwen3-tts-coreml

Swift podpory 0.6B /256 oraz 1.7B /1024 wiązki; 0.6B pozostaje domyślny. Eksperymentalny 1.7B domyślne pakiety CPU i wymaga przygotowanego 2048- kanał Float32 .npy głośnik osadzany poprzez --speaker-embeddingGPU / ANE i iOS pozostają odrębne.

speech qwen3-tts-coreml "<text>" [options]
OpcjaDomyślneOpis
--output, -ooutput.wavWyjście ścieżki pliku WAV
--languageenglishJęzyk wyjściowy
--modelHugging Face model ID
--model-directory—Lokalny skompilowany pakiet modeli; ma pierwszeństwo przed pobieraniem --model.
--speaker-embedding—Gotowe Float32 .npy głośnik pasujący do szerokości modelu (1024 lub 2048).

vibevoice

Text- to- mowy z Microsoft VibeVoice (MLX).

speech vibevoice "<text>" --voice-cache <cache> [options]
OpcjaDomyślneOpis
--voice-cache, -vPodkładka głosowa z vibevoice- encode- voice (wymagane)
--stepsDPM- Etapy wnioskowania o rozwiązanie (wyższa = lepsza jakość)
--cfg1.3Siła naprowadzania wolna od substancji klasycznych
--long-formDwutlenek długowiecznej formy syntezy dla długich tekstów

vibevoice- encode- voice

Zamieść podkład głosu VibeVoice z nagrania odniesienia i transkrypcji.

speech vibevoice-encode-voice <input> "<transcript>" [options]
OpcjaDomyślneOpis
<input>Referencyjny plik audio
<transcript>Transcript of the reference audio (tylko w języku angielskim)
--output, -oWyjściowy podkład głosowy (.safetesensory)

Przetłumacz

Przetłumacz tekst na język docelowy za pomocą MADLAD-400 (MLX).

speech translate "<text>" --to <lang> [options]
OpcjaDomyślneOpis
--to, -tKod języka docelowego (ISO 639-1, np. es, zh, ja)
--streamStrumień żetonów, gdy dekodują
--modelHugging Face model ID

clef

Wybierz jedną z dozwolonych odpowiedzi używając Clef- flash lokalnie na Apple Silicon. Podgląd rozwoju.

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

Zapytanie zawiera tekst w state i zamówione questions tablica. Każde pole ma id oraz type: choice o choices mapa, noul dla true / false, lub score z zamówionym levels. Wyjściem jest JSON z prawdopodobieństwami, wybranymi odpowiedziami, licznikiem symboli, czasem obciążenia modela i czasem podejmowania decyzji.

Domyślnie, polecenie pobiera aufklarer/Clef-flash-9B-MLX-4bitUżyj. --model-dir dla istniejących plików lub --offline dla pamięci podręcznej. Token limit domyślnie do 4096 i akceptuje 1- 16384. Zobacz Clef guide dla pełnego żądania i mierzonego wykorzystania pamięci.

gliner

Schematycznie uwarunkowana klasyfikacja tekstu i podmiot rozciąga się z GLiNER2.5-Decide (MLX). Podgląd rozwoju: jeszcze nie w wydaniu. Pomiń tekst do czytania stdin.

speech gliner classify "<text>" --labels <a,b,c> [options]
speech gliner extract "<text>" --labels <a,b,c> [options]
OpcjaDomyślneOpis
--variantint8Opublikowane wagi do pobrania: fp32, fp16 lub int8
--modelHugging Face repozytorium nadrzędne
--model-dirLokalny katalog modeli zamiast pobierania
--labelsEtykiety kandydackie oddzielone od kombajnu (od 1 do 255, odrębne)
--descriptionOpis etykiety jako etykieta = tekst; powtarzalny
--taskdziałanieNazwa zadania w schema prinst (klasyfikacja tylko)
--threshold0.5Minimalna skala skali (tylko ekstrakt)
--evaluate-layersOcena warstw enkodera jeden na raz do niższej pamięci szczytowej
--jsonJSON z każdym prawdopodobieństwem, lub spans z przesunięcia UTF-16, plus timings

avatar- motion

Generuj ramę współczynnika przesuwu z dźwięku mowy NVIDIA Audio2Face-3D.

speech avatar-motion <input> [options]
OpcjaDomyślneOpis
--output, -oavatar-motion.jsonlŚcieżka wyjścia pliku JSONL
--model…James-MLXPakiet tożsamości Avatara (domyślnie James; Claire i Mark dostępne)
--verboseWydrukuj czas i ilość ramki

MOSS- TTS- Nano

Użyj --voice-sample do klonowania głosu; nie jest potrzebny zapis odniesienia. Odniesienia Mono są duplikowane do stereo, przestawione do 48 kHz i wyściełane do granicy 80 ms. Kodować referencję raz i ponownie jej kody w różnych żądaniach.

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-CoreMLRepozytorium modelu lub katalog lokalny
--moss-nano-compute-unitscpucpu lub gpu
--moss-nano-max-frames300Maksymalne ramy 80 ms; wymagane naturalne EOS
--moss-nano-seed0Odtwarzalny materiał siewny do pobierania próbek Swift

MOSS- TTS- Nano

Lokalne zgłoszenie rodzime

Dla 12B, powtarzające się przyległe znaczniki zamykające wywołanie narzędzi natychmiast po zakończeniu, zwalidowanego połączenia są konsumowane z tym wywołaniem. Nie tworzą one innego wywołania ani nie zmieniają jego argumentów. Markery standalone i zniekształcone argumenty pozostają błędami; E4B zachowuje ścisłą obsługę.

Aby zachować nieudany natywny chat, ustaw failureCaptureDirectory w manifeście referencyjnym. Domyślnie jest wyłączona przechwytywanie. Katalog musi odmówić dostępu grupowego i innego; nowe katalogi używają 0700 i plików błędów używać 0600. Pliki zawierają dokładny organ żądania, ID wniosku i błąd. Ukończone generacje 12B zachowują również renderowany sygnał, token ID, wyjściowe i stop przed parsowaniem. Niepowodzenia E4B nie mają surowego zapisu generacji. Te pliki lokalne zawierają zawartość rozmowy i narzędzia; błędy HTTP i udane żądania nie zawierają ich.

Fakultatywny agentDirectory ładuje ustawione Gemma 4 12B Unifikacja INT4 model tekstowy obok E4B. Użyj modelu: "gemma4-12b-it"dla czatu z natywnymi narzędziami, historii wyników i anulowania. E4B pozostaje dostępna dla innych wniosków. Gemma4UnifiedChat wykorzystuje przypinane MLX implementacja tekstu i uwalnia każdy podręcznik KV. Response parsing usuwa separatory kanałów z zwróconego tekstu. Osierocone terminatory wywołania narzędzi są odrzucane jako wadliwe odpowiedzi.

Budowy źródeł akceptują --inference-manifest models.json do wczytania ustawione Gemma 4 E4B INT4, VoxCPM2, pełny Whisper Large-v3oraz Silero VADUsługa ta rozpoczyna się w trybie offline i odrzuca niekompatybilne tożsamości modelu.

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

Szczegóły API

Voxtral TTS

Voxtral 4B TTS 2603 działa lokalnie Apple Silicon przez moduł Voxtral TTS: 20 preset voices, nine languages, and 24 KHz mono mowy.

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

Wyłącznie głosy preset; klonowanie referencji audio jest niedostępne. Strumienie wyjściowe audio przez SDK, CLI, WebSocket i HTTP PCM. Dostarczają kompletny tekst wejściowy z przodu. Wagi modelu używają CC BY- NC 4.0.

Przeczytaj przewodnik Voxtral TTS

Fish Audio Drama 3

Eksperymentalne natywne MLX wsparcie dla Drama 3 jest dostępny poprzez FishAudioDrama3ModelA 35B Hybrid- attention MoE kręgosłup, temporalna wieża audio i kodek Fish DAC produkcji 44.1 kHz mono audio. 4-bit checkpoint przeszedł fala i niezależny ASR sprawdzanie tylko dla produkcji, klonowania referencyjnego i CLI na Apple M5 Pro. 8-bit i BF16 pozostają niezatwierdzone.

Tryb pamięci balanced jest domyślny. Bezstronne bufory MLX są przycinane powyżej 512 MiB na granicy sceny; nie jest to limit pamięci całkowitej. Globalne limity allocatora pozostają niezmienione. Wybierz --fish-drama3-memory-mode unrestricted lub memoryOptions: .unrestricted dla chętnych ładowania i poprzedniego zachowania buforowania.

Tylko generacja Text- odracza 794.4 MiB referencyjnych ciężarów kodujących. Pierwsze odniesienia kodowania obciążeń i zachowuje je, więc zachować codec.safetensors dostępne do tego czasu. Przeliczone kody referencyjne nie potrzebują kodera.

Sklonowanie głosu wymaga klipu odniesienia i jego dokładnego zapisu. Głośnik tagi 0- 15 i emocje inline są obsługiwane. generateStreaming, generateStream oraz --streamDomyślny kawałek zawiera ramy kodekowe 3, o 139 ms audio. Automatyczne długotrwale tekstowe chunking i strumieniowane wejście tekstu pozostają niedostępne. Osiągnięcie limitu ramki powoduje błąd.

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))
OpcjaDomyślne
--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

Zbudowany z Fish Audio. Bundles zachowuje licencję wspólnotową i NOTICE.

Wskaźnik 4- bit