Nodes and media
वार्ता मोड
Talk मोड पाँच रनटाइम स्वरूपों को कवर करता है:
- मूल macOS/iOS/Android Talk: मूल वाक् पहचान, Gateway चैट और
talk.speakTTS। macOS/iOS पर Apple Speech पहचान नेटवर्क सेवाओं का उपयोग कर सकती है; Android का व्यवहार इंस्टॉल की गई वाक् सेवा पर निर्भर करता है। Nodestalkक्षमता का विज्ञापन करते हैं और बताते हैं कि वे किनtalk.*कमांड का समर्थन करते हैं। - iOS Talk (रीयलटाइम): OpenAI रीयलटाइम कॉन्फ़िगरेशन के लिए क्लाइंट-स्वामित्व वाला WebRTC, जो
webrtcट्रांसपोर्ट चुनते हैं या ट्रांसपोर्ट को छोड़ देते हैं। स्पष्टgateway-relay,provider-websocketऔर गैर-OpenAI रीयलटाइम कॉन्फ़िगरेशन Gateway-स्वामित्व वाले रिले पर बने रहते हैं; गैर-रीयलटाइम कॉन्फ़िगरेशन मूल वाक् लूप का उपयोग करते हैं। - ब्राउज़र Talk: क्लाइंट-स्वामित्व वाले
webrtc/provider-websocketसत्रों के लिएtalk.client.create, या Gateway-स्वामित्व वालेgateway-relayसत्रों के लिएtalk.session.create।managed-roomGateway हैंडऑफ़ और वॉकी-टॉकी रूम के लिए आरक्षित है। - Android Talk (रीयलटाइम):
talk.realtime.mode: "realtime"औरtalk.realtime.transport: "gateway-relay"के साथ ऑप्ट इन करें। अन्यथा Android मूल वाक् पहचान, Gateway चैट औरtalk.speakपर बना रहता है। - केवल-ट्रांसक्रिप्शन क्लाइंट: सहायक की ध्वनि-प्रतिक्रिया के बिना कैप्शन/श्रुतलेखन के लिए
talk.session.create({ mode: "transcription", transport: "gateway-relay", brain: "none" }), फिरtalk.session.appendAudio,talk.session.cancelTurnऔरtalk.session.close। एक बार में अपलोड किए गए वॉइस नोट अब भी मीडिया की समझ ऑडियो पथ का उपयोग करते हैं।
मूल Talk एक सतत लूप है: वाणी सुनें, सक्रिय सत्र के माध्यम से ट्रांसक्रिप्ट को मॉडल के पास भेजें, प्रतिक्रिया की प्रतीक्षा करें, फिर कॉन्फ़िगर किए गए Talk प्रदाता (talk.speak) के माध्यम से उसे बोलें।
क्लाइंट-स्वामित्व वाला रीयलटाइम Talk, chat.send को सीधे कॉल करने के बजाय प्रदाता के टूल कॉल को talk.client.toolCall के माध्यम से अग्रेषित करता है। जब कोई रीयलटाइम परामर्श सक्रिय होता है, तो क्लाइंट बोले गए इनपुट को status, steer, cancel या followup के रूप में वर्गीकृत करने के लिए talk.client.steer या talk.session.steer को कॉल कर सकते हैं। स्वीकृत निर्देशन सक्रिय एम्बेडेड रन की कतार में जुड़ जाता है; अस्वीकृत निर्देशन no_active_run, not_streaming या compacting जैसा कारण लौटाता है।
अंतिम रूप दिए गए रीयलटाइम उपयोगकर्ता और सहायक कथन हमेशा सक्रिय एजेंट सत्र में लाइव जोड़े जाते हैं, ताकि बाद की चैट और ध्वनि वार्ताएँ एक ही इतिहास साझा करें। क्लाइंट-स्वामित्व वाले ट्रांसपोर्ट अपने अंतिम रूप दिए गए ट्रांसक्रिप्ट को स्थिर प्रविष्टि आईडी के साथ रिपोर्ट करते हैं; Gateway रिले सत्र उन्हीं ईवेंट को सर्वर-साइड पर जोड़ते हैं। प्रदाता सत्रों को Discord वॉइस द्वारा उपयोग किया जाने वाला सीमित रीयलटाइम प्रोफ़ाइल संदर्भ भी मिलता है।
ध्वनि से शुरू हुए परामर्श रन में संदेश भेजने, Nodes को नियंत्रित करने, ब्राउज़र/कंप्यूटर क्रियाओं, सेवा परिवर्तनों, विनाशकारी शेल कमांड या प्रकाशन जैसी उच्च-प्रभाव वाली क्रियाओं से पहले नई और सटीक मौखिक पुष्टि आवश्यक होती है। पुष्टि केवल अवरुद्ध टूल के ठीक उन्हीं आर्ग्युमेंट पर लागू होती है और एक बार उपयोग हो जाती है; असंबंधित समवर्ती रन अप्रभावित रहते हैं। कॉल बंद होने पर, OpenClaw सत्र के अंतिम गैर-WebChat डिलीवरी लक्ष्य को परिवर्तनकारी टूल के लिए एक संक्षिप्त वॉइस कॉल परिवर्तन सारांश भेज सकता है।
केवल-ट्रांसक्रिप्शन Talk, रीयलटाइम और STT/TTS सत्रों जैसा ही Talk ईवेंट एनवेलप उत्सर्जित करता है, लेकिन mode: "transcription" और brain: "none" का उपयोग करता है। सभी Talk सत्र talk.event चैनल पर ईवेंट प्रसारित करते हैं; क्लाइंट आंशिक/अंतिम ट्रांसक्रिप्ट अपडेट (transcript.delta/transcript.done) और अन्य सत्र टेलीमेट्री के लिए इसकी सदस्यता लेते हैं।
ब्राउज़र Video Talk, OpenAI Realtime WebRTC और Google Live
प्रदाता-WebSocket सत्रों के लिए उपलब्ध है। जब
describe_view दृश्य संदर्भ माँगता है, तब OpenAI को एक सीमित JPEG मिलता है; उसे निरंतर
कैमरा ट्रैक नहीं मिलता। Google Live सीधे
ब्राउज़र से प्रति सेकंड अधिकतम एक फ़्रेम की दर से सीमित JPEG फ़्रेम प्राप्त करता है, जबकि describe_view
कैमरा-स्ट्रीम स्थिति की रिपोर्ट करता है। दोनों मामलों में, कैमरा फ़्रेम Gateway को बायपास करते हैं और
Talk रोकने पर कैमरा तथा माइक्रोफ़ोन ट्रैक मुक्त हो जाते हैं।
व्यवहार (macOS)
- Talk मोड सक्षम रहने के दौरान हमेशा चालू रहने वाला ओवरले।
- सुनना → सोचना → बोलना चरण परिवर्तन।
- थोड़े विराम (मौन अवधि) पर वर्तमान ट्रांसक्रिप्ट भेज दिया जाता है।
- उत्तर WebChat में लिखे जाते हैं (टाइप करने के समान)।
- बोलने पर बाधित करें (डिफ़ॉल्ट रूप से चालू): यदि सहायक के बोलते समय उपयोगकर्ता बोलता है, तो प्लेबैक रुक जाता है और अगले प्रॉम्प्ट के लिए व्यवधान का टाइमस्टैम्प दर्ज किया जाता है।
उत्तरों में ध्वनि निर्देश
सहायक ध्वनि नियंत्रित करने के लिए उत्तर के आरंभ में एक JSON पंक्ति जोड़ सकता है:
{ "voice": "<voice-id>", "once": true }नियम:
- केवल पहली गैर-रिक्त पंक्ति; TTS प्लेबैक से पहले JSON पंक्ति हटा दी जाती है।
- अज्ञात कुंजियों को अनदेखा किया जाता है।
once: trueकेवल वर्तमान उत्तर पर लागू होता है; इसके बिना ध्वनि नया Talk मोड डिफ़ॉल्ट बन जाती है।
समर्थित कुंजियाँ: voice / voice_id / voiceId, model / model_id / modelId, speed, rate (WPM), stability, similarity, style, speakerBoost, seed, normalize, lang, output_format, latency_tier, once।
कॉन्फ़िगरेशन (~/.openclaw/openclaw.json)
{ talk: { provider: "elevenlabs", providers: { elevenlabs: { voiceId: "elevenlabs_voice_id", modelId: "eleven_v3", outputFormat: "mp3_44100_128", apiKey: "elevenlabs_api_key", }, mlx: { modelId: "mlx-community/Soprano-80M-bf16", }, system: {}, }, speechLocale: "ru-RU", silenceTimeoutMs: 1500, interruptOnSpeech: true, realtime: { provider: "openai", providers: { openai: { apiKey: "openai_api_key", model: "gpt-realtime-2.1", speakerVoice: "cedar", }, }, instructions: "Speak warmly and keep answers brief.", mode: "realtime", transport: "webrtc", brain: "agent-consult", }, },}| कुंजी | डिफ़ॉल्ट | टिप्पणियाँ |
|---|---|---|
provider |
- | Active Talk TTS प्रदाता। macOS-स्थानीय प्लेबैक पथों के लिए elevenlabs, mlx, या system का उपयोग करें। |
providers.<id>.voiceId |
- | ElevenLabs, ELEVENLABS_VOICE_ID / SAG_VOICE_ID, या API कुंजी के साथ उपलब्ध पहली वॉइस पर फ़ॉलबैक करता है। |
speechLocale |
डिवाइस डिफ़ॉल्ट | Android, iOS और macOS की नेटिव वाक् पहचान के लिए BCP 47 लोकेल। Apple Speech नेटवर्क सेवाओं का उपयोग कर सकता है; Android भाषा घटक को रीयलटाइम इनपुट ट्रांसक्रिप्शन में भी भेजता है। |
providers.elevenlabs.modelId |
eleven_v3 |
|
providers.mlx.modelId |
mlx-community/Soprano-80M-bf16 |
|
providers.elevenlabs.apiKey |
- | ELEVENLABS_API_KEY (या उपलब्ध होने पर Gateway शेल प्रोफ़ाइल) पर फ़ॉलबैक करता है। |
silenceTimeoutMs |
700 ms macOS/Android, 900 ms iOS |
Talk द्वारा ट्रांसक्रिप्ट भेजने से पहले का विराम अंतराल। |
interruptOnSpeech |
true |
|
outputFormat |
pcm_44100 macOS/iOS, pcm_24000 Android |
MP3 स्ट्रीमिंग को बाध्य करने के लिए mp3_* सेट करें। |
consultThinkingLevel |
सेट नहीं | रीयलटाइम openclaw_agent_consult कॉल के पीछे चलने वाले एजेंट रन के लिए विचार स्तर ओवरराइड। |
consultFastMode |
सेट नहीं | रीयलटाइम openclaw_agent_consult कॉल के लिए तेज़-मोड ओवरराइड। |
realtime.provider |
- | WebRTC के लिए openai, प्रदाता WebSocket के लिए google, या Gateway रिले के माध्यम से केवल-ब्रिज प्रदाता। |
realtime.providers.<id> |
- | प्रदाता के स्वामित्व वाला रीयलटाइम कॉन्फ़िगरेशन। ब्राउज़र केवल अल्पकालिक/सीमित सत्र क्रेडेंशियल प्राप्त करते हैं, मानक API कुंजी कभी नहीं। |
realtime.providers.openai.speakerVoice |
alloy |
अंतर्निहित OpenAI Realtime वॉइस आईडी (पुरानी voice कुंजी अब भी काम करती है, लेकिन अप्रचलित है)। वर्तमान gpt-realtime-2.1 वॉइस: alloy, ash, ballad, cedar, coral, echo, marin, sage, shimmer, verse; सर्वोत्तम गुणवत्ता के लिए marin और cedar अनुशंसित हैं। |
realtime.transport |
- | webrtc: iOS और ब्राउज़र में क्लाइंट के स्वामित्व वाला OpenAI WebRTC। provider-websocket: ब्राउज़र के स्वामित्व वाला, iOS पर Gateway रिले में बना रहता है। gateway-relay: प्रदाता ऑडियो को Gateway पर रखता है; Android केवल इसी ट्रांसपोर्ट के साथ रीयलटाइम का उपयोग करता है। |
realtime.brain |
- | agent-consult रीयलटाइम टूल कॉल को Gateway नीति के माध्यम से रूट करता है; direct-tools लीगेसी प्रत्यक्ष-टूल संगतता है; none ट्रांसक्रिप्शन/बाहरी ऑर्केस्ट्रेशन के लिए है। |
realtime.consultRouting |
- | जब प्रदाता openclaw_agent_consult को छोड़ देता है, तब provider-direct उसके प्रत्यक्ष उत्तर को बनाए रखता है; इसके बजाय force-agent-consult अंतिम रूप दिए गए उपयोगकर्ता ट्रांसक्रिप्ट को OpenClaw के माध्यम से रूट करता है। |
realtime.instructions |
- | OpenClaw के अंतर्निहित रीयलटाइम प्रॉम्प्ट में प्रदाता-संबंधी सिस्टम निर्देश जोड़ता है (वॉइस शैली/लहजा); डिफ़ॉल्ट openclaw_agent_consult मार्गदर्शन बना रहता है। |
talk.catalog मानक प्रदाता आईडी और रजिस्ट्री उपनाम, प्रत्येक प्रदाता के मान्य मोड/ट्रांसपोर्ट/ब्रेन रणनीतियाँ/रीयलटाइम ऑडियो प्रारूप/क्षमता फ़्लैग तथा रनटाइम द्वारा चुना गया तत्परता परिणाम उपलब्ध कराता है। प्रथम-पक्ष Talk क्लाइंट को प्रदाता उपनाम स्थानीय रूप से बनाए रखने के बजाय उस कैटलॉग को पढ़ना चाहिए; समूह तत्परता न देने वाले पुराने Gateway को निश्चित रूप से असंरचित मानने के बजाय असत्यापित मानें। स्ट्रीमिंग ट्रांसक्रिप्शन प्रदाताओं को talk.catalog.transcription के माध्यम से खोजा जाता है; समर्पित Talk ट्रांसक्रिप्शन कॉन्फ़िगरेशन सतह जारी होने तक वर्तमान Gateway रिले Voice Call स्ट्रीमिंग प्रदाता कॉन्फ़िगरेशन का उपयोग करता है।
macOS UI
- मेनू बार टॉगल: Talk
- कॉन्फ़िगरेशन टैब: Talk Mode समूह (वॉइस आईडी + बाधित करने का टॉगल)
- ओवरले: ऑर्ब सार्वभौमिक Talk वेवफ़ॉर्म प्रदर्शित करता है (iOS, watchOS और Android के साथ साझा)। सुनने की अवस्था लाइव माइक स्तर का अनुसरण करती है, बोलने की अवस्था वास्तविक TTS प्लेबैक एनवेलप का अनुसरण करती है, और विचार की अवस्था धीरे-धीरे स्पंदित होती है। रोकने/फिर शुरू करने के लिए ऑर्ब पर क्लिक करें, बोलना रोकने के लिए दो बार क्लिक करें और Talk मोड से बाहर निकलने के लिए X पर क्लिक करें।
Android UI
- Android का मुख्य नेविगेशन Home, Chat और Settings है। वॉइस इनपुट अलग Voice टैब के बजाय Chat कंपोज़र में होता है।
- डिवाइस पर डिक्टेशन के लिए कंपोज़र माइक्रोफ़ोन पर टैप करें। वॉइस-नोट अटैचमेंट रिकॉर्ड करने के लिए उसे देर तक दबाएँ। Talk वेवफ़ॉर्म से निरंतर Talk शुरू करें।
- डिक्टेशन, वॉइस-नोट रिकॉर्डिंग और Talk परस्पर अनन्य माइक्रोफ़ोन पथ हैं; इनमें से किसी एक को शुरू करने पर अन्य रुक जाते हैं या अवरुद्ध हो जाते हैं।
- रीयलटाइम Talk कनेक्ट किए गए Bluetooth Classic या BLE हेडसेट माइक्रोफ़ोन को प्राथमिकता देता है; यदि वह डिस्कनेक्ट हो जाता है, तो ऐप किसी अन्य हेडसेट इनपुट का अनुरोध करता है या डिफ़ॉल्ट माइक्रोफ़ोन पर फ़ॉलबैक करता है और कैप्चर रुकने पर डिफ़ॉल्ट प्राथमिकता पुनर्स्थापित करता है।
- ऐप के फ़ोरग्राउंड से बाहर जाने या उपयोगकर्ता के Chat छोड़ने पर डिक्टेशन और वॉइस-नोट रिकॉर्डिंग रुक जाती हैं।
- Talk Mode बंद किए जाने या Node के डिस्कनेक्ट होने तक चलता रहता है और सक्रिय रहते समय Android के माइक्रोफ़ोन फ़ोरग्राउंड-सेवा प्रकार का उपयोग करता है।
- Android कम विलंबता वाली
AudioTrackस्ट्रीमिंग के लिएpcm_16000,pcm_22050,pcm_24000औरpcm_44100आउटपुट प्रारूपों का समर्थन करता है।
टिप्पणियाँ
- Speech + Microphone अनुमतियाँ आवश्यक हैं।
- नेटिव Talk सक्रिय Gateway सत्र का उपयोग करता है और प्रतिक्रिया इवेंट अनुपलब्ध होने पर ही इतिहास पोलिंग पर फ़ॉलबैक करता है।
- Gateway सक्रिय Talk प्रदाता का उपयोग करके
talk.speakके माध्यम से Talk प्लेबैक का समाधान करता है। Android केवल उस RPC के अनुपलब्ध होने पर स्थानीय सिस्टम TTS पर फ़ॉलबैक करता है। - macOS स्थानीय MLX प्लेबैक उपलब्ध होने पर बंडल किए गए
openclaw-mlx-ttsहेल्पर याPATHपर किसी निष्पादन योग्य फ़ाइल का उपयोग करता है। विकास के दौरान किसी कस्टम हेल्पर बाइनरी की ओर इंगित करने के लिएOPENCLAW_MLX_TTS_BINसेट करें। - वॉइस डायरेक्टिव मान सीमाएँ (ElevenLabs):
stability,similarityऔरstyle,0..1स्वीकार करते हैं;speed,0.5..2स्वीकार करता है;latency_tier,0..4स्वीकार करता है।