📦 elevenlabs-tts — ElevenLabs语音合成

v0.1.0

使用ElevenLabs API将文本转换为高质量语音音频,支持多种音色选择和语音设置。

0· 20·0 当前·0 累计
lnj22 头像by @lnj22·MIT-0
下载技能包
License
MIT-0
最后更新
2026/4/15
0
安全扫描
VirusTotal
无害
查看报告
OpenClaw
可疑
medium confidence
该技能的行为(使用API密钥调用ElevenLabs)与其描述相符,但运行时文档期望一个敏感的环境变量(ELEVENLABS_API_KEY),而注册表元数据未声明任何所需凭据——这一不一致之处在安装前值得确认。
评估建议
该技能可能是其声称的ElevenLabs TTS助手,但它存在一个实际的不一致之处:运行时说明期望一个ELEVENLABS_API_KEY环境变量,而注册表元数据未声明任何所需凭据。在安装或启用该技能之前,请确认:(1)您将提供ELEVENLABS_API_KEY且仅用于调用api.elevenlabs.io,(2)您接受将该密钥作为环境变量存储在agent运行时中,(3)该技能不会请求其他无关的密钥。另请注意运行时可能需要的依赖项(Python requests库,以及ffmpeg或pydub用于合并)。如果注册表元数据被修正为声明ELEVENLABS_API_KEY为所需凭据,且未出现其他意外权限,这可能是无害的;就目前而言,请谨慎对待。...
详细分析 ▾
用途与能力
名称/描述与SKILL.md一致:说明展示了如何调用ElevenLabs文本转语音端点,包含示例语音ID,并提供了一个可工作的Python示例。说明中没有任何尝试与TTS无关的功能。
指令范围
说明范围狭窄,仅限于调用https://api.elevenlabs.io、拆分长文本和使用ffmpeg/pydub合并音频。说明中提到写入输出文件和使用ELEVENLABS_API_KEY环境变量。它们不会指示读取无关的系统文件或将数据泄露到意外的端点。
安装机制
这是一个纯指令技能,没有安装规范和代码文件——安装风险极低,因为技能本身不会下载或写入任何内容。
凭证需求
SKILL.md明确要求ELEVENLABS_API_KEY(敏感凭据)用于API调用,但注册表元数据未列出所需的环境变量或主要凭据。这种不匹配值得关注:该密钥对于TTS技能是合适的,但技能应该声明它。验证密钥的提供方式/位置,并确认该技能不会请求无关的密钥。
持久化与权限
该技能不请求always:true,不修改系统或其他技能,没有安装时的持久性。允许默认自主调用,但不与其他高风险标志组合使用。
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv0.1.02026/4/15

从所有任务技能去重批量发布

无害

安装命令

点击复制
官方npx clawhub@latest install pg-essay-to-audiobook-elevenlabs-tts
镜像加速npx clawhub@latest install pg-essay-to-audiobook-elevenlabs-tts --registry https://cn.longxiaskill.com

技能文档

使用ElevenLabs API从文本生成高质量语音音频。

认证

API密钥可通过环境变量获取:

ELEVENLABS_API_KEY

包含在请求头中:

xi-api-key: $ELEVENLABS_API_KEY

API端点

文本转语音

POST https://api.elevenlabs.io/v1/text-to-speech/{voice_id}

请求体:

{
  "text": "Your text here",
  "model_id": "eleven_turbo_v2_5",
  "voice_settings": {
    "stability": 0.5,
    "similarity_boost": 0.5
  }
}

响应: 音频字节(默认MP3格式)

常用语音ID

  • 21m00Tcm4TlvDq8ikWAM - Rachel(女声,平静)
  • EXAVITQu4vr4xnSDxMaL - Bella(女声,柔和)
  • ErXwobaYiN019PkySvjV - Antoni(男声,温暖)
  • TxGEqnHWrfWFTfGW9XjX - Josh(男声,深沉)

Python示例

import os
import requests

ELEVENLABS_API_KEY = os.environ.get("ELEVENLABS_API_KEY") VOICE_ID = "21m00Tcm4TlvDq8ikWAM" # Rachel

def text_to_speech(text, output_path): url = f"https://api.elevenlabs.io/v1/text-to-speech/{VOICE_ID}" headers = { "xi-api-key": ELEVENLABS_API_KEY, "Content-Type": "application/json" } data = { "text": text, "model_id": "eleven_turbo_v2_5", "voice_settings": { "stability": 0.5, "similarity_boost": 0.75 } } response = requests.post(url, json=data, headers=headers) if response.status_code == 200: with open(output_path, "wb") as f: f.write(response.content) return True else: print(f"Error: {response.status_code} - {response.text}") return False

处理长文本

ElevenLabs每个请求有约5000字符的限制。对于长文档:

  • 在句子边界处将文本拆分成块
  • 为每个块生成音频
  • 使用ffmpeg或pydub合并:
# 创建文件列表
echo "file 'chunk1.mp3'" > files.txt
echo "file 'chunk2.mp3'" >> files.txt

# 合并 ffmpeg -f concat -safe 0 -i files.txt -c copy output.mp3

最佳实践

  • 在句子边界处拆分以避免切断单词
  • 检查速率限制(因订阅等级而异)
  • 缓存生成的音频以避免冗余的API调用
数据来源ClawHub ↗ · 中文优化:龙虾技能库