⚠ Translation out of date. See the English CLI reference for Nemotron 3 support.
⚠ Traducción desactualizada

Consulta la versión en inglés para conocer la información más reciente sobre las llamadas a herramientas y el rendimiento de VoiceChat.

Referencia de CLI

El comando speech es el punto de entrada para el procesamiento local de voz.

Instalar con Homebrew

En un Mac con Apple Silicon y macOS 15 o posterior, instala la CLI con Homebrew:

brew install speech
speech --help

Para actualizar una instalación existente, ejecuta brew upgrade speech.

Alternativa: compilar desde el código fuente

En una copia local del repositorio speech-swift, ejecuta make build y luego usa .build/release/speech. Consulta los requisitos y las instrucciones de compilación en la guía de inicio.

transcribe

Transcribe archivos de audio a texto.

speech transcribe <file> [options]
OpciónPor defectoDescripción
<file>Archivo de audio a transcribir (WAV, M4A, MP3, CAF)
--engineqwen3Motor ASR: qwen3, qwen3-coreml, parakeet, nemotron, omnilingual, cohere, voxtral, moss, whisper
--model, -m0.6BVariante del modelo: 0.6B, 1.7B, o un ID completo de modelo de HuggingFace (solo qwen3) [whisper]: default, turbo, or full CoreML HuggingFace repo ID.
[cohere/voxtral]: INT5 (predeterminado), INT8, FP16, un ID de modelo de Hugging Face o un directorio local. [moss coreml]: int8 (predeterminado) o fp16; [moss mlx]: int5 (predeterminado) o int8. También acepta un repositorio compatible de Hugging Face o un directorio local.
--max-tokensCoreML: 512
MLX: 5120
[moss] Número máximo de tokens de transcripción generados.
--kv-cachefp16[moss mlx] Precisión de la caché KV dinámica: fp16 o int8.
--languagePista de idioma (opcional, ignorada por omnilingual)
--window10[omnilingual] Tamaño de ventana CoreML en segundos: 5 o 10
--backendcoreml[omnilingual] Backend: coreml (Neural Engine) o mlx (GPU Metal)
[moss] CoreML usa un estado fijo de 1.024 tokens; MLX ofrece un contexto dinámico de 131.072 tokens.
--variant300M[omnilingual mlx] Tamaño: 300M, 1B, 3B o 7B
--bits4[omnilingual mlx] Bits de cuantización: 4 u 8
--streamActiva la transcripción en streaming con VAD
--max-segment10Duración máxima del segmento en segundos (streaming)
--partialEmite resultados parciales durante el habla (streaming)

Ejemplos:

# 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 predeterminado)
speech transcribe recording.wav --engine cohere
speech transcribe recording.wav --engine cohere --model int8 --language de

# Voxtral Mini 3B (MLX, INT5 predeterminado)
speech transcribe recording.wav --engine voxtral
speech transcribe recording.wav --engine voxtral --model int8 --language fr

# MOSS Transcribe Diarize (CoreML para audio corto)
speech transcribe recording.wav --engine moss
speech transcribe recording.wav --engine moss --model fp16

# MOSS Transcribe Diarize (contexto MLX offline de 128K; INT5 predeterminado)
speech transcribe meeting.wav --engine moss --backend mlx
speech transcribe meeting.wav --engine moss --backend mlx --model int8 --kv-cache int8

# Whisper Large-v3 Turbo (CoreML)
speech transcribe recording.wav --engine whisper
speech transcribe recording.wav --engine whisper --model turbo --language de

# Streaming with VAD
speech transcribe recording.wav --stream --partial

align

Alineación forzada a nivel de palabra — obtén marcas temporales precisas para cada palabra.

speech align <file> [options]
OpciónPor defectoDescripción
<file>Archivo de audio
--text, -tTexto a alinear (si se omite, primero transcribe)
--model, -m0.6BModelo ASR para transcripción: 0.6B, 1.7B, o ID completo
--aligner-modelID del modelo del alineador forzado
--languagePista de idioma

Ejemplos:

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

speak

Síntesis de texto a voz.

speech speak "<text>" [options]
OpciónPor defectoDescripción
<text>Texto a sintetizar (opcional si se usa --batch-file)
--engineqwen3Motor TTS: qwen3, cosyvoice, voxcpm2, indextts2, f5, higgs, indic-mio, magpie o magpie-coreml
--output, -ooutput.wavRuta del archivo WAV de salida
--languageenglishIdioma. Omítelo para usar el dialecto nativo del hablante cuando se define --speaker.
--streamActiva la síntesis en streaming
--voice-sampleAudio de referencia para clonación de voz (funciona con qwen3, cosyvoice, voxcpm2, f5, higgs e indextts2)
--verboseMuestra información de tiempos detallada

