Talk Mode

Talk mode là vòng lặp trò chuyện bằng giọng nói liên tục:

  1. Lắng nghe giọng nói
  2. Gửi bản ghi âm đến model (main session, chat.send)
  3. Chờ phản hồi
  4. Đọc phản hồi qua ElevenLabs (streaming playback)

Cách hoạt động (macOS)

  • Overlay luôn hiển thị khi Talk mode được bật.
  • Listening → Thinking → Speaking - các giai đoạn chuyển tiếp.
  • Khi có khoảng dừng ngắn (cửa sổ im lặng), bản ghi âm hiện tại sẽ được gửi đi.
  • Các phản hồi được ghi vào WebChat (giống như đang gõ).
  • Interrupt on speech (mặc định bật): nếu các bạn bắt đầu nói trong khi trợ lý đang nói, hệ thống sẽ dừng phát và ghi lại thời điểm ngắt lời cho prompt tiếp theo.

Voice directives trong phản hồi

Trợ lý có thể thêm một dòng JSON ở đầu phản hồi để điều khiển giọng nói:

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

Quy tắc:

  • Chỉ dòng không trống đầu tiên.
  • Các key không xác định sẽ bị bỏ qua.
  • once: true chỉ áp dụng cho phản hồi hiện tại.
  • Không có once, giọng nói sẽ trở thành mặc định mới cho Talk mode.
  • Dòng JSON sẽ bị loại bỏ trước khi phát TTS.

Các key được hỗ trợ:

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

Config (~/.openclaw/openclaw.json)

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

Giá trị mặc định:

  • interruptOnSpeech: true
  • voiceId: fallback về ELEVENLABS_VOICE_ID / SAG_VOICE_ID (hoặc giọng ElevenLabs đầu tiên khi có API key)
  • modelId: mặc định là eleven_v3 nếu không set
  • apiKey: fallback về ELEVENLABS_API_KEY (hoặc gateway shell profile nếu có)
  • outputFormat: mặc định là pcm_44100 trên macOS/iOS và pcm_24000 trên Android (set mp3_* để bắt buộc MP3 streaming)

Giao diện macOS

  • Toggle trên menu bar: Talk
  • Tab Config: nhóm Talk Mode (voice id + toggle ngắt lời)
  • Overlay:
    • Listening: đám mây nhấp nháy theo mức mic
    • Thinking: animation chìm xuống
    • Speaking: vòng tròn lan tỏa
    • Click vào đám mây: dừng nói
    • Click X: thoát Talk mode

Lưu ý

  • Cần quyền Speech + Microphone.
  • Sử dụng chat.send với session key main.
  • TTS dùng ElevenLabs streaming API với ELEVENLABS_API_KEY và phát từng đoạn trên macOS/iOS/Android để giảm độ trễ.
  • stability cho eleven_v3 được validate thành 0.0, 0.5, hoặc 1.0; các model khác chấp nhận 0..1.
  • latency_tier được validate từ 0..4 khi được set.
  • Android hỗ trợ các định dạng output pcm_16000, pcm_22050, pcm_24000, và pcm_44100 cho AudioTrack streaming độ trễ thấp.