Skip to Content

语音交互

OpenClaw 不只是一个文字聊天助手——它支持完整的语音交互体验,包括语音唤醒、连续语音对话和高质量语音合成。本文将介绍如何配置和使用 OpenClaw 的语音功能。

Voice Wake(唤醒词配置)

Voice Wake 允许你通过语音唤醒词激活 AI,就像对 Siri 说”Hey Siri”或对 Alexa 说”Alexa”一样。

工作原理

环境音频流(持续监听) 本地唤醒词检测引擎 ↓ 检测到唤醒词 开始录音 ↓ 用户说完话 语音转文字(STT) AI 处理并回复 文字转语音(TTS)播放回复

配置唤醒词

# openclaw.yaml voice: wake: # 启用语音唤醒 enabled: true # 唤醒词(支持多个) keywords: - "hey claw" - "ok claw" - "你好助手" # 唤醒灵敏度(0.0-1.0,越高越灵敏但误触率也越高) sensitivity: 0.5 # 唤醒后的录音最大时长(秒) maxRecordingSeconds: 30 # 静音检测(用户停止说话后自动结束录音) silenceDetection: enabled: true # 静音多久后结束(毫秒) thresholdMs: 1500

唤醒反馈

voice: wake: # 唤醒成功后的反馈 feedback: # 播放提示音 sound: "~/.openclaw/sounds/wake.wav" # 或使用 TTS 回复 ttsPrompt: "我在听"

Talk Mode(连续语音对话)

Talk Mode 是更沉浸的语音交互模式——进入后无需每次说唤醒词,持续保持语音对话状态。

进入和退出 Talk Mode

# 通过唤醒词进入 "Hey Claw, 进入对话模式" # 通过命令进入 /talk # 退出 Talk Mode "退出对话模式" "再见" /talk off

Talk Mode 配置

# openclaw.yaml voice: talk: # 启用 Talk Mode enabled: true # 自动退出设置 autoExit: # 静默多久后自动退出(秒) silenceTimeoutSeconds: 120 # 最大连续对话时长(分钟) maxDurationMinutes: 30 # Talk Mode 中的 TTS 设置 tts: # 使用的 TTS 服务 provider: "elevenlabs" # ElevenLabs 语音 ID voiceId: "21m00Tcm4TlvDq8ikWAM" # 语音模型 modelId: "eleven_multilingual_v2" # 语音参数 stability: 0.5 similarityBoost: 0.8 style: 0.0 useSpeakerBoost: true # 语音转文字设置 stt: # STT 提供商 provider: "whisper" # 语言(留空则自动检测) language: "zh" # 模型大小 model: "whisper-1"

Talk Mode 行为定制

voice: talk: # 对话间的停顿处理 pauseHandling: # 短暂停顿视为思考中(不中断) shortPauseMs: 800 # 长停顿视为说完了 longPauseMs: 2000 # 是否允许打断 AI 的回复 interruptible: true # AI 回复前的过渡提示音 transitionSound: "~/.openclaw/sounds/thinking.wav"

ElevenLabs TTS 配置

ElevenLabs 是目前最优秀的 AI 语音合成服务之一,OpenClaw 原生支持与其集成。

基本配置

# openclaw.yaml voice: tts: provider: "elevenlabs" # API Key(推荐使用环境变量) apiKey: "${ELEVENLABS_API_KEY}"
# 设置 API Key export ELEVENLABS_API_KEY="your-elevenlabs-api-key"

语音选择

ElevenLabs 提供了多种预设语音和自定义语音克隆:

voice: tts: provider: "elevenlabs" # 预设语音 ID 示例 # Rachel (女声, 美式英语): 21m00Tcm4TlvDq8ikWAM # Adam (男声, 美式英语): pNInz6obpgDQGcFmaJgB # Bella (女声, 温柔): EXAVITQu4vr4xnSDxMaL # Antoni (男声, 沉稳): ErXwobaYiN019PkySvjV voiceId: "21m00Tcm4TlvDq8ikWAM"

模型选择

voice: tts: # 多语言模型 v2(推荐中文使用) modelId: "eleven_multilingual_v2" # 其他可选模型: # eleven_monolingual_v1 — 英语专用,速度最快 # eleven_multilingual_v1 — 多语言 v1 # eleven_multilingual_v2 — 多语言 v2(质量最好,推荐) # eleven_turbo_v2 — 低延迟模式 # eleven_turbo_v2_5 — 低延迟增强版

语音参数微调

voice: tts: provider: "elevenlabs" voiceId: "21m00Tcm4TlvDq8ikWAM" modelId: "eleven_multilingual_v2" # 稳定性(0.0-1.0) # 低值 = 更有表现力但不稳定 # 高值 = 更稳定但可能单调 stability: 0.5 # 相似度增强(0.0-1.0) # 高值 = 更接近原始语音 similarityBoost: 0.8 # 风格(0.0-1.0, 仅 v2 模型) # 高值 = 更有感情和风格 style: 0.0 # 说话人增强 useSpeakerBoost: true # 输出格式 outputFormat: "mp3_44100_128" # 可选:mp3_44100_64, mp3_44100_128, mp3_44100_192, # pcm_16000, pcm_22050, pcm_24000, pcm_44100