Opciones de Qwen3-TTS

OpciónPor defectoDescripción
--modelbaseVariante del modelo: base, customVoice o ID completo de HF
--speakerVoz del hablante (requiere --model customVoice)
--instructInstrucción de estilo (modelo CustomVoice)
--list-speakersLista los hablantes disponibles y sale
--temperature0.3Temperatura de muestreo
--top-k50Muestreo top-k
--max-tokens500Tokens máximos (500 = ~40s de audio)
--batch-fileArchivo con un texto por línea para síntesis por lotes
--batch-size4Tamaño máximo de lote para generación paralela
--first-chunk-frames3Frames de códec en el primer fragmento en streaming
--chunk-frames25Frames de códec por fragmento en streaming

Opciones de CosyVoice3

OpciónPor defectoDescripción
--speakersMapeo de hablantes para diálogo multi-hablante: s1=alice.wav,s2=bob.wav
--cosy-instructInstrucción de estilo (anula la predeterminada). Controla el estilo de voz para CosyVoice3.
--turn-gap0.2Silencio entre turnos de diálogo en segundos
--crossfade0.0Solapamiento de crossfade entre turnos en segundos
--model-idID de modelo de HuggingFace

Opciones de IndexTTS2

IndexTTS2 es un motor de clonación zero-shot respaldado por un bundle MLX expandido. Requiere --voice-sample y actualmente solo ejecuta síntesis por lotes.

OpciónPor defectoDescripción
--indextts2-model-idaufklarer/IndexTTS2-MLX-fp16ID del modelo en HuggingFace. Por defecto aufklarer/IndexTTS2-MLX-fp16.
--indextts2-bundle-dirCarga un bundle expandido local en lugar de descargar desde Hugging Face.
--indextts2-emotion-audioAudio opcional de referencia de emoción/estilo. Por defecto usa la referencia del hablante.
--indextts2-emotionPreset opcional o vector de emoción de 8 valores. Incluye eager, happy, excited y calm.
--indextts2-emotion-weight1.0Escala --indextts2-emotion; mantenlo moderado si importa la identidad del hablante.
--indextts2-speaking-rate1.0Multiplicador de velocidad de 0.5 a 1.5; valores mayores que 1.0 son más rápidos.
--indextts2-max-pauseLímite opcional, en segundos, para pausas internas largas de baja energía.
--indextts2-s2mel-steps15Pasos de flujo S2Mel (15 por defecto, validado de oído; 25 replica exactamente el upstream)

F5-TTS Options

OpciónPor defectoDescripción
--f5-reference-textTranscripción de referencia: el texto de --voice-sample (obligatoria)
--f5-steps16Pasos de flow matching (16 por defecto; 32 para máxima fidelidad)
--f5-cfg-strength2.0Intensidad de la guía sin clasificador
--f5-sway-1.0Coeficiente de muestreo sway
--f5-speed1.0Multiplicador de velocidad de habla
--f5-seed0Semilla para salida determinista
--f5-target-rms0.1Objetivo de normalización RMS de la referencia
--f5-model-idID de modelo de Hugging Face
--f5-bundle-dirCargar un bundle desde este directorio local

Higgs TTS 3 Options

OpciónPor defectoDescripción
--higgs-ref-textTranscripción de referencia: el texto de --voice-sample (mejora la clonación)
--higgs-temperature0.8Temperatura de muestreo (0.8 por defecto)
--higgs-top-pUmbral de muestreo nucleus (desactivado por defecto)
--higgs-top-kCorte top-k (desactivado por defecto)
--higgs-max-new-tokens2048Máximo de fotogramas de audio generados (25 por segundo)
--higgs-seed0Semilla para salida determinista
--higgs-model-idID de modelo de Hugging Face
--higgs-bundle-dirCargar un bundle desde este directorio local

Ejemplos:

# 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

# Streaming synthesis
speech speak "Long text here..." --stream

# Batch synthesis from file
speech speak --batch-file texts.txt --batch-size 4

kokoro

Texto a voz ligero usando Kokoro-82M en el Neural Engine (CoreML). No autoregresivo — una sola pasada hacia adelante, latencia de ~45 ms.

