闲社服务运行正常AI智能体自动化平台
e

ElevenLabs工具集

技能标识:elevenlabs-toolkit

ElevenLabs voice API integration — TTS, sound effects, music generation, speech-to-text, voice isolation, and streaming. Use when building voice-enabled apps, generating narration, creating audio content, or transcribing speech. Requires ELEVENLABS_API_KEY.

作者:admin | 来源记录:ClawHub
登记来源
ClawHub
版本
V 1.0.2
检测标记
后台标记通过
免费
免费获取
0
收藏
来源与检测标记为平台登记信息,并不代表已展示可复核的检测报告。使用前请核对版本、依赖和所需权限,建议先在隔离环境中运行。
概述
安装方式
版本历史

ElevenLabs工具集

ElevenLabs 工具包

通过 FastAPI 端点或独立 Python 函数,以编程方式访问所有 7 项 ElevenLabs API 功能。



何时使用 / 何时不使用

使用 ElevenLabs 的场景:

  • - 为视频、演示或内容生成高质量旁白音频(尤其是使用 Rachel 或一致的语音角色)
  • 构建需要实时流式语音的语音应用
  • 转录音频文件(语音转文字/听写)
  • 根据文本描述生成环境音效或背景音乐
  • 从嘈杂录音中分离纯净人声

不使用 ElevenLabs 的场景:

  • - 需要快速/廉价且对质量无要求的文本转语音——改用本地文本转语音(见下文)
  • 处于离线状态或无法获取 API 密钥
  • 生成大量测试音频且不想消耗字符配额

ElevenLabs 与本地文本转语音(kokoro / chatterbox)对比

标准ElevenLabs本地文本转语音(kokoro/chatterbox)
语音质量★★★★★ — 自然、富有表现力★★★ — 不错但带有机械感
成本
从月度配额中扣除字符 | 免费、无限制 | | 延迟 | ~300–800ms API 往返时间 | ~50–200ms 本地推理 | | 语音一致性 | 命名语音(Rachel 等)持久可用 | 取决于模型 | | 离线使用 | ❌ 需要网络 + API 密钥 | ✅ 完全本地化 | | 最佳用途 | 最终旁白、已发布内容 | 草稿、测试、大批量处理 |

经验法则: 任何用户会看到/听到的内容使用 ElevenLabs。草稿、测试和批量处理使用本地文本转语音。



功能


工具端点功能说明
语音GET /api/voices浏览可用语音及其元数据
文本转语音
POST /api/voice/tts | 批量文本转语音(任意语音、任意语言) |
| 文本转语音流 | WS /api/voice/stream | 实时 WebSocket 文本转语音流 |
| 音效 | POST /api/voice/sfx | 根据文本提示生成环境音频 |
| 音乐 | POST /api/voice/music | 根据描述生成背景音乐 |
| 语音转文字(听写) | POST /api/voice/stt | 转录音频并检测语言 |
| 语音分离 | POST /api/voice/isolate | 从嘈杂音频中提取纯净人声 |


已知语音 ID

以下是在 OpenClaw 工作流中确认使用的语音。优先使用这些而非浏览完整列表:

语音语音 ID最佳用途
Rachel21m00Tcm4TlvDq8ikWAM默认旁白 — 清晰、温暖、美式英语
Adam
pNInz6obpgDQGcFmaJgB | 男性旁白、权威语气 |
| Domi | AZnzlk1XvdvUeBnXmlld | 充满活力、对话式 |
| Bella | EXAVITQu4vr4xnSDxMaL | 柔和、温柔旁白 |

所有旁白任务的默认设置: 除非明确指定,否则使用 Rachel(21m00Tcm4TlvDq8ikWAM)。

要从 API 获取当前完整列表:
bash
curl -s -H xi-api-key: $ELEVENLABSAPIKEY https://api.elevenlabs.io/v1/voices | python3 -m json.tool



快速开始

python
import httpx

BASE = http://localhost:8000 # 你的 FastAPI 应用
KEY = os.environ[ELEVENLABSAPIKEY]

获取语音

voices = httpx.get(f{BASE}/api/voices).json()

生成语音

audio = httpx.post(f{BASE}/api/voice/tts, json={ text: 你好世界, voiceid: voices[0][voiceid], modelid: elevenmultilingual_v2 }).content # 返回原始音频字节

