- Native macOS/iOS/Android Talk gebruikt lokale spraakherkenning, Gateway-chat en
talk.speakTTS. Nodes adverteren detalk-capability en declareren detalk.*-commando’s die ze ondersteunen. - iOS Talk gebruikt client-beheerde WebRTC voor OpenAI-realtimeconfiguraties die
webrtcselecteren of het transport weglaten. Explicietegateway-relay-,provider-websocket- en niet-OpenAI-realtimeconfiguraties blijven op de door Gateway beheerde relay; niet-realtimeconfiguraties gebruiken de native spraaklus. - Browser Talk gebruikt
talk.client.createvoor client-beheerdewebrtc- enprovider-websocket-sessies, oftalk.session.createvoor door Gateway beheerdegateway-relay-sessies.managed-roomis gereserveerd voor Gateway-overdracht en walkietalkie-ruimtes. - Android Talk kan kiezen voor door Gateway beheerde realtime-relaysessies met
talk.realtime.mode: "realtime"entalk.realtime.transport: "gateway-relay". Anders blijft het op native spraakherkenning, Gateway-chat entalk.speak. - Clients voor alleen transcriptie gebruiken
talk.session.create({ mode: "transcription", transport: "gateway-relay", brain: "none" }), en daarnatalk.session.appendAudio,talk.session.cancelTurnentalk.session.closewanneer ze ondertitels of dicteren nodig hebben zonder gesproken assistentantwoord.
- Luisteren naar spraak
- Transcript naar het model sturen via de actieve sessie
- Wachten op het antwoord
- Het uitspreken via de geconfigureerde Talk-provider (
talk.speak)
talk.client.toolCall; die clients roepen chat.send niet rechtstreeks aan voor realtime-consults.
Terwijl een realtime-consult actief is, kunnen Talk-clients talk.client.steer of
talk.session.steer gebruiken om gesproken invoer te classificeren als status, steer, cancel of
followup. Geaccepteerde sturing wordt in de actieve ingebedde run in de wachtrij gezet; afgewezen
sturing geeft een gestructureerde reden terug, zoals no_active_run, not_streaming
of compacting.
Talk voor alleen transcriptie emit dezelfde algemene Talk-eventenvelop als realtime- en STT/TTS-sessies, maar gebruikt mode: "transcription" en brain: "none". Het is bedoeld voor ondertitels, dicteren en alleen observerende spraakopname; eenmalig geüploade spraaknotities gebruiken nog steeds het media-/audiopad.
Gedrag (macOS)
- Altijd actieve overlay terwijl Talk-modus is ingeschakeld.
- Luisteren → Denken → Spreken faseovergangen.
- Bij een korte pauze (stiltevenster) wordt het huidige transcript verzonden.
- Antwoorden worden naar WebChat geschreven (hetzelfde als typen).
- Onderbreken bij spraak (standaard aan): als de gebruiker begint te praten terwijl de assistent spreekt, stoppen we het afspelen en noteren we de onderbrekingstijdstempel voor de volgende prompt.
Spraakrichtlijnen in antwoorden
De assistent kan het antwoord vooraf laten gaan door een enkele JSON-regel om de stem te sturen:- Alleen de eerste niet-lege regel.
- Onbekende sleutels worden genegeerd.
once: truegeldt alleen voor het huidige antwoord.- Zonder
oncewordt de stem de nieuwe standaard voor Talk-modus. - De JSON-regel wordt verwijderd vóór TTS-afspelen.
voice/voice_id/voiceIdmodel/model_id/modelIdspeed,rate(WPM),stability,similarity,style,speakerBoostseed,normalize,lang,output_format,latency_tieronce
Configuratie (~/.openclaw/openclaw.json)
interruptOnSpeech: truesilenceTimeoutMs: wanneer niet ingesteld, behoudt Talk het platformstandaard-pauzevenster voordat het transcript wordt verzonden (700 ms on macOS and Android, 900 ms on iOS)provider: selecteert de actieve Talk-provider. Gebruikelevenlabs,mlxofsystemvoor de macOS-lokale afspeelpaden.providers.<provider>.voiceId: valt terug opELEVENLABS_VOICE_ID/SAG_VOICE_IDvoor ElevenLabs (of de eerste ElevenLabs-stem wanneer een API-sleutel beschikbaar is).providers.elevenlabs.modelId: standaardeleven_v3wanneer niet ingesteld.providers.mlx.modelId: standaardmlx-community/Soprano-80M-bf16wanneer niet ingesteld.providers.elevenlabs.apiKey: valt terug opELEVENLABS_API_KEY(of Gateway-shellprofiel indien beschikbaar).consultThinkingLevel: optionele override voor het denkniveau voor de volledige OpenClaw-agentrun achter realtimeopenclaw_agent_consult-calls.consultFastMode: optionele fast-mode-override voor realtimeopenclaw_agent_consult-calls.realtime.provider: selecteert de actieve realtime-spraakprovider. Gebruikopenaivoor WebRTC,googlevoor provider-WebSocket, of een provider die alleen via een bridge werkt via Gateway-relay.realtime.providers.<provider>slaat provider-beheerde realtimeconfiguratie op. De browser ontvangt alleen tijdelijke of beperkte sessiereferenties, nooit een standaard API-sleutel.realtime.providers.openai.voice: ingebouwde OpenAI Realtime-stem-id. Huidigegpt-realtime-2-stemmen zijnalloy,ash,ballad,coral,echo,sage,shimmer,verse,marinencedar;marinencedarworden aanbevolen voor de beste kwaliteit.realtime.transport:webrtcgebruikt client-beheerde OpenAI WebRTC op iOS en in de browser.provider-websocketis browser-beheerd maar blijft op iOS op de Gateway-relay.gateway-relayhoudt provider-audio op de Gateway; Android gebruikt realtime alleen voor dit transport en behoudt anders de native STT/TTS-lus.realtime.brain:agent-consultrouteert realtime-toolcalls via Gateway-beleid;direct-toolsis verouderd compatibiliteitsgedrag voor directe tools;noneis voor transcriptie of externe orkestratie.realtime.consultRouting:provider-directbehoudt het directe antwoord van de provider wanneer dezeopenclaw_agent_consultoverslaat;force-agent-consultlaat Gateway-relay afgeronde gebruikerstranscripten in plaats daarvan via OpenClaw routeren.realtime.instructions: voegt provider-gerichte systeeminstructies toe aan de ingebouwde realtimeprompt van OpenClaw. Gebruik dit voor stemstijl en toon; OpenClaw behoudt de standaardrichtlijnen vooropenclaw_agent_consult.talk.catalogexposeert canonieke provider-id’s en registeraliassen naast de geldige modi, transporten, brain-strategieën, realtime-audioformaten, capability-vlaggen en het door de runtime geselecteerde gereedheidsresultaat van elke provider. First-party Talk-clients moeten die catalogus gebruiken in plaats van provideraliassen lokaal te onderhouden; een oudere Gateway die groepsgereedheid weglaat, is niet geverifieerd in plaats van definitief niet geconfigureerd.- Streaming-transcriptieproviders worden ontdekt via
talk.catalog.transcription. De huidige Gateway-relay gebruikt de configuratie van de streamingprovider voor spraakoproepen totdat het specifieke configuratieoppervlak voor Talk-transcriptie is toegevoegd. speechLocale: optionele BCP 47-locale-id voor on-device Talk-spraakherkenning op iOS/macOS. Laat dit leeg om de apparaatstandaard te gebruiken.outputFormat: standaardpcm_44100op macOS/iOS enpcm_24000op Android (stelmp3_*in om MP3-streaming af te dwingen)
macOS-UI
- Menubalkschakelaar: Talk
- Configuratietabblad: groep Talk-modus (stem-id + onderbrekingsschakelaar)
- Overlay:
- Luisteren: wolk pulseert met microfoonniveau
- Denken: zinkende animatie
- Spreken: uitstralende ringen
- Klik op wolk: stoppen met spreken
- Klik op X: Talk-modus afsluiten
Android-UI
- Schakelaar op spraaktabblad: Talk
- Handmatige Mic en Talk zijn elkaar uitsluitende runtime-opnamemodi.
- Handmatige Mic en realtime Talk geven de voorkeur aan een verbonden Bluetooth Classic- of BLE-headsetmicrofoon. Als die wordt losgekoppeld, vraagt de app om een andere headsetinvoer of laat Android de standaardmicrofoon gebruiken; stoppen met opnemen herstelt de standaardmicrofoonvoorkeur.
- Handmatige Mic stopt wanneer de app de voorgrond verlaat of de gebruiker het spraaktabblad verlaat.
- Talk-modus blijft actief totdat deze wordt uitgeschakeld of de Android-Node de verbinding verbreekt, en gebruikt het microfoon-foreground-servicetype van Android terwijl deze actief is.
Opmerkingen
- Vereist machtigingen voor spraak en microfoon.
- Native Talk gebruikt de actieve Gateway-sessie en valt alleen terug op history-polling wanneer response-events niet beschikbaar zijn.
- Client-beheerde realtime Talk gebruikt
talk.client.toolCallvooropenclaw_agent_consultin plaats vanchat.sendbeschikbaar te maken voor provider-beheerde sessies. - Talk voor alleen transcriptie gebruikt
talk.session.create,talk.session.appendAudio,talk.session.cancelTurnentalk.session.close; clients abonneren zich optalk.eventvoor gedeeltelijke/definitieve transcriptupdates. - De gateway lost Talk-afspelen op via
talk.speakmet de actieve Talk-provider. Android valt alleen terug op lokale systeem-TTS wanneer die RPC niet beschikbaar is. - macOS-lokale MLX-weergave gebruikt de gebundelde
openclaw-mlx-tts-helper wanneer aanwezig, of een uitvoerbaar bestand opPATH. StelOPENCLAW_MLX_TTS_BINin om tijdens ontwikkeling naar een aangepaste helper-binary te verwijzen. stabilityvooreleven_v3wordt gevalideerd naar0.0,0.5of1.0; andere modellen accepteren0..1.latency_tierwordt gevalideerd naar0..4wanneer ingesteld.- Android ondersteunt
pcm_16000-,pcm_22050-,pcm_24000- enpcm_44100-uitvoerformaten voor low-latency AudioTrack-streaming.