Der Talk-Modus hat zwei Laufzeitformen: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.
- Nativer macOS/iOS/Android-Talk verwendet lokale Spracherkennung, Gateway-Chat und
talk.speak-TTS. Nodes geben dietalk-Capability bekannt und deklarieren die von ihnen unterstütztentalk.*-Befehle. - Browser-Talk verwendet
talk.client.createfür clientseitig verwaltetewebrtc- undprovider-websocket-Sitzungen odertalk.session.createfür Gateway-seitig verwaltetegateway-relay-Sitzungen.managed-roomist für Gateway-Übergabe und Walkie-Talkie-Räume reserviert. - Nur-Transkriptions-Clients verwenden
talk.session.create({ mode: "transcription", transport: "gateway-relay", brain: "none" })und anschließendtalk.session.appendAudio,talk.session.cancelTurnundtalk.session.close, wenn sie Untertitel oder Diktat ohne Sprachantwort eines Assistenten benötigen.
- Auf Sprache warten
- Transkript über die aktive Sitzung an das Modell senden
- Auf die Antwort warten
- Über den konfigurierten Talk-Provider sprechen (
talk.speak)
talk.client.toolCall weiter; Browser-Clients rufen chat.send bei Echtzeit-Konsultationen nicht direkt auf.
Nur-Transkriptions-Talk gibt dieselbe gemeinsame Talk-Ereignishülle wie Echtzeit- und STT/TTS-Sitzungen aus, verwendet jedoch mode: "transcription" und brain: "none". Er ist für Untertitel, Diktat und reine Beobachtungs-Spracherfassung gedacht; einmalig hochgeladene Sprachnotizen verwenden weiterhin den Medien-/Audiopfad.
Verhalten (macOS)
- Always-on-Overlay, während der Talk-Modus aktiviert ist.
- Phasenübergänge Zuhören → Denken → Sprechen.
- Bei einer kurzen Pause (Stillefenster) wird das aktuelle Transkript gesendet.
- Antworten werden in WebChat geschrieben (wie beim Tippen).
- Unterbrechung bei Sprache (standardmäßig aktiviert): Wenn der Benutzer zu sprechen beginnt, während der Assistent spricht, stoppen wir die Wiedergabe und notieren den Unterbrechungszeitstempel für den nächsten Prompt.
Sprachanweisungen in Antworten
Der Assistent kann seiner Antwort eine einzelne JSON-Zeile voranstellen, um die Stimme zu steuern:- Nur die erste nicht leere Zeile.
- Unbekannte Schlüssel werden ignoriert.
once: truegilt nur für die aktuelle Antwort.- Ohne
oncewird die Stimme zum neuen Standard für den Talk-Modus. - Die JSON-Zeile wird vor der TTS-Wiedergabe entfernt.
voice/voice_id/voiceIdmodel/model_id/modelIdspeed,rate(WPM),stability,similarity,style,speakerBoostseed,normalize,lang,output_format,latency_tieronce
Konfiguration (~/.openclaw/openclaw.json)
interruptOnSpeech: truesilenceTimeoutMs: Wenn nicht gesetzt, behält Talk das plattformspezifische Standard-Pausenfenster bei, bevor das Transkript gesendet wird (700 ms on macOS and Android, 900 ms on iOS)provider: wählt den aktiven Talk-Provider aus. Verwenden Sieelevenlabs,mlxodersystemfür die lokalen macOS-Wiedergabepfade.providers.<provider>.voiceId: fällt für ElevenLabs aufELEVENLABS_VOICE_ID/SAG_VOICE_IDzurück (oder auf die erste ElevenLabs-Stimme, wenn ein API-Schlüssel verfügbar ist).providers.elevenlabs.modelId: standardmäßigeleven_v3, wenn nicht gesetzt.providers.mlx.modelId: standardmäßigmlx-community/Soprano-80M-bf16, wenn nicht gesetzt.providers.elevenlabs.apiKey: fällt aufELEVENLABS_API_KEYzurück (oder auf das Gateway-Shell-Profil, falls verfügbar).consultThinkingLevel: optionale Überschreibung der Denkstufe für den vollständigen OpenClaw-Agentenlauf hinter Echtzeit-openclaw_agent_consult-Aufrufen.consultFastMode: optionale Fast-Mode-Überschreibung für Echtzeit-openclaw_agent_consult-Aufrufe.realtime.provider: wählt den aktiven Browser-/Server-Echtzeit-Sprachprovider aus. Verwenden Sieopenaifür WebRTC,googlefür Provider-WebSocket oder einen reinen Bridge-Provider über Gateway-Relay.realtime.providers.<provider>speichert Provider-eigene Echtzeitkonfiguration. Der Browser erhält nur ephemere oder eingeschränkte Sitzungsanmeldeinformationen, niemals einen Standard-API-Schlüssel.realtime.providers.openai.voice: integrierte OpenAI-Realtime-Stimmen-ID. Aktuellegpt-realtime-2-Stimmen sindalloy,ash,ballad,coral,echo,sage,shimmer,verse,marinundcedar;marinundcedarwerden für beste Qualität empfohlen.realtime.brain:agent-consultleitet Echtzeit-Tool-Aufrufe durch Gateway-Policy;direct-toolsist ein Owner-only-Kompatibilitätsverhalten;noneist für Transkription oder externe Orchestrierung vorgesehen.realtime.instructions: hängt providerseitige Systemanweisungen an den integrierten Echtzeit-Prompt von OpenClaw an. Verwenden Sie dies für Sprachstil und Ton; OpenClaw behält die standardmäßigeopenclaw_agent_consult-Anleitung bei.talk.catalogstellt die gültigen Modi, Transports, Brain-Strategien, Echtzeit-Audioformate und Capability-Flags jedes Providers bereit, damit First-Party-Talk-Clients nicht unterstützte Kombinationen vermeiden können.- Streaming-Transkriptions-Provider werden über
talk.catalog.transcriptionerkannt. Das aktuelle Gateway-Relay verwendet die Konfiguration des Voice-Call-Streaming-Providers, bis die dedizierte Talk-Transkriptions-Konfigurationsoberfläche hinzugefügt wird. speechLocale: optionale BCP-47-Locale-ID für die geräteinterne Talk-Spracherkennung unter iOS/macOS. Lassen Sie den Wert ungesetzt, um den Gerätestandard zu verwenden.outputFormat: standardmäßigpcm_44100unter macOS/iOS undpcm_24000unter Android (setzen Siemp3_*, um MP3-Streaming zu erzwingen)
macOS-Benutzeroberfläche
- Menüleisten-Umschalter: Talk
- Konfigurations-Tab: Gruppe Talk-Modus (Stimmen-ID + Unterbrechungs-Umschalter)
- Overlay:
- Zuhören: Wolke pulsiert mit Mikrofonpegel
- Denken: absinkende Animation
- Sprechen: ausstrahlende Ringe
- Wolke anklicken: Sprechen stoppen
- X anklicken: Talk-Modus beenden
Android-Benutzeroberfläche
- Sprach-Tab-Umschalter: Talk
- Manuelles Mikrofon und Talk sind gegenseitig ausschließende Laufzeit-Erfassungsmodi.
- Manuelles Mikrofon stoppt, wenn die App den Vordergrund verlässt oder der Benutzer den Sprach-Tab verlässt.
- Der Talk-Modus läuft weiter, bis er ausgeschaltet wird oder der Android-Node die Verbindung trennt, und verwendet während der Aktivität den Vordergrunddiensttyp für das Android-Mikrofon.
Hinweise
- Erfordert Berechtigungen für Sprache und Mikrofon.
- Nativer Talk verwendet die aktive Gateway-Sitzung und fällt nur auf History-Polling zurück, wenn Antwortereignisse nicht verfügbar sind.
- Browser-Echtzeit-Talk verwendet
talk.client.toolCallfüropenclaw_agent_consult, anstattchat.sendfür Provider-eigene Browser-Sitzungen offenzulegen. - Nur-Transkriptions-Talk verwendet
talk.session.create,talk.session.appendAudio,talk.session.cancelTurnundtalk.session.close; Clients abonnierentalk.eventfür partielle/finale Transkriptaktualisierungen. - Das Gateway löst die Talk-Wiedergabe über
talk.speakmithilfe des aktiven Talk-Providers auf. Android fällt nur dann auf lokale System-TTS zurück, wenn dieser RPC nicht verfügbar ist. - Die lokale macOS-MLX-Wiedergabe verwendet den gebündelten
openclaw-mlx-tts-Helper, wenn vorhanden, oder eine ausführbare Datei aufPATH. Setzen SieOPENCLAW_MLX_TTS_BIN, um während der Entwicklung auf eine benutzerdefinierte Helper-Binärdatei zu verweisen. stabilityfüreleven_v3wird auf0.0,0.5oder1.0validiert; andere Modelle akzeptieren0..1.latency_tierwird auf0..4validiert, wenn gesetzt.- Android unterstützt die Ausgabeformate
pcm_16000,pcm_22050,pcm_24000undpcm_44100für latenzarmes AudioTrack-Streaming.