对话模式

对话模式

适用范围

在以下情况使用本页:

  • 在 macOS/iOS/Android 上实现对话模式
  • 更改语音/TTS/中断行为

对话模式是一个连续的语音对话循环:

  1. 监听语音
  2. 将转录发送到模型(主会话,chat.send)
  3. 等待响应
  4. 通过 ElevenLabs 播放(流式播放)

行为(macOS)

  • 启用对话模式时的常驻覆盖层
  • 监听 → 思考 → 说话阶段转换。
  • 短暂停(静音窗口)时,发送当前转录。
  • 回复写入 WebChat(与键入相同)。
  • 语音中断(默认开启):如果用户在助手说话时开始说话,我们停止播放并记录中断时间戳以供下一个提示使用。

回复中的语音指令

助手可以在回复前加上单行 JSON来控制语音:

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

规则:

  • 仅第一行非空行。
  • 忽略未知键。
  • once: true 仅适用于当前回复。
  • 没有 once,语音将成为对话模式的新默认值。
  • JSON 行在 TTS 播放前被剥离。

支持的键:

  • voice / voice_id / voiceId
  • model / model_id / modelId
  • speedrate(WPM)、stabilitysimilaritystylespeakerBoost
  • seednormalizelangoutput_formatlatency_tier
  • once

配置(~/.clawdbot/clawdbot.json

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

默认值:

  • interruptOnSpeech:true
  • voiceId:回退到 ELEVENLABS_VOICE_ID / SAG_VOICE_ID(或在 API 密钥可用时的第一个 ElevenLabs 语音)
  • modelId:未设置时默认为 eleven_v3
  • apiKey:回退到 ELEVENLABS_API_KEY(或可用的 gateway shell 配置文件)
  • outputFormat:在 macOS/iOS 上默认为 pcm_44100,在 Android 上默认为 pcm_24000(设置 mp3_* 以强制 MP3 流式传输)

macOS UI

  • 菜单栏切换:对话
  • 配置选项卡:对话模式组(语音 ID + 中断切换)
  • 覆盖层:
    • 监听:云随麦克风级别脉动
    • 思考:下沉动画
    • 说话:辐射环
    • 点击云:停止说话
    • 点击 X:退出对话模式

注意事项

  • 需要语音 + 麦克风权限。
  • 使用会话密钥 mainchat.send
  • TTS 使用 ElevenLabs 流式 API,带有 ELEVENLABS_API_KEY,并在 macOS/iOS/Android 上进行增量播放以降低延迟。
  • eleven_v3stability 验证为 0.00.51.0;其他模型接受 0..1
  • 设置 latency_tier 时验证为 0..4
  • Android 支持 pcm_16000pcm_22050pcm_24000pcm_44100 输出格式,用于低延迟 AudioTrack 流式传输。