O modo Talk tem duas formas de runtime:Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
- O Talk nativo do macOS/iOS/Android usa reconhecimento de fala local, chat do Gateway e TTS
talk.speak. Os nós anunciam a capacidadetalke declaram os comandostalk.*compatíveis. - O Talk no navegador usa
talk.client.createpara sessõeswebrtceprovider-websocketpertencentes ao cliente, outalk.session.createpara sessõesgateway-relaypertencentes ao Gateway.managed-roomé reservado para transferência do Gateway e salas de walkie-talkie. - Clientes somente de transcrição usam
talk.session.create({ mode: "transcription", transport: "gateway-relay", brain: "none" }), depoistalk.session.appendAudio,talk.session.cancelTurnetalk.session.closequando precisam de legendas ou ditado sem uma resposta de voz do assistente.
- Ouvir fala
- Enviar a transcrição ao modelo por meio da sessão ativa
- Aguardar a resposta
- Reproduzi-la pelo provedor de Talk configurado (
talk.speak)
talk.client.toolCall; clientes de navegador não chamam chat.send diretamente para consultas em tempo real.
O Talk somente de transcrição emite o mesmo envelope comum de eventos do Talk que sessões em tempo real e STT/TTS, mas usa mode: "transcription" e brain: "none". Ele é destinado a legendas, ditado e captura de fala somente para observação; notas de voz enviadas avulsamente ainda usam o caminho de mídia/áudio.
Comportamento (macOS)
- Sobreposição sempre ativa enquanto o modo Talk estiver ativado.
- Transições de fase Ouvindo → Pensando → Falando.
- Em uma pausa curta (janela de silêncio), a transcrição atual é enviada.
- As respostas são escritas no WebChat (igual a digitar).
- Interromper ao falar (ativado por padrão): se o usuário começar a falar enquanto o assistente estiver falando, interrompemos a reprodução e registramos o timestamp da interrupção para o próximo prompt.
Diretivas de voz nas respostas
O assistente pode prefixar sua resposta com uma única linha JSON para controlar a voz:- Apenas a primeira linha não vazia.
- Chaves desconhecidas são ignoradas.
once: trueaplica-se somente à resposta atual.- Sem
once, a voz se torna o novo padrão do modo Talk. - A linha JSON é removida antes da reprodução TTS.
voice/voice_id/voiceIdmodel/model_id/modelIdspeed,rate(WPM),stability,similarity,style,speakerBoostseed,normalize,lang,output_format,latency_tieronce
Configuração (~/.openclaw/openclaw.json)
interruptOnSpeech: truesilenceTimeoutMs: quando não definido, o Talk mantém a janela de pausa padrão da plataforma antes de enviar a transcrição (700 ms no macOS e Android, 900 ms no iOS)provider: seleciona o provedor de Talk ativo. Useelevenlabs,mlxousystempara os caminhos de reprodução locais do macOS.providers.<provider>.voiceId: faz fallback paraELEVENLABS_VOICE_ID/SAG_VOICE_IDpara ElevenLabs (ou para a primeira voz do ElevenLabs quando a chave de API está disponível).providers.elevenlabs.modelId: usaeleven_v3por padrão quando não definido.providers.mlx.modelId: usamlx-community/Soprano-80M-bf16por padrão quando não definido.providers.elevenlabs.apiKey: faz fallback paraELEVENLABS_API_KEY(ou para o perfil de shell do Gateway, se disponível).consultThinkingLevel: substituição opcional do nível de raciocínio para a execução completa do agente OpenClaw por trás de chamadasopenclaw_agent_consultem tempo real.consultFastMode: substituição opcional do modo rápido para chamadasopenclaw_agent_consultem tempo real.realtime.provider: seleciona o provedor ativo de voz em tempo real para navegador/servidor. Useopenaipara WebRTC,googlepara WebSocket do provedor, ou um provedor somente de ponte por meio do relay do Gateway.realtime.providers.<provider>armazena a configuração em tempo real pertencente ao provedor. O navegador recebe apenas credenciais de sessão efêmeras ou restritas, nunca uma chave de API padrão.realtime.providers.openai.voice: id de voz integrado do OpenAI Realtime. As vozes atuais degpt-realtime-2sãoalloy,ash,ballad,coral,echo,sage,shimmer,verse,marinecedar;marinecedarsão recomendadas para a melhor qualidade.realtime.brain:agent-consultroteia chamadas de ferramentas em tempo real pela política do Gateway;direct-toolsé um comportamento de compatibilidade exclusivo do proprietário;noneé para transcrição ou orquestração externa.realtime.instructions: acrescenta instruções de sistema voltadas ao provedor ao prompt em tempo real integrado do OpenClaw. Use para estilo e tom de voz; o OpenClaw mantém a orientação padrão deopenclaw_agent_consult.talk.catalogexpõe os modos, transportes, estratégias de brain, formatos de áudio em tempo real e flags de capacidade válidos de cada provedor para que clientes Talk próprios evitem combinações incompatíveis.- Provedores de transcrição por streaming são descobertos por
talk.catalog.transcription. O relay atual do Gateway usa a configuração do provedor de streaming de Voice Call até que a superfície dedicada de configuração de transcrição do Talk seja adicionada. speechLocale: id de localidade BCP 47 opcional para reconhecimento de fala do Talk no dispositivo em iOS/macOS. Deixe sem definir para usar o padrão do dispositivo.outputFormat: usapcm_44100por padrão no macOS/iOS epcm_24000no Android (definamp3_*para forçar streaming MP3)
UI do macOS
- Alternância na barra de menus: Talk
- Aba de configuração: grupo Talk Mode (id de voz + alternância de interrupção)
- Sobreposição:
- Ouvindo: a nuvem pulsa com o nível do microfone
- Pensando: animação afundando
- Falando: anéis radiantes
- Clicar na nuvem: parar de falar
- Clicar no X: sair do modo Talk
UI do Android
- Alternância na aba de voz: Talk
- Mic manual e Talk são modos de captura em runtime mutuamente exclusivos.
- O Mic manual para quando o app sai do primeiro plano ou o usuário sai da aba de voz.
- O modo Talk continua em execução até ser desativado ou até o nó Android desconectar, e usa o tipo de serviço em primeiro plano de microfone do Android enquanto está ativo.
Observações
- Requer permissões de Fala + Microfone.
- O Talk nativo usa a sessão ativa do Gateway e só faz fallback para sondagem de histórico quando eventos de resposta não estão disponíveis.
- O Talk em tempo real no navegador usa
talk.client.toolCallparaopenclaw_agent_consultem vez de exporchat.senda sessões de navegador pertencentes ao provedor. - O Talk somente de transcrição usa
talk.session.create,talk.session.appendAudio,talk.session.cancelTurnetalk.session.close; clientes assinamtalk.eventpara atualizações parciais/finais da transcrição. - O gateway resolve a reprodução do Talk por
talk.speakusando o provedor de Talk ativo. O Android faz fallback para TTS local do sistema somente quando esse RPC está indisponível. - A reprodução local MLX no macOS usa o helper
openclaw-mlx-ttsincluído quando presente, ou um executável noPATH. DefinaOPENCLAW_MLX_TTS_BINpara apontar para um binário helper personalizado durante o desenvolvimento. stabilityparaeleven_v3é validado como0.0,0.5ou1.0; outros modelos aceitam0..1.latency_tieré validado como0..4quando definido.- O Android oferece suporte aos formatos de saída
pcm_16000,pcm_22050,pcm_24000epcm_44100para streaming AudioTrack de baixa latência.