speech kokoro "<text>" [options]
OpciónPor defectoDescripción
<text>Texto a sintetizar
--voiceaf_heartPreset de voz (50 disponibles en 10 idiomas)
--languageenCódigo de idioma: en, es, fr, hi, it, ja, pt, zh, ko, de
--output, -okokoro_output.wavRuta del archivo WAV de salida
--list-voicesLista todas las voces disponibles y sale
--model, -mID de modelo de HuggingFace

Ejemplos:

# 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

respond

Diálogo de voz a voz full-duplex usando PersonaPlex 7B.

speech respond [options]
OpciónPor defectoDescripción
--input, -iArchivo WAV de audio de entrada (24 kHz mono) (obligatorio)
--output, -oresponse.wavArchivo WAV de respuesta de salida
--voiceNATM0Preset de voz (p. ej. NATM0, NATF1, VARF0)
--system-promptassistantPreset: assistant, focused, customer-service, teacher
--system-prompt-textTexto personalizado del system prompt (anula el preset)
--max-steps200Pasos máximos de generación a 12.5 Hz (~16 s)
--streamEmite fragmentos de audio durante la generación
--compileActiva el transformador compilado (calentamiento + fusión de kernels)
--list-voicesLista los presets de voz disponibles
--list-promptsLista los presets de system prompt disponibles
--transcriptImprime el texto del monólogo interior del modelo
--jsonSalida en JSON (transcripción, latencia, ruta de audio)
--verboseMuestra información de tiempos detallada

Ajustes de muestreo

OpciónPor defectoDescripción
--audio-temp0.8Temperatura de muestreo de audio
--text-temp0.7Temperatura de muestreo de texto
--audio-top-k250Candidatos top-k de audio
--repetition-penalty1.2Penalización de repetición de audio (1.0 = desactivada)
--text-repetition-penalty1.2Penalización de repetición de texto (1.0 = desactivada)
--repetition-window30Ventana de penalización de repetición en frames
--silence-early-stop15Frames de silencio antes de la parada temprana (0 = desactivado)
--entropy-threshold0Umbral de entropía de texto para parada temprana (0 = desactivado)
--entropy-window10Pasos consecutivos de baja entropía antes de la parada temprana

Ejemplos:

# 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

Conversación full-duplex en directo con Soniqo, basada en NVIDIA Nemotron VoiceChat 11B. El bundle INT5 con protected head se descarga al primer uso; el modo micrófono ofrece Apple AEC, subtítulos RNN-T, métricas legibles, refinamiento de voz adaptativo de 8→2→1 pasos y resincronización acotada para evitar largas pausas de recuperación.

speech voice-chat [options]
OpciónPredeterminadoDescripción
--model, -maufklarer/VoiceChat-11B-Perception-MLX-int5ID de modelo de Hugging Face o bundle local completo.
--revisionmainRevision del Hub.
--system-promptSustituye el system prompt.
--mcp-configConfiguración JSON genérica para servidores de herramientas MCP.
--mcp-servertodos los configuradosSelecciona un servidor; se puede repetir.
--mcp-write-policyallowPolítica de escritura: allow inmediato, confirm mediante el modelo o deny.
--mcp-timeout-seconds15Timeout de llamadas MCP; el inicio del servidor dispone de al menos 60 segundos.
--greetHace que el modelo salude primero.
--no-aecDesactiva la cancelación de eco acústico de Apple.
--no-transcriptDesactiva los subtítulos RNN-T del usuario en directo.
--no-rnnt-turn-takingDesactiva los respaldos de seguridad de turnos RNN-T de NVIDIA.
--prebuffer-frames3Tramas de salida de 80 ms almacenadas antes de reproducir.
--max-buffered-frames8Máximo de tramas de micrófono de 80 ms antes de descartar audio antiguo.
--max-secondsDetiene la captura en directo tras estos segundos.
--inputLee un archivo de audio en lugar del micrófono.
--output, -oEscribe el WAV de contexto completo a 22,05 kHz.
--tail-seconds6Silencio añadido tras la entrada de archivo.
--force-turn-at-endFuerza BOS al final del archivo; solo regresión.
--plainUsa salida acumulativa en lugar del panel fijo que se redibuja.
--debug-timelineMuestra marcas de tiempo relativas de las frases y del fin de la pronunciación generada, más eventos del ciclo de vida de herramientas decodificados por el modelo.
--terminal-width120Ancho de la pantalla del terminal.
--temperature0Temperatura de texto; 0 es greedy.
--text-top-p1Top-p de texto.
--guidance0.2Intensidad de guidance de EAR-TTS.
--speech-top-p0.95Top-p de EAR-TTS.
--speech-noise0.001Ruido de muestreo de EAR-TTS.
--speech-iterations8Iteraciones MaskGIT de EAR-TTS por trama.
--realtime-speech-iterations2Pasos temporales de refinamiento de voz para proteger la velocidad en tiempo real.
--live-speech-context-seconds20Historial EAR-TTS reciente conservado en directo; 0 conserva todo el historial.

