mcpField
E
elevenlabs

elevenlabs

github.com/zapier创意与媒体18262 次安装9 周前更新
代码仓库

关于 elevenlabs

elevenlabs 是连接 ElevenLabs AI 音频 API 的非官方技能,面向音频创作者和 Agent。它涵盖语音与音效生成、音频处理和转录,以及语音、历史记录和账户管理。

主要功能

  1. 01生成语音、对话和音效
  2. 02转换音色并去除音频噪声
  3. 03转录 URL 中的音频或视频
  4. 04设计并管理账户语音
  5. 05查看生成历史和额度

适用场景

  1. 01制作旁白或多人对话
  2. 02根据描述生成音效
  3. 03转录录音或去除背景噪声
  4. 04检查可用语音和剩余额度

MCP 相关

MCP 客户端可通过本地注册的 MCP 服务使用此连接器。其脚本向 ElevenLabs 音频生成、处理、转录、语音、历史记录和订阅操作提供接口。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/zapier/connectors --skill elevenlabs

安装后在 Claude Code 中输入/elevenlabs确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.mcp.json
CHANGELOG.md
cli.js
cli.ts
connections.ts
index.ts
LICENSE
NOTICE
package.json
README.md
.claude-plugin/
plugin.json
evals/
evals.json
results.md
lib/
audioInput.ts
audioOutput.ts
elevenlabs.ts
references/
elevenlabs-api-gotchas.md
use-as-cli.md
use-as-mcp.md
use-as-recipe.md
use-as-sdk.md
use-with-zapier.md
use-without-zapier.md
scripts/
addSharedVoice.ts
createSoundEffect.ts
createVoiceFromDesign.ts
deleteHistoryItem.ts
deleteVoice.ts
designVoice.ts
downloadHistoryAudio.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.tstextToSpeechelevenlabs使用所选语音将文本转换为语音(通过 listVoices 获取 voice_id)。
scripts/createSoundEffect.tscreateSoundEffectelevenlabs根据文本描述生成音效(非语音)。
scripts/textToDialogue.tstextToDialogueelevenlabs根据 { text, voice_id } 行列表生成多说话人对话。
scripts/speechToSpeech.tsspeechToSpeechelevenlabs用不同语音重新演绎现有语音;源文件可以是 HTTPS URL 或本地路径。
scripts/isolateAudio.tsisolateAudioelevenlabs从录音中去除背景噪声/音乐;源文件可以是 HTTPS URL 或本地路径。
scripts/speechToText.tsspeechToTextelevenlabs转录来自 HTTPS URL 的音频/视频,并提供时间戳和说话人标签。
scripts/designVoice.tsdesignVoiceelevenlabs根据文本描述设计新的合成语音;返回候选预览。
scripts/createVoiceFromDesign.tscreateVoiceFromDesignelevenlabs将设计好的语音(使用 designVoice 返回的 generated_voice_id)保存到账户。
scripts/listVoices.tslistVoiceselevenlabs列出账户中的语音——用于解析 voice_id。
scripts/getVoice.tsgetVoiceelevenlabs根据 ID 获取某个语音的完整元数据。
scripts/searchVoiceLibrary.tssearchVoiceLibraryelevenlabs按名称、语言、性别、年龄和口音搜索社区语音库。
scripts/addSharedVoice.tsaddSharedVoiceelevenlabs将社区语音库中的语音添加到账户(会占用一个语音名额)。
scripts/deleteVoice.tsdeleteVoiceelevenlabs从账户中移除语音,释放一个语音名额。已设计/克隆的语音无法恢复。
scripts/listModels.tslistModelselevenlabs列出模型及其功能和每次请求的字符数限制。
scripts/listHistory.tslistHistoryelevenlabs列出之前生成的音频项;可按语音、模型、日期或文本筛选。
scripts/getHistoryItem.tsgetHistoryItemelevenlabs根据 history_item_id 获取某次生成的元数据(语音、文本、费用)。
scripts/downloadHistoryAudio.tsdownloadHistoryAudioelevenlabs重新获取之前生成的音频——免费,不消耗新额度。
scripts/deleteHistoryItem.tsdeleteHistoryItemelevenlabs从历史记录中永久删除一个生成项。无法恢复。
scripts/getUserSubscription.tsgetUserSubscriptionelevenlabs查看套餐等级、已用/限额字符额度、重置时间和语音名额使用情况。

消歧与拒绝

名称匹配的语音。 语音通过便于用户识别的名称查找(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 错误中恢复时

评论

支持 Markdown