Funzionamento
Quando la comprensione audio è abilitata (o rilevata automaticamente), OpenClaw:- Individua il primo allegato audio (percorso locale o URL) e lo scarica, se necessario.
- Applica
maxBytesprima dell’invio a ciascuna voce di modello. - Esegue in ordine la prima voce di modello idonea (provider o CLI); se una voce non riesce o viene ignorata (dimensione/timeout), prova quella successiva.
- In caso di esito positivo, sostituisce
Bodycon un blocco[Audio]e imposta{{Transcript}}.
CommandBody/RawBody vengono impostati sulla trascrizione, affinché i comandi slash continuino a funzionare. Con --verbose, i log mostrano quando viene eseguita la trascrizione e quando sostituisce il corpo.
Rilevamento automatico (predefinito)
Se non hai configurato modelli etools.media.audio.enabled non è false, OpenClaw esegue il rilevamento automatico nell’ordine seguente e si arresta alla prima opzione funzionante:
- Modello di risposta attivo, quando il relativo provider supporta la comprensione audio.
- Autenticazione del provider configurata — qualsiasi voce
models.providers.*con autenticazione disponibile per un provider che supporta la trascrizione audio. Questa verifica avviene prima delle CLI locali, quindi una chiave API configurata ha sempre la precedenza su un binario locale inPATH. Priorità dei provider quando ne sono configurati più di uno: Groq, OpenAI, xAI, Deepgram, Google, SenseAudio, ElevenLabs, Mistral. - CLI locali (solo se non è stata risolta alcuna autenticazione del provider). OpenClaw crea un elenco ordinato di opzioni di ripiego:
whisper-cli, prima delle opzioni CPU predefinite solo quando una precedente invocazione del modello nel processo corrente ha rilevato Metal o CUDAsherpa-onnx-offlinecon il relativo provider CPU predefinito (richiedeSHERPA_ONNX_MODEL_DIRcontokens.txt,encoder.onnx,decoder.onnxejoiner.onnx)whisper-cliquando Metal/CUDA è soltanto supportato dalla compilazione o il backend selezionato non è stato altrimenti rilevatoparakeet-mlxsu Apple Silicon (compatibile con MLX; l’uso del dispositivo rimane non rilevato)whisper(CLI Python; scarica automaticamente i modelli)
using … backend del progetto upstream. Le voci CLI esplicite mantengono i flag di output configurati.
Il rilevamento automatico della CLI Gemini per la comprensione dei contenuti multimediali è stato sostituito da un’opzione di ripiego basata sulla CLI Antigravity (agy) in sandbox per immagini e video; per l’audio non viene usata alcuna opzione CLI di ripiego oltre ai binari locali indicati sopra.
Per disabilitare il rilevamento automatico, imposta tools.media.audio.enabled: false. Per personalizzarlo, imposta tools.media.audio.models.
Il rilevamento dei binari è basato sul massimo sforzo possibile su macOS/Linux/Windows. Assicurati che la CLI sia in
PATH (~ viene espanso) oppure imposta un modello CLI esplicito con il percorso completo del comando./status indica nella riga dei contenuti multimediali il backend richiesto o rilevato. Le voci CLI esplicite in tools.media.audio.models continuano a ignorare la selezione automatica; usa i rispettivi flag specifici del backend, come --provider=cuda di sherpa o --no-gpu/--device di whisper.cpp.
Esempi di configurazione
Provider + opzione CLI di ripiego (OpenAI + CLI Whisper)
Solo provider con limitazione dell’ambito
Solo provider (Deepgram)
Solo provider (Mistral Voxtral)
Solo provider (SenseAudio)
Invio della trascrizione nella chat (facoltativo)
Note e limitazioni
- L’autenticazione del provider segue l’ordine standard di autenticazione dei modelli (profili di autenticazione, variabili di ambiente,
models.providers.*.apiKey). - Dettagli sulla configurazione di Groq: Groq.
- Deepgram usa
DEEPGRAM_API_KEYquando viene utilizzatoprovider: "deepgram". Dettagli sulla configurazione: Deepgram. - Dettagli sulla configurazione di Mistral: Mistral.
- SenseAudio usa
SENSEAUDIO_API_KEYquando viene utilizzatoprovider: "senseaudio". Dettagli sulla configurazione: SenseAudio. - I provider audio possono sostituire
baseUrl,headerseproviderOptionstramitetools.media.audio. - Il limite di dimensione predefinito è 20 MB (
tools.media.audio.maxBytes). L’audio che supera il limite viene ignorato per quel modello e viene provata la voce successiva. - I file audio inferiori a 1024 byte vengono ignorati prima della trascrizione tramite provider/CLI.
- Il valore predefinito di
maxCharsper l’audio è non impostato (trascrizione completa). Impostatools.media.audio.maxCharso un valoremaxCharsper singola voce per troncare l’output. - Il valore predefinito del rilevamento automatico di OpenAI è
gpt-4o-transcribe; impostamodel: "gpt-4o-mini-transcribe"per un’opzione più economica e veloce. - Usa
tools.media.audio.attachmentsper elaborare più note vocali (mode: "all"insieme amaxAttachments, valore predefinito 1). - La trascrizione è disponibile per i modelli tramite
{{Transcript}}. tools.media.audio.echoTranscriptè disabilitato per impostazione predefinita; abilitalo per inviare una conferma della trascrizione alla chat di origine prima dell’elaborazione da parte dell’agente.tools.media.audio.echoFormatpersonalizza il testo della conferma (segnaposto:{transcript}; valore predefinito📝 "{transcript}").- Lo stdout della CLI è limitato a 5 MB; mantieni conciso l’output della CLI.
- Gli
argsdella CLI devono usare{{MediaPath}}per il percorso del file audio locale. Eseguiopenclaw doctor --fixper migrare i segnaposto{input}deprecati dalle configurazioniaudio.transcription.commandmeno recenti (chiave ritirata:audio.transcription, sostituita datools.media.audio.models). tools.media.concurrencylimita le attività multimediali; non è uno scheduler per GPU.
STT locale residente
L’STT locale rilevato automaticamente continua a usare un processo per richiesta. OpenClaw attualmente non gestisce un server whisper.cpp residente perché il pacchetto standard Homebrewwhisper-cpp disabilita tale server, mentre l’esempio upstream non dispone di una coda di ammissione limitata configurata. Prima di poter essere abilitato in sicurezza, un ciclo di vita residente gestito da un Plugin richiede un worker distribuito e mantenuto, dotato di controlli di integrità e avvio, permanenza del modello in memoria, accodamento limitato, annullamento/timeout, funzionamento senza autenticazione esclusivamente tramite local loopback e nessuna opzione cloud di ripiego.
Supporto delle variabili di ambiente per proxy
La trascrizione audio basata su provider rispetta le variabili di ambiente standard per i proxy in uscita, conformemente alla semantica diEnvHttpProxyAgent di undici:
HTTPS_PROXY/https_proxyHTTP_PROXY/http_proxyALL_PROXY/all_proxy
NO_PROXY/no_proxy (nomi host, *.suffix o host:port) ignorano il proxy. Se non è impostata alcuna variabile di ambiente per il proxy, viene usata un’uscita diretta. Se la configurazione del proxy non riesce (URL non valido), OpenClaw registra un avviso e torna al recupero diretto.
Rilevamento delle menzioni nei gruppi
Nei canali che supportano la verifica preliminare dell’audio, OpenClaw trascrive l’audio prima di verificare le menzioni quando per una chat di gruppo è impostatorequireMention: true. Ciò consente a una nota vocale senza didascalia di superare il controllo delle menzioni quando la trascrizione contiene un modello di menzione configurato. La documentazione specifica dei canali descrive i trasporti che richiedono invece una menzione digitata.
Funzionamento:
- Se un messaggio vocale non contiene un corpo testuale e il gruppo richiede menzioni, OpenClaw esegue una trascrizione preliminare del primo allegato audio.
- La trascrizione viene controllata alla ricerca di modelli di menzione (ad esempio
@BotName, attivatori emoji). - Se viene trovata una menzione, il messaggio prosegue attraverso la pipeline di risposta completa.
- Imposta
channels.telegram.groups.<chatId>.disableAudioPreflight: trueper ignorare i controlli preliminari delle menzioni nella trascrizione per quel gruppo. - Imposta
channels.telegram.groups.<chatId>.topics.<threadId>.disableAudioPreflightper sostituire l’impostazione per singolo argomento (trueper ignorare,falseper forzare l’abilitazione). - Il valore predefinito è
false(verifica preliminare abilitata quando corrispondono le condizioni che richiedono una menzione).
requireMention: true. La nota vocale viene trascritta, la menzione viene rilevata e l’agente risponde.
Aspetti da considerare
- Le regole di ambito usano la prima corrispondenza;
chatTypeviene normalizzato indirect,groupochannel. - Assicurati che la CLI termini con codice 0 e stampi testo normale; l’output JSON deve essere rielaborato tramite
jq -r .text. - Le modalità note di output su file sono autorevoli: un file di trascrizione dedotto vuoto o mancante non produce alcuna trascrizione, anziché ricorrere all’output di avanzamento della CLI.
- Per
parakeet-mlx, usa--output-format txt(oall) con--output-dire il modello di output predefinito{filename}. Sono supportate anche le variabili di ambiente upstreamPARAKEET_OUTPUT_FORMATePARAKEET_OUTPUT_TEMPLATE. OpenClaw legge<output-dir>/<media-basename>.txt; il formato predefinitosrt, gli altri formati e i modelli di output personalizzati continuano a usare stdout. - Mantieni timeout ragionevoli (
timeoutSeconds, valore predefinito 60 s) per evitare di bloccare la coda delle risposte. - La trascrizione preliminare elabora soltanto il primo allegato audio per il rilevamento delle menzioni. Gli allegati audio aggiuntivi vengono elaborati durante la fase principale di comprensione dei contenuti multimediali.