Ejemplos:

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

El modo de archivo es la ruta reproducible sin hardware de audio. --force-turn-at-end solo sirve para pruebas de regresión controladas y no debe presentarse como latencia natural de cambio de turno.

La demo de Apple Reminders solo expone list_reminders, create_reminder y update_reminder; el descubrimiento de listas queda dentro del adaptador. Una lectura plana cubre todas las listas y las actualizaciones resuelven el nombre pronunciado a un ID privado en el runtime. El panel separa el tiempo, los pasos de token y los token/s de la decodificación de función del RTF de audio.

vad

Detección de actividad vocal offline usando segmentación Pyannote.

speech vad <file> [options]
OpciónDescripción
<file>Archivo de audio a analizar
--model, -mID de modelo de HuggingFace
--onsetUmbral de inicio (comienzo del habla)
--offsetUmbral de fin (final del habla)
--min-speechDuración mínima del habla en segundos
--min-silenceDuración mínima del silencio en segundos
--jsonSalida en JSON

vad-stream

Detección de actividad vocal en streaming usando Silero VAD v5. Procesa audio en fragmentos de 32 ms.

speech vad-stream <file> [options]
OpciónDescripción
<file>Archivo de audio a analizar
--engineMotor de VAD: mlx (por defecto) o coreml
--model, -mID de modelo de HuggingFace (autoseleccionado por el motor)
--onsetUmbral de inicio
--offsetUmbral de fin
--min-speechDuración mínima del habla en segundos
--min-silenceDuración mínima del silencio en segundos
--jsonSalida en JSON
--smart-turnConfirma cada pausa con Smart Turn antes de cerrar un segmento; las pausas a mitad de frase se fusionan en un solo segmento
--turn-thresholdUmbral de completitud de Smart Turn (por defecto 0.5)
--turn-max-silenceSegundos de silencio tras una pausa vetada que cierran el segmento de todos modos (por defecto 2.0)

turn

Detección de fin de turno con Smart Turn v3.2 (8M parámetros, CoreML, 23 idiomas). Puntúa los últimos 8 s de una locución grabada e imprime la probabilidad de que la persona haya terminado, el veredicto completo / incompleto y el tiempo de inferencia.

speech turn <file> [options]
OpciónDescripción
<file>Archivo de audio con un turno de usuario (cualquier frecuencia de muestreo); se usan los últimos 8 s
--thresholdProbabilidad a partir de la cual el turno cuenta como completo (por defecto 0.5)
--model, -mID del modelo en HuggingFace. Por defecto aufklarer/Smart-Turn-v3.2-CoreML
--model-dirDirectorio local con smart_turn.mlmodelc y config.json; omite la descarga
--jsonSalida en 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

wake

Detección de palabras clave en el dispositivo usando el KWS Zipformer (3,49M parámetros, CoreML INT8, 26× tiempo real, solo inglés).

speech wake <file> [options]
OpciónDescripción
<file>Archivo de audio a analizar
--keywordsUna o más palabras clave. Formatos: "hey soniqo", "hey soniqo:0.15:0.5" o "LIGHT UP|▁ L IGHT ▁UP:0.25:2.0" (estilo sherpa-onnx con piezas BPE explícitas)
--keywords-fileArchivo de palabras clave, una entrada por línea
--model, -mID de modelo de HuggingFace. Por defecto: aufklarer/KWS-Zipformer-3M-CoreML-INT8
--jsonSalida en JSON

diarize

Diarización de hablantes — identifica quién habló cuándo.

speech diarize <file> [options]
OpciónPor defectoDescripción
<file>Archivo de audio a analizar
--enginepyannoteMotor de diarización: pyannote, community1 (CoreML + PLDA/VBx nativo) o sortformer
--community1-compute-unitsaneUnidades de cómputo CoreML de Community-1: ane, cpu, gpu o all
--num-speakersNúmero exacto conocido de hablantes para Community-1
--min-speakers1Número mínimo de hablantes para Community-1
--max-speakersNúmero máximo de hablantes para Community-1
--target-speakerAudio de enrolamiento para extracción del hablante objetivo (solo pyannote)
--embedding-enginemlxMotor de embedding de hablante: mlx o coreml (solo pyannote)
--vad-filterPre-filtra con Silero VAD (solo pyannote)
--rttmSalida en formato RTTM
--jsonSalida en JSON
--score-againstArchivo RTTM de referencia para calcular DER

