Audio / notas de voz (2026-01-17)
Qué funciona
- Comprensión de contenido multimedia (audio): si la comprensión de audio está habilitada (o se detecta automáticamente), OpenClaw:
- Localiza el primer archivo adjunto de audio (ruta local o URL) y lo descarga si es necesario.
- Aplica
maxBytesantes de enviarlo a cada entrada de modelo. - Ejecuta la primera entrada de modelo apta en orden (proveedor o CLI).
- Si falla o se omite (tamaño/timeout), prueba la siguiente entrada.
- Si tiene éxito, reemplaza
Bodycon un bloque[Audio]y establece{{Transcript}}.
- Análisis de comandos: cuando la transcripción tiene éxito,
CommandBody/RawBodyse establecen con la transcripción para que los comandos slash sigan funcionando. - Registro detallado: en
--verbose, registramos cuándo se ejecuta la transcripción y cuándo reemplaza el cuerpo.
Detección automática (predeterminada)
Si no configuras modelos ytools.media.audio.enabled no está establecido en false,
OpenClaw detecta automáticamente en este orden y se detiene en la primera opción que funcione:
- Modelo de respuesta activo cuando su proveedor admite comprensión de audio.
- CLI locales (si están instaladas)
sherpa-onnx-offline(requiereSHERPA_ONNX_MODEL_DIRcon encoder/decoder/joiner/tokens)whisper-cli(dewhisper-cpp; usaWHISPER_CPP_MODELo el modelo tiny incluido)whisper(CLI de Python; descarga modelos automáticamente)
- CLI de Gemini (
gemini) usandoread_many_files - Autenticación del proveedor
- Las entradas configuradas de
models.providers.*que admiten audio se prueban primero - Orden de respaldo empaquetado: OpenAI → Groq → Deepgram → Google → Mistral
- Las entradas configuradas de
tools.media.audio.enabled: false.
Para personalizarla, establece tools.media.audio.models.
Nota: la detección de binarios se hace en el mejor esfuerzo en macOS/Linux/Windows; asegúrate de que la CLI esté en PATH (expandimos ~) o define un modelo CLI explícito con una ruta completa al comando.
Ejemplos de configuración
Proveedor + respaldo de CLI (OpenAI + Whisper CLI)
Solo proveedor con control por alcance
Solo proveedor (Deepgram)
Solo proveedor (Mistral Voxtral)
Mostrar la transcripción en el chat (adhesión voluntaria)
Notas y límites
- La autenticación del proveedor sigue el orden estándar de autenticación de modelos (perfiles de autenticación, variables de entorno,
models.providers.*.apiKey). - Detalles de configuración de Groq: Groq.
- Deepgram usa
DEEPGRAM_API_KEYcuando se utilizaprovider: "deepgram". - Detalles de configuración de Deepgram: Deepgram (transcripción de audio).
- Detalles de configuración de Mistral: Mistral.
- Los proveedores de audio pueden sobrescribir
baseUrl,headersyproviderOptionsmediantetools.media.audio. - El límite de tamaño predeterminado es 20 MB (
tools.media.audio.maxBytes). El audio sobredimensionado se omite para ese modelo y se prueba la siguiente entrada. - Los archivos de audio minúsculos o vacíos por debajo de 1024 bytes se omiten antes de la transcripción con proveedor/CLI.
- El valor predeterminado de
maxCharspara audio está sin definir (transcripción completa). Establecetools.media.audio.maxCharsomaxCharspor entrada para recortar la salida. - El valor predeterminado automático de OpenAI es
gpt-4o-mini-transcribe; establecemodel: "gpt-4o-transcribe"para mayor precisión. - Usa
tools.media.audio.attachmentspara procesar varias notas de voz (mode: "all"+maxAttachments). - La transcripción está disponible para plantillas como
{{Transcript}}. tools.media.audio.echoTranscriptestá desactivado de forma predeterminada; habilítalo para enviar la confirmación de la transcripción de vuelta al chat de origen antes del procesamiento del agente.tools.media.audio.echoFormatpersonaliza el texto mostrado (marcador:{transcript}).- La salida estándar de la CLI está limitada (5 MB); mantén la salida de la CLI concisa.
Compatibilidad con entorno proxy
La transcripción de audio basada en proveedor respeta las variables de entorno estándar de proxy saliente:HTTPS_PROXYHTTP_PROXYhttps_proxyhttp_proxy
Detección de menciones en grupos
CuandorequireMention: true está definido para un chat grupal, OpenClaw ahora transcribe el audio antes de comprobar las menciones. Esto permite procesar notas de voz incluso cuando contienen menciones.
Cómo funciona:
- Si un mensaje de voz no tiene cuerpo de texto y el grupo requiere menciones, OpenClaw realiza una transcripción de “preflight”.
- La transcripción se comprueba con patrones de mención (por ejemplo,
@BotName, activadores con emoji). - Si se encuentra una mención, el mensaje continúa por la canalización completa de respuesta.
- La transcripción se usa para la detección de menciones, de modo que las notas de voz puedan superar el filtro de menciones.
- Si la transcripción falla durante el preflight (timeout, error de API, etc.), el mensaje se procesa basándose solo en la detección de menciones del texto.
- Esto garantiza que los mensajes mixtos (texto + audio) nunca se descarten incorrectamente.
- Establece
channels.telegram.groups.<chatId>.disableAudioPreflight: truepara omitir las comprobaciones de mención mediante transcripción previa en ese grupo. - Establece
channels.telegram.groups.<chatId>.topics.<threadId>.disableAudioPreflightpara sobrescribirlo por tema (truepara omitir,falsepara forzar la habilitación). - El valor predeterminado es
false(preflight habilitado cuando coinciden las condiciones de control por menciones).
requireMention: true. La nota de voz se transcribe, se detecta la mención y el agente responde.
Cosas a tener en cuenta
- Las reglas de alcance usan la primera coincidencia como ganadora.
chatTypese normaliza comodirect,grouporoom. - Asegúrate de que tu CLI salga con código 0 e imprima texto sin formato; el JSON debe ajustarse con
jq -r .text. - Para
parakeet-mlx, si pasas--output-dir, OpenClaw lee<output-dir>/<media-basename>.txtcuando--output-formatestxt(o se omite); los formatos de salida distintos detxtrecurren al análisis de stdout. - Mantén timeouts razonables (
timeoutSeconds, valor predeterminado 60 s) para evitar bloquear la cola de respuestas. - La transcripción preflight solo procesa el primer archivo adjunto de audio para la detección de menciones. El audio adicional se procesa durante la fase principal de comprensión de contenido multimedia.