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).
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).
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-speakersW 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]
| Opcja | Domyślne | Opis |
|---|---|---|
<file> | Plik audio do transkrypcji (WAV, M4A i MP3) | |
--engine | qwen3 | Silnik ASR: qwen3, qwen3-coreml, parakeet, nemotron, omnilingual, cohere, voxtral, moss, whisper |
--model, -m | 0.6B | Wariant 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-tokens | CoreML: 512MLX: 5120 | [moss] Maksymalne generowane znaczniki transkrypcji. |
--kv-cache | fp16 | [moss mlx] Dynamiczna precyzja pamięci podręcznej: fp16 lub int8. |
--language | Podpowiedź językowa (opcjonalnie, ignorowana przez wszystkowydajne) | |
--window | 10 | [omnilingual] Rozmiar okna CoreML w sekundach: 5 lub 10 |
--backend | coreml | [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. |
--variant | 300M | [omnilingual mlx] Rozmiar: 300M, 1B, 3Blub 7B |
--bits | 4 | [omnilingual mlx] Bity ilościowe: 4 lub 8 |
--stream | Włącz transkrypcję strumieniową za pomocą VAD | |
--max-segment | 10 | Maksymalny czas trwania segmentu w sekundach (streaming) |
--partial | Częś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]
| Opcja | Domyślne | Opis |
|---|---|---|
<file> | Plik audio | |
--text, -t | Tekst do wyrównania (jeśli pominięto, transkrypcje najpierw) | |
--model, -m | 0.6B | ASR model do transkrypcji: 0.6B, 1.7Blub pełny identyfikator |
--aligner-model | Identyfikator modelu wymuszonego | |
--language | Podpowiedź 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]
| Opcja | Domyślne | Opis |
|---|---|---|
<text> | Tekst do syntetyzowania (opcjonalne, jeśli używa --batch-file) | |
--engine | qwen3 | Silnik TTS: qwen3, cosyvoice, voxcpm2, indextts2, f5, higgs, breeze, indic-mio, magpielub magpie-coreml, moss-nano, fireredtts3, moss-voicegenerator |
--output, -o | output.wav | Wyjście ścieżki pliku WAV |
--language | english | Język. Pomiń użycie rodzimego dialektu głośnika, gdy --speaker jest ustawiony. |
--stream | Włącz syntezę strumieniową | |
--voice-sample | Referencyjne audio do klonowania głosu (działa z qwen3, cosyvoice, voxcpm2, f5, higgsoraz indextts2) | |
--verbose | Pokaż szczegółowe informacje o czasie |
Opcje Qwen3-TTS
| Opcja | Domyślne | Opis |
|---|---|---|
--model | base | Wariant modelu: base, customVoicelub pełny identyfikator modelu HF |
--speaker | Głos głośnika (wymaga --model customVoice) | |
--instruct | Instrukcja stylu (CustomVoice model) | |
--list-speakers | Lista dostępnych głośników i wyjścia | |
--temperature | 0.3 | Temperatura pobierania próbek |
--top-k | 50 | Pobieranie próbek Top- k |
--max-tokens | 500 | Maksymalne żetony (500 = ~ 40s audio) |
--batch-file | Plik z jednym tekstem na linię do syntezy wsadowej | |
--batch-size | 4 | Maksymalny rozmiar partii dla równoległej generacji |
--first-chunk-frames | 3 | Ramki kodekowe w pierwszym strumieniowym kawałku |
--chunk-frames | 25 | Ramki kodekowe na strumieniowy kawałek |
Opcje CosyVoice3
| Opcja | Domyślne | Opis |
|---|---|---|
--speakers | Mapowanie głośników dla dialogu wielogłośnikowego: s1=alice.wav,s2=bob.wav | |
--cosy-instruct | Instrukcja stylu (domyślnie nadjeżdża). Steruje stylem głosu dla CosyVoice3. | |
--turn-gap | 0.2 | Luka w ciszy między dialogiem obraca się w sekundach |
--crossfade | 0.0 | Crossfade pokrywają się między obrotami w sekundach |
--model-id | HuggingFace model ID |
Opcje VoxCPM2
| Opcja | Domyślne | Opis |
|---|---|---|
--voxcpm2-variant | bf16 | Wariant ilościowy: bf16, int8lub int4. Resolutions to aufklarer/VoxCPM2-MLX-<variant>. |
--voxcpm2-instruct | Opis głosu w języku naturalnym (projekt głosu), np. "młoda kobieta, ciepła i delikatna". | |
--voxcpm2-ref-audio | Referencyjny plik audio do klonowania (16 kHz mono, przestawiony wewnętrznie). | |
--voxcpm2-prompt-audio / --voxcpm2-prompt-text | Para "Ostatecznego klonowania" - klip referencyjny + jego transkrypcja do klonowania chroniącego prosodię. | |
--voxcpm2-cfg-value | 2.0 | Skala naprowadzania wolnego od substancji klasycznych dla próbnika dyfuzji. |
--voxcpm2-timesteps | 10 | Etapy rozpuszczania eulera na generowaną łatę audio. |
--voxcpm2-max-tokens | 2000 | Max generował łatki przed przymusowym zatrzymaniem. |
--voxcpm2-min-tokens | 2 | Min plastry przed odpaleniem głowicy stopu. |
--seed | Nasienie 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.
| Opcja | Domyślne | Opis |
|---|---|---|
--indextts2-model-id | aufklarer/IndexTTS2-MLX-fp16 | Identyfikator modelu HuggingFace. Domyślnie aufklarer/IndexTTS2-MLX-fp16. |
--indextts2-bundle-dir | Wczytaj lokalny pakiet rozszerzony zamiast pobierać z Hugging Face. | |
--indextts2-emotion-audio | Opcjonalne emocje / styl odniesienia audio. Domyślnie do odniesienia głośnika. | |
--indextts2-emotion | Opcjonalnie ustawiony wektor emocjonujący 8.Presety zawierają eager, happy, excitedoraz calm. | |
--indextts2-emotion-weight | 1.0 | Skale --indextts2-emotion; zachować skromność, gdy kwestia tożsamości mówcy ma znaczenie. |
--indextts2-speaking-rate | 1.0 | Mnożnik stopy głośnikowej z 0.5 do 1.5; wartości powyżej 1.0 są szybsze. |
--indextts2-max-pause | Opcjonalny kapsel dla długich wewnętrznych pauz o niskiej energii, w sekundach. | |
--indextts2-s2mel-steps | 15 | Etapy przepływu S2Mel (domyślnie 15, potwierdzony przez ucho; 25 pasuje dokładnie do źródła) |
Opcje F5-TTS
| Opcja | Domyślne | Opis |
|---|---|---|
--f5-reference-text | Transkrypcja referencyjna: zawartość tekstu --voice-sample (wymagana) | |
--f5-steps | 16 | Stopnie dopasowujące do przepływu (domyślnie 16; 32 dla maksymalnej wierności) |
--f5-cfg-strength | 2.0 | Siła naprowadzania wolna od substancji klasycznych |
--f5-sway | -1.0 | Współczynnik próbkowania kołyski |
--f5-speed | 1.0 | Mnożnik stopy głośnikowej |
--f5-seed | 0 | Nasiona do produkcji deterministycznej |
--f5-target-rms | 0.1 | Referencyjny cel normalizacji RMS |
--f5-model-id | Hugging Face model ID | |
--f5-bundle-dir | Wczytaj pakiet z tego lokalnego katalogu |
Higgs TTS 3 Opcje
| Opcja | Domyślne | Opis |
|---|---|---|
--higgs-ref-text | Transkrypcja referencyjna: zawartość tekstu --voice-sample (poprawia klonowanie) | |
--higgs-temperature | 0.8 | Temperatura pobierania próbek (domyślna 0,8) |
--higgs-top-p | Próg pobierania próbek Nucleus (domyślnie wyłączony) | |
--higgs-top-k | Wyłącznik do pobierania próbek Top- k (domyślnie wyłączony) | |
--higgs-max-new-tokens | 2048 | Maksymalne generowane ramy audio (25 na sekundę) |
--higgs-seed | 0 | Nasiona do produkcji deterministycznej |
--higgs-model-id | Hugging Face model ID | |
--higgs-bundle-dir | Wczytaj 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.
| Opcja | Domyślne | Opis |
|---|---|---|
--magpie-variant | int4 | Wyłą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-speaker | sofia | Głośnik pieczony: sofia, aria, jason, leolub johnTożsamość jest spójna we wszystkich językach 9 i obu tyłach. |
--magpie-temperature | 0.6 | Temperatura pobierania próbek (0 = chciwość). 0.6 dla Japończyków - chciwy utknął na pierwszym zdaniu. |
--magpie-top-k | 80 | Filtr Top- k do pobierania próbek. |
--magpie-max-frames | 500 | Twarde wieczko na ramie kodekowej (~ 23 s). |
--magpie-min-frames | 4 | Minimalne ramy przed EOS dozwolone. |
--magpie-prephonemized | Treat input as IPA / phoneme stream; skip per- language G2P. | |
--list-speakers | Wydrukować 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.
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.
| Opcja | Domyślne | Opis |
|---|---|---|
--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-steps | 10 | Etapy przepływu na plaster akustyczny. |
--fireredtts3-max-patches | 400 | Zasię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-frames | 750 | Zasięg generacji; osiągnięcie go przed ukończeniem powoduje błąd. |
--moss-voicegenerator-chunk-frames | 3 | Kompletne ramy kodekowe na element PCM (1-32). |
--seed | 2 / 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]
| Opcja | Domyślne | Opis |
|---|---|---|
<text> | Tekst do syntetyzowania | |
--voice | af_heart | Preset głosowy (50 dostępnych w 10 językach) |
--language | en | Kod języka: en, es, fr, hi, it, ja, pt, zh, ko, de |
--output, -o | kokoro_output.wav | Wyjście ścieżki pliku WAV |
--list-voices | Lista wszystkich dostępnych głosów i wyjść | |
--model, -m | HuggingFace 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]
| Opcja | Domyślne | Opis |
|---|---|---|
--input, -i | Plik wejściowy audio WAV (24kHz mono) (wymagane) | |
--output, -o | response.wav | Odpowiedź wyjściowa pliku WAV |
--voice | NATM0 | Preset głosu (np. NATM0, NATF1 i VARF0) |
--system-prompt | assistant | Preset: assistant, focused, customer-service, teacher |
--system-prompt-text | Niestandardowy tekst systemowy (przekroczenie ustawionego poziomu) | |
--max-steps | 200 | Maksymalne etapy wytwarzania przy 12,5Hz (~ 16 s) |
--stream | Emit audio fragmentów podczas generacji | |
--compile | Włącz skompilowany transformator (rozgrzewanie + fuzja jądra) | |
--list-voices | Lista dostępnych ustawień głosowych | |
--list-prompts | Lista dostępnych ustawień systemowych | |
--transcript | Wydrukuj wewnętrzny tekst monolog modelu | |
--json | Wyjście jako JSON (transkrypcja, opóźnienie, ścieżka audio) | |
--verbose | Pokaż szczegółowe informacje o czasie |
Przekroczenie pobierania próbek
| Opcja | Domyślne | Opis |
|---|---|---|
--audio-temp | 0.8 | Temperatura próbkowania dźwięku |
--text-temp | 0.7 | Temperatura próbkowania tekstu |
--audio-top-k | 250 | Kandydaci na głośnomówiący |
--repetition-penalty | 1.2 | Kara za powtarzanie dźwięku (1.0 = wyłączone) |
--text-repetition-penalty | 1.2 | Kara za powtarzanie tekstu (1.0 = wyłączone) |
--repetition-window | 30 | Okno kary powtórzenia w ramkach |
--silence-early-stop | 15 | Ramki do wyciszenia przed wczesnym zatrzymaniem (0 = wyłączone) |
--entropy-threshold | 0 | Próg entropii tekstowej dla wczesnego zatrzymania (0 = wyłączone) |
--entropy-window | 10 | Poszczegó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]
| Opcja | Domyślne | Opis |
|---|---|---|
--model, -m | aufklarer/VoiceChat-11B-Perception-MLX-int5 | Hugging Face model ID lub kompletny pakiet lokalny. |
--revision | main | - Rewizja miąższu. |
--system-prompt | Przekrocz tryb systemowy. | |
--mcp-config | Konfiguracja JSON neutralna dla serwerów narzędzi MCP. | |
--mcp-server | wszystkie skonfigurowane | Wybierz jeden skonfigurowany serwer; powtórz, aby wybrać więcej. |
--mcp-write-policy | allow | Polityka pisania: natychmiastowa allow, model- intervered confirmlub deny. |
--mcp-timeout-seconds | 15 | MCP - timeout wywołania; uruchamianie serwera pozwala na co najmniej 60 sekund. |
--greet | Najpierw poproś modelkę, żeby się przywitała. | |
--no-aec | Wyłącz anulowanie echa akustycznego Apple. | |
--no-transcript | Wyłącz podpisy użytkowników RNN- T. | |
--no-rnnt-turn-taking | Wyłącz NVIDIA RNN- T turning-taking safety asfalts. | |
--prebuffer-frames | 3 | 80 ms ramki wyjściowe buforowane przed odtwarzaniem. |
--max-buffered-frames | 8 | Maksymalny kolejka 80 ms mikrofonu ramki przed nieświeży audio jest upuszczony. |
--max-seconds | Po tylu sekundach, przestańcie na żywo. | |
--input | Czytaj plik audio zamiast mikrofonu. | |
--output, -o | Napisz pełny kontekst 22.05 kHz WAV. | |
--tail-seconds | 6 | Cisza dołączona po wejściu pliku. |
--force-turn-at-end | Wymuś BOS w pliku EOF; tylko testy regresji. | |
--plain | Użyj tylko wyjścia apend- zamiast stałej deski rozdzielczej. | |
--debug-timeline | Pokaż względną frazę i uogólnione znaczniki czasu (timestabs) oraz dekodowane zdarzenia związane z cyklem życia. | |
--terminal-width | 120 | Szerokość wyświetlacza terminala. |
--temperature | 0 | Temperatura tekstu; 0 jest chciwy. |
--text-top-p | 1 | Tekst top- p. |
--guidance | 0.2 | Siła naprowadzania EAR- TTS. |
--speech-top-p | 0.95 | EAR- TTS top- p. |
--speech-noise | 0.001 | EAR- TTS próbkowanie hałasu. |
--speech-iterations | 8 | EAR- TTS MaskGIT iteracje na klatkę. |
--realtime-speech-iterations | 2 | Ś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-seconds | 20 | Ostatnia 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]
| Opcja | Domyślne | Opis |
|---|---|---|
<input> | Źródło audio WAV (mono, przestawione wewnętrznie do 24 kHz) (wymagane) | |
--output, -o | translated.wav | Wyjście 24 kHz angielski plik WAV |
--source-lang | fr | Podpowiedź 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. |
--quantization | 4bit | Wariant: 4bit (~ 2.7 GB) 8bit 3.9 GB |
--model-id | HuggingFace model id device (ma pierwszeństwo nad --quantization) | |
--compile | Uruchom transformator temporalny rozgrzewający podanie przed tłumaczeniem | |
--verbose | Wydrukuj czas fazy przelotowej (Mimi kodowanie, generowanie, Mimi dekodowanie) | |
--transcript | Wydrukuj wewnętrzne monologi modelu z tokenami SPM (okablowanie SPM jest kontynuacją) |
Zmienne środowiska
| Zmienna | Efekt |
|---|---|
HIBIKI_GREEDY=1 | Wymuś dekodowanie argmax dla tekstu + docelowy dźwięk. Powielanie - używane przez ścisłych kanarków CI. |
HIBIKI_MODEL_ID | Pomiń 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]
| Opcja | Opis |
|---|---|
<file> | Plik audio do analizy |
--model, -m | HuggingFace model ID |
--onset | Próg początkowy (początek mowy) |
--offset | Próg offset (koniec mowy) |
--min-speech | Minimalny czas trwania mowy w sekundach |
--min-silence | Minimalny czas ciszy w sekundach |
--json | Wyjś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]
| Opcja | Opis |
|---|---|
<file> | Plik audio do analizy |
--engine | Silnik VAD: mlx (domyślnie) lub coreml |
--model, -m | HuggingFace model ID (auto- wybrany przez silnik) |
--onset | Próg początkowy |
--offset | Próg offset |
--min-speech | Minimalny czas trwania mowy w sekundach |
--min-silence | Minimalny czas ciszy w sekundach |
--json | Wyjście jako JSON |
--smart-turn | Potwierdź każdą pauzę Smart Turn przed zakończeniem segmentu; pauzy w zdaniu środkowym łączą się w jeden segment |
--turn-threshold | Próg zakończenia Smart Turn (wartość domyślna 0.5) |
--turn-max-silence | Sekundy 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]
| Opcja | Opis |
|---|---|
<file> | Plik audio z jednym zwrotem użytkownika (każda częstotliwość próbkowania); używane są ostatnie 8 s |
--threshold | Prawdopodobieństwo, w którym lub powyżej którego zakręt liczy się jako kompletny (domyślnie 0.5) |
--model, -m | Identyfikator modelu HuggingFace. Domyślnie aufklarer/Smart-Turn-v3.2-CoreML |
--model-dir | Local directory holding smart_turn.mlmodelc oraz config.json; pomija pobieranie |
--json | Wyjś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]
| Opcja | Opis |
|---|---|
<file> | Plik audio do analizy |
--keywords | Jedno 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-file | Plik słowa kluczowego, jeden wpis na linię (ta sama składnia co --keywords); # Uwagi |
--model, -m | Identyfikator modelu HuggingFace. Domyślnie aufklarer/KWS-Zipformer-3M-CoreML-INT8 |
--json | Wyjś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]
| Opcja | Domyślne | Opis |
|---|---|---|
<file> | Plik audio do analizy | |
--engine | pyannote | Silnik diaryzacji: pyannote, community1 (CoreML + rodzima PLDA / VBx), sortformerlub nemotron3 |
--nemotron3-backend | coreml | Wtyczka Nemotron 3: coreml lub mlx |
--nemotron3-directory | Opcjonalny pakiet modeli Nemotron 3 | |
--nemotron3-compute-units | ane | Jednostki obliczeniowe CoreML: ane, cpu, gpulub all |
--community1-compute-units | ane | Community-1 CoreML jednostki obliczeniowe: ane, cpu, gpulub all |
--num-speakers | Znana dokładna liczba głośników dla Community-1 | |
--min-speakers | 1 | Minimalna liczba głośników dla Community-1 |
--max-speakers | Maksymalna liczba głośników dla Community-1 | |
--target-speaker | Audio enrollment do ekstrakcji głośnika docelowego (tylko piannote) | |
--embedding-engine | mlx | Silnik głośnikowy: mlx lub coreml (tylko piannote) |
--vad-filter | Filtr wstępny z Silero VAD (tylko piannote) | |
--rttm | Wyjście w formacie RTTM | |
--json | Wyjście jako JSON | |
--score-against | Odniesienie 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]
| Opcja | Opis |
|---|---|
<file> | Plik audio zawierający głos głośnika |
--engine | mlx (domyślnie) lub coreml dla WeSpeaker 256- dim; redimnet2 dla tożsamości trwałej CoreML 192- dim; camplusplus dla CAM + + CoreML 192- dim |
--json | Wyjście jako JSON |
language- id
Identyfikacja języka mówionego w pliku audio.
speech language-id <file> [options]
| Opcja | Opis |
|---|---|
<file> | Plik audio do klasyfikacji |
--engine | Silnik impulsowy: mlx lub koreml |
--model | Pominięcie identyfikatora modelu Hugging Face |
--top | Liczba kandydatów do rankingu językowego |
--json | Wynik 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]
| Opcja | Domyślne | Opis |
|---|---|---|
<file> | Wprowadź plik audio | |
--output, -o | input_clean.wav | Ścieżka pliku wyjściowego |
--model, -m | HuggingFace 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]
| Opcja | Domyślne | Opis |
|---|---|---|
<prompt> | Plik tekstowy opisujący muzykę do wygenerowania (np. "happy rock") | |
--output, -o | magnet.wav | Ścieżka wyjściowa WAV (32 kHz mono) |
--variant | small-int4 | Wariant modelu: small-int4, small-int8, medium-int4lub medium-int8. Resolutions to aufklarer/MAGNeT-{Small,Medium}-30secs-MLX-{4,8}bit. |
--temperature | 3.0 | Temperatura próbkowania, wyżarzana liniowo na każdym etapie. |
--top-p | 0.9 | Próg pobierania próbek Nucleus. |
--cfg-max | 10.0 | Maksymalny współczynnik naprowadzania wolny od klasyfikacji. |
--cfg-min | 1.0 | Min współczynnik CFG (wyżarzany wzdłuż harmonogramu masek). |
--steps | 20,10,10,10 | Oddzielone od Comma- dekodowania iteracji na codebook (4 wartości). |
--seed | Losowy 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]
| Opcja | Domyślne | Opis |
|---|---|---|
<input-dir> | Katalog plików audio do zapisu (WAV, FLAC, itp.) | |
--output-dir | Katalog wyjściowy dla transkryptów | |
--engine | qwen3 | Silnik ASR (takie same wartości jak transkrypcja) |
--jsonl | Wyniki 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]
| Opcja | Domyślne | Opis |
|---|---|---|
--output, -o | input_restored.wav | Ścieżka wyjścia pliku WAV (48 kHz) |
--variant | fp16 | Wariant precyzji / pęczka |
--compute-units | Umieszczenie 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]
| Opcja | Domyślne | Opis |
|---|---|---|
--stems | vocals,drums,bass,other | Kamienie do wydobycia: wokale, perkusje, basy, pozostałe |
--engine | umx | Silnik: umx (domyślnie) lub htdemucs (wyższa jakość) |
--output-dir | Katalog wyjściowy dla transkryptów |
upsample
Superrozdzielczość audio z FlashSR - jednostopniowa destylacja AudioSR, wyjście 48 kHz.
speech upsample <audio-file> [options]
| Opcja | Domyślne | Opis |
|---|---|---|
--output, -o | hr.wav | Ścieżka wyjścia pliku WAV (48 kHz) |
--variant | int4 | Wariant precyzji / pęczka |
--seed | Nasiona 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]
| Opcja | Domyślne | Opis |
|---|---|---|
--output, -o | output.wav | Wyjście ścieżki pliku WAV |
--language | english | Język wyjściowy |
--model | Hugging 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]
| Opcja | Domyślne | Opis |
|---|---|---|
--voice-cache, -v | Podkładka głosowa z vibevoice- encode- voice (wymagane) | |
--steps | DPM- Etapy wnioskowania o rozwiązanie (wyższa = lepsza jakość) | |
--cfg | 1.3 | Siła naprowadzania wolna od substancji klasycznych |
--long-form | Dwutlenek 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]
| Opcja | Domyślne | Opis |
|---|---|---|
<input> | Referencyjny plik audio | |
<transcript> | Transcript of the reference audio (tylko w języku angielskim) | |
--output, -o | Wyjś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]
| Opcja | Domyślne | Opis |
|---|---|---|
--to, -t | Kod języka docelowego (ISO 639-1, np. es, zh, ja) | |
--stream | Strumień żetonów, gdy dekodują | |
--model | Hugging 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 4096Zapytanie 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]
| Opcja | Domyślne | Opis |
|---|---|---|
--variant | int8 | Opublikowane wagi do pobrania: fp32, fp16 lub int8 |
--model | Hugging Face repozytorium nadrzędne | |
--model-dir | Lokalny katalog modeli zamiast pobierania | |
--labels | Etykiety kandydackie oddzielone od kombajnu (od 1 do 255, odrębne) | |
--description | Opis etykiety jako etykieta = tekst; powtarzalny | |
--task | działanie | Nazwa zadania w schema prinst (klasyfikacja tylko) |
--threshold | 0.5 | Minimalna skala skali (tylko ekstrakt) |
--evaluate-layers | Ocena warstw enkodera jeden na raz do niższej pamięci szczytowej | |
--json | JSON 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]
| Opcja | Domyślne | Opis |
|---|---|---|
--output, -o | avatar-motion.jsonl | Ścieżka wyjścia pliku JSONL |
--model | …James-MLX | Pakiet tożsamości Avatara (domyślnie James; Claire i Mark dostępne) |
--verbose | Wydrukuj 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-model | aufklarer / MOSS-TTS-Nano-100M-CoreML | Repozytorium modelu lub katalog lokalny |
--moss-nano-compute-units | cpu | cpu lub gpu |
--moss-nano-max-frames | 300 | Maksymalne ramy 80 ms; wymagane naturalne EOS |
--moss-nano-seed | 0 | Odtwarzalny materiał siewny do pobierania próbek Swift |
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 8080Voxtral 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.wavWyłą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.
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.wavimport FishAudioTTS
let model = try await FishAudioDrama3Model.fromBundle(bundleURL, memoryOptions: .balanced)
let pcm = try await model.generate(text: "Hello from Drama 3.", options: .init(seed: 42))| Opcja | Domyślne |
|---|---|
--fish-drama3-model-id | mlx-community/fish-audio-drama-3-4bit |
--fish-drama3-bundle-dir | — |
--fish-drama3-reference-text | — |
--fish-drama3-max-frames | 2048 |
--fish-drama3-temperature | 1 |
--fish-drama3-top-k | 30 |
--fish-drama3-top-p | 0.9 |
--voice-sample | — |
--seed | 0 |
--stream | false |
--fish-drama3-chunk-frames | 3 |
--fish-drama3-memory-mode | balanced |
Zbudowany z Fish Audio. Bundles zachowuje licencję wspólnotową i NOTICE.