Talk Mode

Talk mode एक continuous voice conversation loop है:

  1. Speech के लिए listen करें
  2. Transcript को model (main session, chat.send) में भेजें
  3. Response की प्रतीक्षा करें
  4. ElevenLabs (streaming playback) के माध्यम से इसे speak करें

व्यवहार (macOS)

  • Talk mode enabled होने पर Always-on overlay
  • Listening → Thinking → Speaking phase transitions।
  • एक short pause (silence window) पर, वर्तमान transcript भेजा जाता है।
  • Replies WebChat में लिखे जाते हैं (typing के समान)।
  • Interrupt on speech (डिफ़ॉल्ट on): यदि assistant बोल रहा है तो user बोलना शुरू करता है, तो हम playback रोकते हैं और अगले prompt के लिए interruption timestamp note करते हैं।

Replies में voice directives

Assistant अपने reply को voice control करने के लिए single JSON line के साथ prefix कर सकता है:

json
{ "voice": "<voice-id>", "once": true }

नियम:

  • केवल पहली non-empty line।
  • अज्ञात keys को ignore किया जाता है।
  • once: true केवल वर्तमान reply पर apply होता है।
  • once के बिना, voice Talk mode के लिए नया डिफ़ॉल्ट बन जाता है।
  • JSON line को TTS playback से पहले stripped किया जाता है।

समर्थित keys:

  • voice / voice_id / voiceId
  • model / model_id / modelId
  • speed, rate (WPM), stability, similarity, style, speakerBoost
  • seed, normalize, lang, output_format, latency_tier
  • once

Config (~/.mayros/mayros.json)

json5
{
  talk: {
    voiceId: "elevenlabs_voice_id",
    modelId: "eleven_v3",
    outputFormat: "mp3_44100_128",
    apiKey: "elevenlabs_api_key",
    interruptOnSpeech: true,
  },
}

Defaults:

  • interruptOnSpeech: true
  • voiceId: ELEVENLABS_VOICE_ID / SAG_VOICE_ID पर वापस आता है (या पहला ElevenLabs voice जब API key उपलब्ध हो)
  • modelId: unset होने पर eleven_v3 को default करता है
  • apiKey: ELEVENLABS_API_KEY पर वापस आता है (या gateway shell profile यदि उपलब्ध हो)
  • outputFormat: macOS/iOS पर pcm_44100 और Android पर pcm_24000 को default करता है (MP3 streaming force करने के लिए mp3_* सेट करें)

macOS UI

  • Menu bar toggle: Talk
  • Config tab: Talk Mode group (voice id + interrupt toggle)
  • Overlay:
    • Listening: mic level के साथ cloud pulses
    • Thinking: sinking animation
    • Speaking: radiating rings
    • Cloud click करें: speaking stop करें
    • X click करें: Talk mode exit करें

नोट्स

  • Speech + Microphone permissions की आवश्यकता है।
  • Session key main के खिलाफ chat.send का उपयोग करता है।
  • TTS lower latency के लिए macOS/iOS/Android पर ELEVENLABS_API_KEY और incremental playback के साथ ElevenLabs streaming API का उपयोग करता है।