Ejemplos:

# Basic diarization (pyannote, default)
speech diarize meeting.wav

# End-to-end Sortformer (CoreML, Neural Engine)
speech diarize meeting.wav --engine sortformer

# RTTM output for evaluation
speech diarize meeting.wav --rttm

# Target speaker extraction (pyannote only)
speech diarize meeting.wav --target-speaker enrollment.wav

# Score against reference
speech diarize meeting.wav --score-against reference.rttm

embed-speaker

Extrae un vector de embedding de hablante a partir de audio.

speech embed-speaker <file> [options]
OpciónDescripción
<file>Archivo de audio con la voz del hablante
--enginemlx (por defecto) o coreml para WeSpeaker 256-dim; redimnet2 para identidad persistente CoreML 192-dim; camplusplus para CAM++ CoreML 192-dim
--jsonSalida en JSON

language-id

Identifica el idioma hablado en un archivo de audio.

speech language-id <file> [options]
OpciónDescripción
<file>Archivo de audio que se va a clasificar
--engineMotor de inferencia: mlx o coreml
--modelSobrescribe el ID del modelo de Hugging Face
--topNúmero de idiomas candidatos
--jsonDevuelve el resultado como JSON
speech language-id recording.wav --top 5
speech language-id recording.wav --engine coreml --json

denoise

Elimina el ruido de fondo usando DeepFilterNet3 en el Neural Engine.

speech denoise <file> [options]
OpciónPor defectoDescripción
<file>Archivo de audio de entrada
--output, -oinput_clean.wavRuta del archivo de salida
--model, -mID de modelo de HuggingFace

Ejemplo:

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

compose

Generate 30 s of music from a text prompt using MAGNeT on MLX.

speech compose <prompt> [options]
OptionDefaultDescription
<prompt>Text prompt describing the music to generate (e.g. "happy rock")
--output, -omagnet.wavOutput WAV path (32 kHz mono)
--variantsmall-int4Model variant: small-int4, small-int8, medium-int4, or medium-int8. Resolves to aufklarer/MAGNeT-{Small,Medium}-30secs-MLX-{4,8}bit.
--temperature3.0Sampling temperature, annealed linearly per stage.
--top-p0.9Nucleus sampling threshold.
--cfg-max10.0Max classifier-free guidance coefficient.
--cfg-min1.0Min CFG coefficient (annealed alongside the mask schedule).
--steps20,10,10,10Comma-separated decoding iterations per codebook (4 values).
--seedRandom seed for reproducible output.

Examples:

# Default: small-int4, ~10 s wall on M-series for a 30 s clip
speech compose "happy rock" -o happy_rock.wav

# Larger model — better prompt following, slower
speech compose "lo-fi hip hop with mellow piano" --variant medium-int4 -o lofi.wav

# Reproducible
speech compose "energetic EDM with synth lead" --seed 42 -o edm.wav

transcribe-batch

Transcribe un directorio de archivos de audio; el modelo se carga una sola vez.

speech transcribe-batch <input-dir> [options]
OpciónPor defectoDescripción
<input-dir>Directorio de archivos de audio a transcribir (WAV, FLAC, etc.)
--output-dirDirectorio de salida para las transcripciones
--engineqwen3Motor ASR (mismos valores que transcribe)
--jsonlSalida como JSON lines, una por archivo

restore

Restaura la voz (reducción de ruido + de reverberación) con Sidon — CoreML, salida a 48 kHz.

speech restore <audio-file> [options]
OpciónPor defectoDescripción
--output, -oinput_restored.wavRuta del WAV de salida (48 kHz)
--variantfp16Variante de precisión / bundle
--compute-unitsUbicación Core ML para ambas etapas: ane, gpu, cpu, all (predeterminado: vocoder gpu, predictor automático)

separate

Separa una pista musical en stems (vocals, drums, bass, other).

speech separate <input> [options]
OpciónPor defectoDescripción
--stemsvocals,drums,bass,otherPistas a extraer: vocals, drums, bass, other
--engineumxMotor: umx (por defecto) o htdemucs (mayor calidad)
--output-dirDirectorio de salida para las transcripciones

