名称: clawvox
描述: ClawVox - 基于 ElevenLabs 的 OpenClaw 语音工作室。生成语音、转录音频、克隆声音、创建音效等。
主页: https://elevenlabs.io/developers
元数据:
{
"openclaw": {
"emoji": "🎙️",
"skillKey": "clawvox",
"requires": {
"bins": ["curl", "jq"],
"env": ["ELEVENLABS_API_KEY"]
},
"primaryEnv": "ELEVENLABS_API_KEY"
}
}
借助 ClawVox(由 ElevenLabs 驱动),将您的 OpenClaw 助手转变为专业的语音制作工作室。
| 操作 | 命令 | 描述 |
|---|---|---|
| 语音合成 | {baseDir}/scripts/speak.sh '文本' |
将文本转换为语音 |
| 语音转写 | {baseDir}/scripts/transcribe.sh 音频.mp3 |
语音转文本 |
| 声音克隆 | {baseDir}/scripts/clone.sh --name "声音名" 样本.mp3 |
克隆一个声音 |
| 音效生成 | {baseDir}/scripts/sfx.sh "雷暴" |
生成音效 |
| 声音管理 | {baseDir}/scripts/voices.sh list |
列出可用声音 |
| 音频翻译 | {baseDir}/scripts/dub.sh --target es 音频.mp3 |
翻译音频 |
| 人声分离 | {baseDir}/scripts/isolate.sh 音频.mp3 |
去除背景噪音 |
~/.openclaw/openclaw.json 中配置:{
skills: {
entries: {
"clawvox": {
apiKey: "YOUR_ELEVENLABS_API_KEY",
config: {
defaultVoice: "Rachel",
defaultModel: "eleven_turbo_v2_5",
outputDir: "~/.openclaw/audio"
}
}
}
}
}
或者设置环境变量:
export ELEVENLABS_API_KEY="your_api_key_here"
# 使用默认声音 (Rachel) 快速合成
{baseDir}/scripts/speak.sh '你好,我是你的个人 AI 助手。'
# 指定声音名称
{baseDir}/scripts/speak.sh --voice Adam '来自 Adam 的问候'
# 保存到文件
{baseDir}/scripts/speak.sh --out ~/audio/greeting.mp3 '欢迎来到节目'
# 使用特定模型
{baseDir}/scripts/speak.sh --model eleven_multilingual_v2 '你好'
# 调整语音设置
{baseDir}/scripts/speak.sh --stability 0.5 --similarity 0.8 '富有表现力的语音'
# 调整语速
{baseDir}/scripts/speak.sh --speed 1.2 '更快的语音'
# 使用多语言模型处理其他语言
{baseDir}/scripts/speak.sh --model eleven_multilingual_v2 --voice Rachel 'Hola, que tal'
{baseDir}/scripts/speak.sh --model eleven_multilingual_v2 --voice Adam 'Guten Tag'
| 模型 | 延迟 | 支持语言 | 最佳用途 |
|---|---|---|---|
eleven_flash_v2_5 |
~75ms | 32 | 实时、流式传输 |
eleven_turbo_v2_5 |
~250ms | 32 | 质量与速度的平衡 |
eleven_multilingual_v2 |
~500ms | 29 | 长篇内容、最高质量 |
预制声音:Rachel, Adam, Antoni, Bella, Domi, Elli, Josh, Sam, Callum, Charlie, George, Liam, Matilda, Alice, Bill, Brian, Chris, Daniel, Eric, Jessica, Laura, Lily, River, Roger, Sarah, Will
# 从文本文件生成音频
{baseDir}/scripts/speak.sh --input chapter.txt --voice "George" --out audiobook.mp3
# 转写音频文件
{baseDir}/scripts/transcribe.sh recording.mp3
# 保存到文件
{baseDir}/scripts/transcribe.sh --out transcript.txt audio.mp3
# 指定语言提示进行转写
{baseDir}/scripts/transcribe.sh --language es spanish_audio.mp3
# 包含时间戳
{baseDir}/scripts/transcribe.sh --timestamps podcast.mp3
# 从单个样本克隆(建议至少 30 秒)
{baseDir}/scripts/clone.sh --name MyVoice recording.mp3
# 附带描述克隆
{baseDir}/scripts/clone.sh --name BusinessVoice \
--description '专业男声' \
sample.mp3
# 附带标签克隆
{baseDir}/scripts/clone.sh --name MyVoice \
--labels '{"gender":"male","age":"adult"}' \
sample.mp3
# 克隆时去除背景噪音
{baseDir}/scripts/clone.sh --name CleanVoice \
--remove-bg-noise \
sample.mp3
# 测试克隆的声音
{baseDir}/scripts/speak.sh --voice MyVoice '测试我的克隆声音'
# 列出所有可用声音
{baseDir}/scripts/voices.sh list
# 获取声音详情
{baseDir}/scripts/voices.sh info --name Rachel
{baseDir}/scripts/voices.sh info --id 21m00Tcm4TlvDq8ikWAM
# 搜索声音(使用 grep 过滤输出)
{baseDir}/scripts/voices.sh list | grep -i "female"
# 按类别过滤
{baseDir}/scripts/voices.sh list --category premade
{baseDir}/scripts/voices.sh list --category cloned
# 下载声音预览
{baseDir}/scripts/voices.sh preview --name Rachel -o preview.mp3
# 删除自定义声音
{baseDir}/scripts/voices.sh delete --id "voice_id"
# 生成音效
{baseDir}/scripts/sfx.sh '大雨落在铁皮屋顶上'
# 指定时长
{baseDir}/scripts/sfx.sh --duration 5 '森林环境音与鸟鸣'
# 指定提示词影响力(值越高越精确)
{baseDir}/scripts/sfx.sh --influence 0.8 '科幻激光枪开火'
# 保存到文件
{baseDir}/scripts/sfx.sh --out effects/thunder.mp3 '滚滚雷声'
注意: 时长范围为 0.5 到 22 秒(四舍五入到最近的 0.5 秒)。
# 去除背景噪音并分离人声
{baseDir}/scripts/isolate.sh noisy_recording.mp3
# 保存到指定文件
{baseDir}/scripts/isolate.sh --out clean_voice.mp3 meeting_recording.mp3
# 不标记音频事件
{baseDir}/scripts/isolate.sh --no-audio-events recording.mp3
要求:
- 最短时长:4.6 秒
- 支持格式:MP3, WAV, M4A, OGG, FLAC
# 将音频翻译为西班牙语
{baseDir}/scripts/dub.sh --target es audio.mp3
# 指定源语言进行翻译
{baseDir}/scripts/dub.sh --source en --target ja video.mp4
# 检查配音状态
{baseDir}/scripts/dub.sh --status --id "dubbing_id"
# 下载配音后的音频
{baseDir}/scripts/dub.sh --download --id "dubbing_id" --out dubbed.mp3
支持的语言: en, es, fr, de, it, pt, pl, hi, ar, zh, ja, ko, nl, ru, tr, vi, sv, da, fi, cs, el, he, id, ms, no, ro, uk, hu, th
所有脚本底层均使用 curl 直接访问 API:
# 直接调用 TTS API
curl -X POST "https://api.elevenlabs.io/v1/text-to-speech/VOICE_ID" \
-H "xi-api-key: $ELEVENLABS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text": "Hello world", "model_id": "eleven_turbo_v2_5"}' \
--output speech.mp3
所有脚本都提供有用的错误信息:
运行测试套件以验证一切正常:
{baseDir}/test.sh YOUR_API_KEY
或者使用环境变量:
export ELEVENLABS_API_KEY="your_key"
{baseDir}/test.sh
"exec host not allowed (requested gateway)"
tools.exec.host: "sandbox"。引号或感叹号导致的解析错误
'Hello world' 而不是 "Hello world!"。!)。--input 选项配合文件。"ELEVENLABS_API_KEY not set"
ELEVENLABS_API_KEY 已设置或在 openclaw.json 中配置。"jq is required but not installed"
apt-get install jq (Linux) 或 brew install jq (macOS)。"Rate limited"
"Voice not found"
{baseDir}/scripts/voices.sh list 查看可用声音。"Dubbing failed"
"File too large"
# 启用详细输出
DEBUG=1 {baseDir}/scripts/speak.sh 'test'
# 显示 API 请求详情
DEBUG=1 {baseDir}/scripts/transcribe.sh audio.mp3
ElevenLabs API 定价(近似值):
- Flash v2.5:约 $0.06/分钟
- Turbo v2.5:约 $0.06/分钟
- Multilingual v2:约 $0.12/分钟
- 声音克隆:包含在计划中
- 音效生成:约 $0.02/次
- 语音转写:约 $0.02/分钟 (Scribe v1)
免费套餐:约 10,000 字符/月