Audio / Notas de voz — 2026-01-17
Qué funciona
- Comprensión de medios (audio): Si la comprensión de audio está habilitada (o se detecta automáticamente), OpenClaw:
- Localiza el primer adjunto de audio (ruta local o URL) y lo descarga si es necesario.
- Aplica
maxBytesantes de enviar a cada entrada de modelo. - Ejecuta la primera entrada de modelo elegible en orden (proveedor o CLI).
- Si falla o se omite (tamaño/tiempo de espera), intenta la siguiente entrada.
- En caso de é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 con barra 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 configura 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:
- CLIs 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 - Claves de proveedor (OpenAI → Groq → Deepgram → Google)
tools.media.audio.enabled: false.
Para personalizar, establezca tools.media.audio.models.
Nota: La detección de binarios es de mejor esfuerzo en macOS/Linux/Windows; asegúrese de que la CLI esté en PATH (expandimos ~), o establezca un modelo de CLI explícito con una ruta completa al comando.
Ejemplos de configuración
Proveedor + respaldo por CLI (OpenAI + Whisper CLI)
Solo proveedor con control por alcance
Solo proveedor (Deepgram)
Notas y límites
- La autenticación del proveedor sigue el orden estándar de autenticación del modelo (perfiles de autenticación, variables de entorno,
models.providers.*.apiKey). - Deepgram toma
DEEPGRAM_API_KEYcuando se usaprovider: "deepgram". - Detalles de configuración de Deepgram: Deepgram (transcripción de audio).
- Los proveedores de audio pueden sobrescribir
baseUrl,headersyproviderOptionsmediantetools.media.audio. - El límite de tamaño predeterminado es 20MB (
tools.media.audio.maxBytes). El audio que exceda el tamaño se omite para ese modelo y se intenta la siguiente entrada. - El
maxCharspredeterminado para audio está sin establecer (transcripción completa). Establezcatools.media.audio.maxCharsomaxCharspor entrada para recortar la salida. - El valor predeterminado automático de OpenAI es
gpt-4o-mini-transcribe; establezcamodel: "gpt-4o-transcribe"para mayor precisión. - Use
tools.media.audio.attachmentspara procesar múltiples notas de voz (mode: "all"+maxAttachments). - La transcripción está disponible para las plantillas como
{{Transcript}}. - La salida stdout de la CLI está limitada (5MB); mantenga la salida de la CLI concisa.
Detección de menciones en grupos
Cuando se establecerequireMention: true para un chat grupal, OpenClaw ahora transcribe el audio antes de comprobar las menciones. Esto permite procesar las notas de voz incluso cuando contienen menciones.
Cómo funciona:
- Si un mensaje de voz no tiene texto y el grupo requiere menciones, OpenClaw realiza una transcripción “preflight”.
- La transcripción se revisa en busca de patrones de mención (p. ej.,
@BotName, disparadores con emoji). - Si se encuentra una mención, el mensaje continúa por el flujo completo de respuesta.
- La transcripción se utiliza para detectar menciones, permitiendo que las notas de voz superen el filtro de menciones.
- Si la transcripción falla durante el preflight (tiempo de espera, error de API, etc.), el mensaje se procesa basándose únicamente en la detección de menciones en el texto.
- Esto garantiza que los mensajes mixtos (texto + audio) nunca se descarten incorrectamente.
requireMention: true. La nota de voz se transcribe, se detecta la mención y el agente responde.
Gotchas
- Las reglas de alcance usan “primera coincidencia gana”.
chatTypese normaliza adirect,grouporoom. - Asegúrese de que su CLI termine con código 0 e imprima texto plano; el JSON debe ajustarse mediante
jq -r .text. - Mantenga tiempos de espera razonables (
timeoutSeconds, predeterminado 60s) para evitar bloquear la cola de respuestas. - La transcripción preflight solo procesa el primer archivo de audio adjunto para la detección de menciones. El audio adicional se procesa durante la fase principal de comprensión de medios.