关于 elevenlabs
elevenlabs 是连接 ElevenLabs AI 音频 API 的非官方技能,面向音频创作者和 Agent。它涵盖语音与音效生成、音频处理和转录,以及语音、历史记录和账户管理。
主要功能
- 01生成语音、对话和音效
- 02转换音色并去除音频噪声
- 03转录 URL 中的音频或视频
- 04设计并管理账户语音
- 05查看生成历史和额度
适用场景
- 01制作旁白或多人对话
- 02根据描述生成音效
- 03转录录音或去除背景噪声
- 04检查可用语音和剩余额度
MCP 相关
MCP 客户端可通过本地注册的 MCP 服务使用此连接器。其脚本向 ElevenLabs 音频生成、处理、转录、语音、历史记录和订阅操作提供接口。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ zapier/ connectors --skill elevenlabs安装后在 Claude Code 中输入/elevenlabs确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
.mcp.jsonCHANGELOG.mdcli.jscli.tsconnections.tsindex.tsLICENSENOTICEpackage.jsonREADME.md.claude-plugin/plugin.jsonevals/evals.jsonresults.mdlib/audioInput.tsaudioOutput.tselevenlabs.tsreferences/elevenlabs-api-gotchas.mduse-as-cli.mduse-as-mcp.mduse-as-recipe.mduse-as-sdk.mduse-with-zapier.mduse-without-zapier.mdscripts/addSharedVoice.tscreateSoundEffect.tscreateVoiceFromDesign.tsdeleteHistoryItem.tsdeleteVoice.tsdesignVoice.tsdownloadHistoryAudio.ts详细介绍
Elevenlabs
适用于 ElevenLabs AI 音频 API 的工具:使用账户中的任意声音将文本转换为语音,生成音效和多说话人对话,为现有音频重新配音或降噪,通过 URL 转录音频和视频,根据文本描述设计全新的合成声音,并管理账户中的声音、生成记录和额度。生成音频的工具默认会将音频写入本地文件并返回其路径;传入 return_base64: true,即可直接获取音频字节(适用于无法访问文件系统的使用者)。
独立的非官方 Elevenlabs 连接器。与 Elevenlabs 无关联,未获其认可或赞助。“Elevenlabs”是其所有者的商标,仅用于标识此连接器所配合使用的服务。
适用场景
- 将文本转换为音频:旁白、口语回复、播客风格的对话,或用文字描述的音效。
- 转换现有音频:转录音频、从背景噪声中分离语音,或用不同的声音重新配音。
- 管理声音:在账户或社区库中查找声音、添加声音、根据描述设计新声音,或释放声音名额。
- 大规模生成前检查账户:通过
getUserSubscription查看剩余字符额度、套餐限制和声音名额使用情况。
设置
这是一个 agentskills.io 技能。
如果尚未将连接器安装为技能,请先运行 npx skills add zapier/connectors --skill elevenlabs 安装(或使用你所用工具的技能安装机制),然后继续操作。安装技能会复制这些文件,不会安装依赖项。在运行 CLI、本地 MCP 服务或 zapier-sdk 身份验证命令之前,请在此处运行一次 npm install --omit=dev。如果要在自己的项目中将已发布的软件包作为依赖项导入?此时 npm install 已会解析所有依赖项——请参阅 references/use-as-sdk.md。
如果你想直接获取仓库源代码,以浏览 references/、运行此连接器的测试或进行修改,请参阅 README.md,了解如何克隆指定范围的内容。
此连接器需要 Node.js 22.18+。选择与你的运行方式相符的参考文档,并在进行任何其他操作前先加载:
| 你拥有…… | 加载 |
|---|---|
可识别 MCP 的客户端——工具可能已加载(例如 mcp__elevenlabs__<tool>),也可以自行注册本地服务(或指导用户注册) | references/use-as-mcp.md |
终端/子进程访问权限(可运行 node) | references/use-as-cli.md |
| 仅有自己的代码,并将此软件包作为依赖项导入 | references/use-as-sdk.md |
| 无工具访问权限、无终端、无法导入此软件包——需要自行编写代码直接调用 Elevenlabs API(例如,在代码执行沙箱中) | references/use-as-recipe.md |
脚本
所有脚本共用单个 elevenlabs 连接。生成音频的脚本接受 return_base64(默认值为 false:音频会写入临时文件,并以 audio_path 的形式返回)。
| 脚本 | 脚本名称 | 连接 | 描述 |
|---|---|---|---|
scripts/textToSpeech.ts | textToSpeech | elevenlabs | 使用所选语音将文本转换为语音(通过 listVoices 获取 voice_id)。 |
scripts/createSoundEffect.ts | createSoundEffect | elevenlabs | 根据文本描述生成音效(非语音)。 |
scripts/textToDialogue.ts | textToDialogue | elevenlabs | 根据 { text, voice_id } 行列表生成多说话人对话。 |
scripts/speechToSpeech.ts | speechToSpeech | elevenlabs | 用不同语音重新演绎现有语音;源文件可以是 HTTPS URL 或本地路径。 |
scripts/isolateAudio.ts | isolateAudio | elevenlabs | 从录音中去除背景噪声/音乐;源文件可以是 HTTPS URL 或本地路径。 |
scripts/speechToText.ts | speechToText | elevenlabs | 转录来自 HTTPS URL 的音频/视频,并提供时间戳和说话人标签。 |
scripts/designVoice.ts | designVoice | elevenlabs | 根据文本描述设计新的合成语音;返回候选预览。 |
scripts/createVoiceFromDesign.ts | createVoiceFromDesign | elevenlabs | 将设计好的语音(使用 designVoice 返回的 generated_voice_id)保存到账户。 |
scripts/listVoices.ts | listVoices | elevenlabs | 列出账户中的语音——用于解析 voice_id。 |
scripts/getVoice.ts | getVoice | elevenlabs | 根据 ID 获取某个语音的完整元数据。 |
scripts/searchVoiceLibrary.ts | searchVoiceLibrary | elevenlabs | 按名称、语言、性别、年龄和口音搜索社区语音库。 |
scripts/addSharedVoice.ts | addSharedVoice | elevenlabs | 将社区语音库中的语音添加到账户(会占用一个语音名额)。 |
scripts/deleteVoice.ts | deleteVoice | elevenlabs | 从账户中移除语音,释放一个语音名额。已设计/克隆的语音无法恢复。 |
scripts/listModels.ts | listModels | elevenlabs | 列出模型及其功能和每次请求的字符数限制。 |
scripts/listHistory.ts | listHistory | elevenlabs | 列出之前生成的音频项;可按语音、模型、日期或文本筛选。 |
scripts/getHistoryItem.ts | getHistoryItem | elevenlabs | 根据 history_item_id 获取某次生成的元数据(语音、文本、费用)。 |
scripts/downloadHistoryAudio.ts | downloadHistoryAudio | elevenlabs | 重新获取之前生成的音频——免费,不消耗新额度。 |
scripts/deleteHistoryItem.ts | deleteHistoryItem | elevenlabs | 从历史记录中永久删除一个生成项。无法恢复。 |
scripts/getUserSubscription.ts | getUserSubscription | elevenlabs | 查看套餐等级、已用/限额字符额度、重置时间和语音名额使用情况。 |
消歧与拒绝
名称匹配的语音。 语音通过便于用户识别的名称查找(listVoices 搜索、searchVoiceLibrary),而名称可能重复——多个账户语音或语音库语音可能都叫“George”或“Rachel”。在使用、删除或添加通过名称匹配的语音之前:统计名称完全匹配(不区分大小写)的数量。恰好一个 → 直接操作,无需询问。两个或更多 → 停止操作,列出候选项及一个用于区分的字段(类别、描述或口音),并询问用户选择哪一个。绝不静默选择。通过 listHistory 搜索源文本匹配历史记录项并在此基础上调用 deleteHistoryItem 时,也适用相同规则。
不支持的操作。 此连接器不支持根据样本录音克隆语音(即时或专业语音克隆),也不支持生成音乐。如果用户提出此类请求,请说明此处不支持该操作并停止——不要改用 designVoice(它根据描述而不是某人的录音创造语音)或 createSoundEffect(它制作音效而不是音乐),也不要谎称已成功执行未实际执行的操作。
身份验证
每种形态传递的都是一个连接选择器,而非密钥——格式为 [<resolver>:]<value>。每个连接器都接受 zapier:<connection-id>(由 Zapier 管理的身份验证——通过 Zapier 的身份验证、重试和治理层路由);有些还接受一个或多个直接令牌解析器(名称和数量因连接器而异)——请查看此连接器自己的解析器,不要想当然。<resolver>: 前缀可选;不带前缀的值会交给第一个认领它的解析器——UUID 格式的不带前缀值总会由 zapier: 认领。每个脚本都会声明所需的连接以及各自接受的解析器。传递连接的确切语法(以及如何查看此连接器的解析器列表)因形态而异——请参阅上方已加载的参考文档。
想先检查已配置的内容?不要为此输出环境变量值——env 或 env | grep <name> 会同时打印名称和值;如果设置了凭据,就会将有效凭据泄露到对话记录中。只检查名称(env | cut -d= -f1 | grep -i <name>),或直接测试已知名称([ -n "$VAR_NAME" ])。
还没有连接?选择一种方式——并按照相应参考文档中的流程获取连接;绝不要只向用户索要连接 ID 或令牌,仿佛他们早已记得这些信息:
| 加载 | |
|---|---|
| 直接传递凭据 | references/use-without-zapier.md |
| 通过 Zapier 连接进行路由 | references/use-with-zapier.md |
输出格式
每个脚本都会返回一个 { data, meta } 信封:
data— 脚本的结果(其outputSchema声明的结构;有关如何在你的 shape 中检查脚本的确切 schema,请参阅上文加载的参考文档)。meta.outputDataValidation— 对data进行验证的结果:{ skipped: false, droppedPaths: null }— 已验证,未移除任何内容。{ skipped: false, droppedPaths: [...], instruction }— 已验证,但这些路径已从data中剥离:脚本从 API 返回、但outputSchema未声明的字段。如果需要这些字段,请在重新运行时跳过输出验证。{ skipped: true }— 已绕过验证;data是未经检查的脚本原始输出。
读取被剥离的字段 / skipOutputDataValidation。 如需接收未经验证的原始结果,请选择退出输出验证(具体语法因 shape 而异;请参阅上文加载的参考文档)。输入验证不会跳过。
精简结果 / filterOutputData。 若要将大型结果缩减为所需字段,请传入一个用于后处理 data 的 jq 表达式(具体语法同样因 shape 而异)。jq 仅针对 data 运行,而非 { data, meta } 信封,因此表达式应以 data 为根(运行脚本的 --help——或 shape 中的等效命令——以查看其输出 schema)。转换后的值会替换 data,meta 保持不变,且结果不会再次根据输出 schema 验证。
参考资料
在对应领域操作前,请加载匹配的参考文件:
| 参考资料 | 涵盖内容 | 在以下情况下加载 |
|---|---|---|
| ElevenLabs API 常见问题 | 身份验证、错误、模型和语音解析、生成限制、转录、分页和历史记录 | 选择 ID 或模型、准备音频输入、对结果分页或从 API 错误中恢复时 |