upsample

Superresolución de audio con FlashSR — AudioSR destilado de un paso, salida a 48 kHz.

speech upsample <audio-file> [options]
OpciónPor defectoDescripción
--output, -ohr.wavRuta del WAV de salida (48 kHz)
--variantint4Variante de precisión / bundle
--seedSemilla para salida determinista

qwen3-tts-coreml

Swift admite los paquetes 0.6B/256 y 1.7B/1024; 0.6B sigue siendo el predeterminado. El paquete experimental 1.7B usa CPU por defecto y requiere una representación del hablante preparada en Float32 .npy de 2048 canales mediante --speaker-embedding. GPU/ANE e iOS requieren validación independiente.

speech qwen3-tts-coreml "<text>" [options]
OpciónPor defectoDescripción
--output, -ooutput.wavRuta del WAV de salida
--languageenglishIdioma de salida
--modelID de modelo de Hugging Face
--model-directory—Paquete de modelos compilados local; tiene prioridad sobre la descarga de --model.
--speaker-embedding—Representación del hablante Float32 .npy que coincida con el ancho del modelo (1024 o 2048).

vibevoice

Texto a voz con Microsoft VibeVoice (MLX).

speech vibevoice "<text>" --voice-cache <cache> [options]
OpciónPor defectoDescripción
--voice-cache, -vCaché de voz creada con vibevoice-encode-voice (obligatoria)
--stepsPasos de inferencia DPM-Solver (más pasos, mejor calidad)
--cfg1.3Intensidad de la guía sin clasificador
--long-formSíntesis de formato largo por fragmentos

vibevoice-encode-voice

Crea una caché de voz de VibeVoice a partir de una grabación de referencia y su transcripción.

speech vibevoice-encode-voice <input> "<transcript>" [options]
OpciónPor defectoDescripción
<input>Archivo de audio de referencia
<transcript>Transcripción del audio de referencia (solo inglés)
--output, -oCaché de voz de salida (.safetensors)

translate

Traduce texto al idioma destino con MADLAD-400 (MLX).

speech translate "<text>" --to <lang> [options]
OpciónPor defectoDescripción
--to, -tCódigo del idioma destino (ISO 639-1, p. ej. es, zh, ja)
--streamTransmitir tokens mientras decodifica
--modelID de modelo de Hugging Face

⚠ Translation out of date — the Clef CLI section awaits translation. English reference.

clef

Choose from allowed answers using Clef-flash locally on Apple Silicon. Development preview.

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

The request contains text in state and an ordered questions array. Each field has an id and a type: choice with a choices map, noul for true/false, or score with ordered levels. Output is JSON with probabilities, selected answers, token count, model-load time, and decision time.

By default, the command downloads aufklarer/Clef-flash-9B-MLX-4bit. Use --model-dir for existing files or --offline for the cache. The token limit defaults to 4096 and accepts 1–16384. See the Clef guide for a complete request and measured memory use.

gliner

Clasificación de texto según etiquetas dadas y extracción de entidades con GLiNER2.5-Decide (MLX). Versión preliminar de desarrollo: aún no incluida en una versión publicada. Si se omite el texto, se lee de stdin.

speech gliner classify "<text>" --labels <a,b,c> [options]
speech gliner extract "<text>" --labels <a,b,c> [options]
OpciónPor defectoDescripción
--variantint8Pesos publicados a descargar: fp32, fp16 o int8
--modelRepositorio de Hugging Face alternativo
--model-dirDirectorio local del modelo en lugar de descargar
--labelsEtiquetas candidatas separadas por comas (de 1 a 255, sin repetir)
--descriptionDescripción de etiqueta como label=text; se puede repetir
--taskactionNombre de la tarea en el prompt del esquema (solo classify)
--threshold0.5Puntuación mínima de un fragmento (solo extract)
--evaluate-layersEvalúa el codificador capa por capa para reducir el pico de memoria
--jsonSalida JSON con todas las probabilidades o fragmentos con offsets UTF-16, y tiempos

avatar-motion

Genera fotogramas de coeficientes de movimiento de avatar NVIDIA Audio2Face-3D a partir de audio de voz.

speech avatar-motion <input> [options]
OpciónPor defectoDescripción
--output, -oavatar-motion.jsonlRuta del JSONL de salida
--model…James-MLXBundle de identidad del avatar (James por defecto; Claire y Mark disponibles)
--verboseMostrar tiempos y número de fotogramas