Install
openclaw skills install @kikidouloveme79/senseaudio-let-claw-talk当用户希望把 AudioClaw 变成一个持续监听、开口就说、停顿就回答的本机语音助手时使用。这个 skill 会在 macOS 上启动常驻监听流程,默认优先使用内置 Swift 录音器减少 Python 音频依赖;用户语音通过 SenseAudio ASR 转文字,再发给 audioclaw agent,并用 SenseAudio TTS 或系统 say 读回结果。它保留可选的 WeSpeaker 后台服务和流式 TTS,但导出的默认配置不会依赖这些可选环境。适合免手打问答、桌面语音助理、连续语音控制和原型演示。
openclaw skills install @kikidouloveme79/senseaudio-let-claw-talk当用户想要下面这些能力时,使用这个 skill:
高优先级触发说法:
$senseaudio-let-claw-talk 启动语音助手不适合:
这个 skill 默认:
sounddevicewebrtcvadnumpyaudioclaw agent 跑对话say 直接播报miniaudio 和流式链路调优的依赖贾维斯贾维斯休息90 秒sense-asr-deepthink--wake-asr-model sense-asr-lite1.25interrupt grace = 1.2sinterrupt min speech = 0.35sinterrupt threshold = -16dBsilence seconds = 1.6s~/.audioclaw/workspace/state/voiceclaw_preferences.json 读取已记住的用户偏好chinese0.72~/.audioclaw/workspace/state/wespeaker~/.audioclaw/workspace/tools/wespeaker/.venvreferences/wespeaker_user_setup.md默认最推荐直接用启动器,它会优先选择已经装好依赖的那套 Python,并带上更少依赖的默认参数:
bash "{baseDir}/scripts/start_senseaudio_let_claw_talk.sh"
如果要手动指定 Python,再用 SenseAudio TTS:
/Library/Developer/CommandLineTools/usr/bin/python3 "{baseDir}/scripts/run_continuous_voice_assistant.py" \
--tts-mode senseaudio \
--capture-backend swift \
--no-senseaudio-streaming-tts \
--voice-id male_0004_a \
--emotion calm \
--tts-speed 1.25
如果只想快速试运行,也可以先用系统播报:
/Library/Developer/CommandLineTools/usr/bin/python3 "{baseDir}/scripts/run_continuous_voice_assistant.py" \
--tts-mode say
默认启动后,先说:
贾维斯
再继续提问。
如果想让它立刻回到休眠,可以说:
贾维斯休息
如果想让它记住你的偏好,可以直接说:
记住不要打断我
记住语速 1.1
记住多等一下再截断
记住以后更简短一点
记住以后展开一点
记住当前偏好
清除偏好
如果想查看当前状态,可以直接说:
当前设置
如果想开启或使用 WeSpeaker,可直接说:
开启 WeSpeaker 声纹验证
录入我的声音
重录我的声音
查看 WeSpeaker 状态
关闭 WeSpeaker 声纹验证
关闭只听我模式
启动后台声纹
停止后台声纹
说明:
录入我的声音 后,现在默认只录 1 句来建档如果想换音色,也可以直接说:
列出音色
有哪些音色
换成温柔御姐
切换到 male_0018_a
记住默认音色是 温柔御姐
以后都用 male_0004_a
注册克隆音色 vc-123456 叫 我的声音
如果某个音色当前无权限或暂时不可用,skill 会优先保留当前可用音色,或者自动切到一个能正常播报的兜底音色。
一键启动:
bash "{baseDir}/scripts/start_senseaudio_let_claw_talk.sh"
如果要让 AudioClaw / OpenClaw 直接拉起这个长期语音模式,优先运行:
bash "{baseDir}/scripts/launch_senseaudio_let_claw_talk_via_terminal.sh"
原因:
exec + nohup + & 在工具调用后台硬挂如果用户是在 AudioClaw / OpenClaw 里直接说:
不要只返回命令,也不要改用 nohup 后台启动。
也不要只回复“好,已进入。你直接说。”这类假状态切换。
优先直接执行:
bash "{baseDir}/scripts/launch_senseaudio_let_claw_talk_via_terminal.sh"
如果用户还补了偏好,再把参数附上,例如:
--wake-phrase "贾维斯"--interrupt-playback--debug这两个入口默认等价于:
--tts-mode senseaudio--capture-backend swift--voice-id male_0004_a--emotion calm--tts-speed 1.25--no-senseaudio-streaming-tts--speaker-verification-backend none如果需要改默认值,可以在启动前设置:
export VOICECLAW_TTS_MODE=say
export VOICECLAW_VOICE_ID=male_0018_a
export VOICECLAW_EMOTION=warm
export VOICECLAW_TTS_SPEED=1.25
export VOICECLAW_SENSEAUDIO_STREAMING_TTS=0
export VOICECLAW_SENSEAUDIO_STREAMING_BACKEND=auto
export VOICECLAW_WAKE_PHRASE=贾维斯
export VOICECLAW_SLEEP_PHRASE=贾维斯休息
export VOICECLAW_SPEAKER_BACKEND=none
export VOICECLAW_WESPEAKER_THRESHOLD=0.72
export VOICECLAW_WESPEAKER_PYTHON=$HOME/.audioclaw/workspace/tools/wespeaker/.venv/bin/python
export VOICECLAW_EXTRA_ARGS='--wake-phrase 贾维斯 --sleep-phrase 贾维斯休息 --interrupt-playback'
如果想把流式模式升级成 miniaudio 的 MP3 解码播放,可选安装:
/Library/Developer/CommandLineTools/usr/bin/python3 -m pip install --user miniaudio
然后保持:
export VOICECLAW_SENSEAUDIO_STREAMING_BACKEND=auto
如果想强制只用这条后端,也可以显式传:
python3 "{baseDir}/scripts/run_continuous_voice_assistant.py" \
--tts-mode senseaudio \
--senseaudio-streaming-tts \
--senseaudio-streaming-backend miniaudio
如果要启用唤醒词:
python3 "{baseDir}/scripts/run_continuous_voice_assistant.py" \
--tts-mode senseaudio \
--wake-phrase "贾维斯" \
--sleep-phrase "贾维斯休息" \
--wake-sticky-seconds 90
如果要默认开启 WeSpeaker 声纹验证:
python3 "{baseDir}/scripts/run_continuous_voice_assistant.py" \
--tts-mode senseaudio \
--speaker-verification-backend wespeaker \
--wespeaker-python "$HOME/.audioclaw/workspace/tools/wespeaker/.venv/bin/python" \
--wespeaker-threshold 0.8
如果用户环境还没装好,先按这个文件准备:
{baseDir}/references/wespeaker_user_setup.md
如果要关闭默认唤醒词:
python3 "{baseDir}/scripts/run_continuous_voice_assistant.py" \
--tts-mode senseaudio \
--no-wake-phrase
如果要关闭默认睡眠词:
python3 "{baseDir}/scripts/run_continuous_voice_assistant.py" \
--tts-mode senseaudio \
--no-sleep-phrase
如果要启用播报打断:
python3 "{baseDir}/scripts/run_continuous_voice_assistant.py" \
--tts-mode senseaudio \
--interrupt-playback
如果想临时关闭默认打断:
python3 "{baseDir}/scripts/run_continuous_voice_assistant.py" \
--tts-mode senseaudio \
--no-interrupt-playback
如果用户说“容易误触发”或“环境噪音太大”,优先调这些参数:
--speech-threshold-db -18--silence-seconds 1.6--vad-mode 3如果用户想只测一轮,可以加:
--once
如果用户想用现成音频文件做链路验证,可以加:
--input-file /absolute/path/to/file.m4a --once
如果用户说“想先叫一声再开始对话”,优先加:
--wake-phrase "贾维斯"
如果用户明确说“不需要唤醒词”或“直接开口就听”,优先加:
--no-wake-phrase
如果用户说“播报时我还想插话”,优先加:
--interrupt-playback
持续模式里:
贾维斯休息”会主动进入休眠,但不会退出程序Ctrl+C 退出~/.audioclaw/workspace/state/senseaudio_credentials.json 里的 SENSEAUDIO_API_KEY~/.audioclaw/workspace/state/voiceclaw_preferences.json~/.audioclaw/workspace/state/voiceclaw_runtime_state.jsonrun_continuous_voice_assistant.py 现在自带当前 skill 内部的 SenseAudio ASR、SenseAudio TTS 和常用音色目录,不再依赖其他语音 skill--interrupt-playback,先把阈值和唤醒词调顺--no-interrupt-playback,或调大 --interrupt-grace-secondsscripts/run_continuous_voice_assistant.py
scripts/local_senseaudio_asr.py
scripts/local_senseaudio_tts.py
scripts/local_voice_catalog.py
scripts/start_senseaudio_let_claw_talk.sh
scripts/launch_senseaudio_let_claw_talk_via_terminal.sh
scripts/macos_mic_capture.swift