生成音效

sfx = httpx.post(f{BASE}/api/voice/sfx, json={ prompt: 夜晚安静海滩上的海浪声 }).content

音频输出格式

文本转语音和音效端点返回原始音频字节(非 base64,非 JSON)。

python

正确:.content 返回字节


audio_bytes = response.content # 类型:bytes

保存到文件

with open(output.mp3, wb) as f: f.write(audio_bytes)

文件格式默认为 MP3

文件大小估算:标准质量下每分钟语音约 1 MB

每个端点返回的内容:

端点响应类型处理方式
POST /api/voice/ttsbytes (MP3)直接写入 .mp3 文件
POST /api/voice/sfx
bytes (MP3) | 直接写入 .mp3 文件 |
| POST /api/voice/music | bytes (MP3) | 直接写入 .mp3 文件 |
| POST /api/voice/stt | JSON | {text: 转录内容..., language: en} |
| POST /api/voice/isolate | bytes (MP3) | 直接写入 .mp3 文件 |
| GET /api/voices | JSON | {voice_id, name, labels, ...} 列表 |


语音选择指南

  • - 仅英语: 使用 eleventurbov25 — 更快,无口音干扰
  • 多语言: 使用 elevenmultilingual_v2 — 支持 29 种语言
  • 口音警告: 多语言模型可能导致口音在不同语言间混淆。如果英语语音听起来像日语,请切换为 turbo。

配额管理

ElevenLabs 按字符数对文本转语音收费。关键模式:

  • - 积极缓存 — 相同文本 + 语音 = 相同音频
  • 在调用文本转语音前使用 prompt-cache 技能进行 SHA-256 去重
  • 一个 6 场景的儿童故事 ≈ 2,000 字符
  • 免费套餐:每月 10k 字符。入门套餐:30k。创作者套餐:100k。



集成

将 scripts/elevenlabs_api.py 复制到你的 FastAPI 应用中并挂载路由器:

python
from elevenlabs_api import router
app.include_router(router)

在环境中设置 ELEVENLABSAPIKEY。所有端点都能优雅地处理错误并返回适当的 HTTP 状态码。



如果 FastAPI 服务器未运行怎么办?

快速开始示例假设 http://localhost:8000 正在运行。如果未运行:

python

在调用前检查服务器是否启动


import httpx

try:
httpx.get(http://localhost:8000/health, timeout=2.0)
except httpx.ConnectError:
# 服务器未运行 — 先启动它
import subprocess
subprocess.Popen([uvicorn, elevenlabs_api:app, --port, 8000])
import time; time.sleep(2) # 给它一点时间绑定

或者直接调用 ElevenLabs API 而不使用 FastAPI 包装器 — scripts/elevenlabs_api.py 中的函数可以独立导入:

python
from elevenlabsapi import generatetts # 如果模块暴露了独立函数



错误处理:API 密钥和速率限制

缺少 API 密钥:

httpx.HTTPStatusError: 401 Unauthorized
{detail: {status: unauthorized, message: Invalid API key}}

→ 检查 ELEVENLABSAPIKEY 是否已设置:echo $ELEVENLABSAPIKEY
→ 从 1Password 获取:op read op://OpenClaw/ElevenLabs API Credentials/credential

速率限制(429):
json
{detail: {status: toomanyrequests, message: Too many requests}}

→ 等待并使用指数退避重试。免费/入门套餐的 ElevenLabs 速率限制按分钟计算。
→ 创作者及以上套餐的限制更高 — 在 ElevenLabs 控制面板中查看你的套餐。

配额耗尽:
json
{detail: {status: quota_exceeded, message: Quota exceeded}}

→ 当月字符配额已用完。等待月度重置或升级套餐。
→ 检查当前使用情况:curl

标签

skill ai

通过对话安装

以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 elevenlabs-toolkit-1776284967 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 elevenlabs-toolkit-1776284967 技能

通过命令行安装

skillhub install elevenlabs-toolkit-1776284967

下载

⬇ 下载 elevenlabs-toolkit v1.0.2(免费)

文件大小: 7.28 KB | 发布时间: 2026-4-16 16:36

v1.0.2 最新 2026-4-16 16:36
Add security_notes explaining base64 audio encoding, UploadFile type, and system prompt config context
返回顶部