- Talk nativo su macOS/iOS/Android: riconoscimento vocale locale, chat del Gateway e TTS tramite
talk.speak. I Node pubblicizzano la funzionalitàtalke dichiarano quali comanditalk.*supportano. - Talk su iOS (in tempo reale): WebRTC gestito dal client per le configurazioni in tempo reale di OpenAI che selezionano il trasporto
webrtco lo omettono. Le configurazioni in tempo reale congateway-relay,provider-websocketespliciti e quelle non OpenAI restano sul relay gestito dal Gateway; le configurazioni non in tempo reale usano il ciclo vocale nativo. - Talk nel browser:
talk.client.createper sessioniwebrtc/provider-websocketgestite dal client oppuretalk.session.createper sessionigateway-relaygestite dal Gateway.managed-roomè riservato al passaggio di controllo al Gateway e alle stanze walkie-talkie. - Talk su Android (in tempo reale): attivalo con
talk.realtime.mode: "realtime"etalk.realtime.transport: "gateway-relay". In caso contrario, Android continua a usare il riconoscimento vocale nativo, la chat del Gateway etalk.speak. - Client di sola trascrizione:
talk.session.create({ mode: "transcription", transport: "gateway-relay", brain: "none" }), quinditalk.session.appendAudio,talk.session.cancelTurnetalk.session.closeper sottotitoli/dettatura senza una risposta vocale dell’assistente. Le note vocali caricate ed elaborate una sola volta continuano a usare il percorso audio della comprensione dei contenuti multimediali.
talk.speak).
Talk in tempo reale gestito dal client inoltra le chiamate agli strumenti del provider tramite talk.client.toolCall invece di chiamare direttamente chat.send. Mentre è attiva una consultazione in tempo reale, i client possono chiamare talk.client.steer o talk.session.steer per classificare l’input vocale come status, steer, cancel o followup. Le indicazioni accettate vengono accodate nell’esecuzione incorporata attiva; quelle rifiutate restituiscono un motivo come no_active_run, not_streaming o compacting.
Talk di sola trascrizione emette lo stesso involucro di eventi Talk delle sessioni in tempo reale e STT/TTS, ma usa mode: "transcription" e brain: "none". Tutte le sessioni Talk trasmettono gli eventi sul canale talk.event; i client vi si iscrivono per ricevere aggiornamenti parziali/finali della trascrizione (transcript.delta/transcript.done) e altri dati di telemetria della sessione.
Comportamento (macOS)
- Sovrapposizione sempre visibile mentre la modalità Talk è abilitata.
- Transizioni di fase Ascolto → Elaborazione → Riproduzione vocale.
- Dopo una breve pausa (intervallo di silenzio), viene inviata la trascrizione corrente.
- Le risposte vengono scritte in WebChat (come quando si digita).
- Interruzione al rilevamento del parlato (attiva per impostazione predefinita): se l’utente parla mentre l’assistente sta riproducendo la risposta vocale, la riproduzione si interrompe e il timestamp dell’interruzione viene annotato per il prompt successivo.
Direttive vocali nelle risposte
L’assistente può anteporre a una risposta una singola riga JSON per controllare la voce:- Solo la prima riga non vuota; la riga JSON viene rimossa prima della riproduzione TTS.
- Le chiavi sconosciute vengono ignorate.
once: truesi applica solo alla risposta corrente; senza questa opzione, la voce diventa la nuova impostazione predefinita della modalità Talk.
voice / voice_id / voiceId, model / model_id / modelId, speed, rate (WPM), stability, similarity, style, speakerBoost, seed, normalize, lang, output_format, latency_tier, once.
Configurazione (~/.openclaw/openclaw.json)
talk.catalog espone gli ID canonici dei provider e gli alias del registro, le modalità/i trasporti/le strategie del brain/i formati audio in tempo reale/i flag delle funzionalità validi per ciascun provider e il risultato di disponibilità selezionato in fase di esecuzione. I client Talk proprietari devono consultare questo catalogo anziché gestire localmente gli alias dei provider; considera un Gateway meno recente che omette la disponibilità del gruppo come non verificato, anziché definitivamente non configurato. I provider di trascrizione in streaming vengono rilevati tramite talk.catalog.transcription; l’attuale relay del Gateway utilizza la configurazione del provider di streaming Voice Call finché non sarà disponibile una superficie di configurazione dedicata alla trascrizione di Talk.
Interfaccia utente macOS
- Interruttore nella barra dei menu: Talk
- Scheda di configurazione: gruppo Modalità Talk (ID voce + interruttore per l’interruzione)
- Sovrimpressione: la sfera visualizza la forma d’onda universale di Talk (condivisa con iOS, watchOS e Android). Durante l’ascolto segue il livello del microfono in tempo reale, durante la riproduzione segue l’inviluppo effettivo della riproduzione TTS, mentre durante l’elaborazione pulsa delicatamente. Fai clic sulla sfera per mettere in pausa/riprendere, fai doppio clic per interrompere la riproduzione vocale e fai clic sulla X per uscire dalla modalità Talk.
Interfaccia utente Android
- Interruttore della scheda Voce: Talk
- Microfono manuale e Talk sono modalità di acquisizione che si escludono a vicenda.
- Il microfono manuale e Talk in tempo reale preferiscono il microfono di una cuffia Bluetooth Classic o BLE connessa; se si disconnette, l’app richiede un altro ingresso da cuffia oppure torna al microfono predefinito, ripristinando la preferenza predefinita al termine dell’acquisizione.
- Il microfono manuale si arresta quando l’app non è più in primo piano o l’utente lascia la scheda Voce.
- La modalità Talk continua a funzionare finché non viene disattivata o il Node non si disconnette, utilizzando il tipo di servizio in primo piano per il microfono di Android mentre è attiva.
- Android supporta i formati di uscita
pcm_16000,pcm_22050,pcm_24000epcm_44100per lo streamingAudioTracka bassa latenza.
Note
- Richiede le autorizzazioni per il riconoscimento vocale e il microfono.
- Talk nativo utilizza la sessione attiva del Gateway e ricorre al polling della cronologia solo quando gli eventi di risposta non sono disponibili.
- Il Gateway gestisce la riproduzione di Talk tramite
talk.speak, utilizzando il provider Talk attivo. Android ricorre al TTS locale di sistema solo quando tale RPC non è disponibile. - La riproduzione MLX locale su macOS utilizza l’helper
openclaw-mlx-ttsincluso, se presente, oppure un eseguibile disponibile inPATH. ImpostaOPENCLAW_MLX_TTS_BINin modo che punti a un binario helper personalizzato durante lo sviluppo. - Intervalli dei valori delle direttive vocali (ElevenLabs):
stability,similarityestyleaccettano0..1;speedaccetta0.5..2;latency_tieraccetta0..4.