备用 TTS 提供商

如果不使用 ElevenLabs,OpenClaw 也支持其他 TTS 方案:

# macOS 内置 TTS voice: tts: provider: "system" # macOS 系统语音 systemVoice: "Ting-Ting" # 中文语音 # OpenAI TTS voice: tts: provider: "openai" apiKey: "${OPENAI_API_KEY}" voice: "nova" # alloy, echo, fable, onyx, nova, shimmer model: "tts-1" # tts-1 或 tts-1-hd

平台支持

OpenClaw 的语音功能在不同平台上的支持程度不同。

macOS

macOS 是语音功能支持最完善的平台:

# macOS 完整语音配置 voice: wake: enabled: true keywords: ["hey claw"] sensitivity: 0.5 talk: enabled: true tts: provider: "elevenlabs" voiceId: "21m00Tcm4TlvDq8ikWAM" modelId: "eleven_multilingual_v2" stt: provider: "whisper" language: "zh" # macOS 特有设置 macos: # 使用系统麦克风 inputDevice: "default" # 使用系统扬声器 outputDevice: "default" # 菜单栏图标 menuBarIcon: true

支持的功能:

  • Voice Wake(唤醒词检测)
  • Talk Mode(连续对话)
  • 系统通知集成
  • 菜单栏快捷操作
  • 系统音频输入/输出

iOS

iOS 上通过 OpenClaw 移动端 App 支持语音:

voice: # iOS 设置 ios: # Siri 快捷指令集成 siriShortcuts: true # 后台语音检测 backgroundListening: false # iOS 限制,仅前台可用 # 触觉反馈 hapticFeedback: true

iOS 支持的功能:

  • Talk Mode(App 内)
  • Siri 快捷指令触发
  • 语音消息发送
  • 推送通知语音播报

Android

Android 上通过配套 App 支持:

voice: # Android 设置 android: # 使用 Android 语音服务 useSystemStt: false # false = 使用 Whisper # 通知渠道语音播报 notificationTts: true # 后台监听(需要权限) backgroundListening: true

Android 支持的功能:

  • Talk Mode(App 内和后台)
  • 通知语音播报
  • 语音消息识别
  • Widget 快捷操作

完整配置示例

个人语音助手配置

# openclaw.yaml — 完整语音交互配置 voice: # 语音唤醒 wake: enabled: true keywords: - "hey claw" - "你好助手" sensitivity: 0.5 maxRecordingSeconds: 30 silenceDetection: enabled: true thresholdMs: 1500 feedback: ttsPrompt: "我在" # Talk Mode talk: enabled: true autoExit: silenceTimeoutSeconds: 120 maxDurationMinutes: 30 interruptible: true # TTS 配置 tts: provider: "elevenlabs" voiceId: "21m00Tcm4TlvDq8ikWAM" modelId: "eleven_multilingual_v2" stability: 0.5 similarityBoost: 0.8 style: 0.0 useSpeakerBoost: true outputFormat: "mp3_44100_128" # STT 配置 stt: provider: "whisper" language: "zh" model: "whisper-1"

仅 TTS 输出配置(不需要语音输入)

# 只使用语音输出,不监听语音输入 voice: wake: enabled: false talk: enabled: false tts: provider: "elevenlabs" voiceId: "21m00Tcm4TlvDq8ikWAM" modelId: "eleven_multilingual_v2" # 在这些通道中自动使用 TTS autoChannels: - "telegram" # Telegram 语音消息 - "discord" # Discord 语音频道

调试语音功能

如果语音功能不正常,可以使用以下方法排查:

# 测试 TTS 是否正常工作 openclaw voice test-tts "你好,这是一条测试消息" # 测试 STT 是否正常工作 openclaw voice test-stt # 录制一段音频并转文字 # 测试唤醒词检测 openclaw voice test-wake # 进入唤醒词测试模式 # 查看音频设备列表 openclaw voice devices # 查看语音相关日志 openclaw logs | grep -i voice

常见问题

  1. 唤醒词不响应:检查麦克风权限,降低 sensitivity
  2. TTS 无声音:确认 ELEVENLABS_API_KEY 是否正确,检查输出设备
  3. STT 识别不准确:明确指定 language: "zh" 而非自动检测
  4. 延迟过高:尝试使用 eleven_turbo_v2_5 模型,或切换到本地 TTS

语音交互让 AI 助手从屏幕走进了真实生活。配合 Voice Wake 和 Talk Mode,你可以在做饭、开车或运动时与 AI 自然对话,体验真正的智能助手。


💬 有问题或建议? 欢迎在下方评论区留言讨论。


Last updated on