Áudio / Notas de Voz — 2026-01-17
O que funciona
- Compreensão de mídia (áudio): Se a compreensão de áudio estiver habilitada (ou detectada automaticamente), o OpenClaw:
- Localiza o primeiro anexo de áudio (caminho local ou URL) e faz o download se necessário.
- Aplica
maxBytesantes de enviar para cada entrada de modelo. - Executa a primeira entrada de modelo elegível em ordem (provedor ou CLI).
- Se falhar ou pular (tamanho/timeout), tenta a próxima entrada.
- Em caso de sucesso, substitui
Bodypor um bloco[Audio]e define{{Transcript}}.
- Análise de comandos: Quando a transcrição é bem-sucedida,
CommandBody/RawBodysão definidos como a transcrição para que os comandos de barra continuem funcionando. - Logs detalhados: Em
--verbose, registramos quando a transcrição é executada e quando ela substitui o corpo.
Detecção automática (padrão)
Se você não configurar modelos etools.media.audio.enabled não estiver definido como false,
o OpenClaw faz a detecção automática nesta ordem e para na primeira opção que funcionar:
- CLIs locais (se instaladas)
sherpa-onnx-offline(requerSHERPA_ONNX_MODEL_DIRcom encoder/decoder/joiner/tokens)whisper-cli(dewhisper-cpp; usaWHISPER_CPP_MODELou o modelo tiny incluído)whisper(CLI em Python; baixa os modelos automaticamente)
- Gemini CLI (
gemini) usandoread_many_files - Chaves de provedor (OpenAI → Groq → Deepgram → Google)
tools.media.audio.enabled: false.
Para personalizar, defina tools.media.audio.models.
Nota: A detecção de binários é best-effort em macOS/Linux/Windows; garanta que a CLI esteja em PATH (expandimos ~), ou defina um modelo de CLI explícito com o caminho completo do comando.
Exemplos de configuração
Provedor + fallback de CLI (OpenAI + Whisper CLI)
Somente provedor com controle por escopo
Somente provedor (Deepgram)
Notas e limites
- A autenticação do provedor segue a ordem padrão de autenticação do modelo (perfis de autenticação, variáveis de ambiente,
models.providers.*.apiKey). - O Deepgram usa
DEEPGRAM_API_KEYquandoprovider: "deepgram"é utilizado. - Detalhes de configuração do Deepgram: Deepgram (transcrição de áudio).
- Provedores de áudio podem sobrescrever
baseUrl,headerseproviderOptionsviatools.media.audio. - O limite de tamanho padrão é 20MB (
tools.media.audio.maxBytes). Áudio acima do tamanho é ignorado para aquele modelo e a próxima entrada é tentada. - O
maxCharspadrão para áudio é não definido (transcrição completa). Definatools.media.audio.maxCharsoumaxCharspor entrada para reduzir a saída. - O padrão automático da OpenAI é
gpt-4o-mini-transcribe; definamodel: "gpt-4o-transcribe"para maior precisão. - Use
tools.media.audio.attachmentspara processar várias notas de voz (mode: "all"+maxAttachments). - A transcrição fica disponível para templates como
{{Transcript}}. - A saída stdout da CLI é limitada (5MB); mantenha a saída da CLI concisa.
Detecção de menções em grupos
QuandorequireMention: true está definido para um chat em grupo, o OpenClaw agora transcreve o áudio antes de verificar menções. Isso permite que mensagens de voz sejam processadas mesmo quando contêm menções.
Como funciona:
- Se uma mensagem de voz não tiver texto e o grupo exigir menções, o OpenClaw realiza uma transcrição “preflight”.
- A transcrição é verificada em busca de padrões de menção (por exemplo,
@BotName, gatilhos por emoji). - Se uma menção for encontrada, a mensagem segue pelo pipeline completo de resposta.
- A transcrição é usada para detecção de menções para que mensagens de voz possam passar pela exigência de menção.
- Se a transcrição falhar durante o preflight (timeout, erro de API, etc.), a mensagem será processada com base apenas na detecção de menção por texto.
- Isso garante que mensagens mistas (texto + áudio) nunca sejam descartadas incorretamente.
requireMention: true. A mensagem de voz é transcrita, a menção é detectada e o agente responde.
Pegadas
- As regras de escopo usam “primeira correspondência vence”.
chatTypeé normalizado paradirect,groupouroom. - Garanta que sua CLI finalize com código 0 e imprima texto simples; JSON precisa ser ajustado via
jq -r .text. - Mantenha timeouts razoáveis (
timeoutSeconds, padrão 60s) para evitar bloquear a fila de respostas. - A transcrição de preflight processa apenas o primeiro anexo de áudio para detecção de menção. Áudios adicionais são processados durante a fase principal de compreensão de mídia.