elevenlabs

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Elevenlabs

Elevenlabs

<!-- BEGIN:skill-intro -->
Tools for the ElevenLabs AI-audio API: convert text to spoken audio in any of the account's voices, generate sound effects and multi-speaker dialogue, re-voice or denoise existing audio, transcribe audio and video by URL, design brand-new synthetic voices from a text description, and manage the account's voices, generation history, and credit quota. Audio-producing tools write the audio to a local file and return its path by default; pass
return_base64: true
to get the bytes inline instead (for consumers without filesystem access).
<!-- legal:disclaimer -->
Independent, unofficial connector for Elevenlabs. Not affiliated with, endorsed by, or sponsored by Elevenlabs. "Elevenlabs" is a trademark of its owner, used only to identify the service this connector works with.
<!-- /legal:disclaimer --> <!-- END:skill-intro -->
<!-- BEGIN:skill-intro -->
适用于ElevenLabs AI音频API的工具:将文本转换为账户中任意语音的语音音频、生成音效和多角色对话、对现有音频重新配音或降噪、通过URL转录音频和视频、根据文本描述设计全新的合成语音,以及管理账户的语音、生成历史和信用配额。默认情况下,生成音频的工具会将音频写入本地文件并返回其路径;若传入
return_base64: true
,则会直接返回字节数据(适用于无文件系统访问权限的使用者)。
<!-- legal:disclaimer -->
这是Elevenlabs的独立非官方连接器。与Elevenlabs无关联、未获其认可或赞助。“Elevenlabs”是其所有者的商标,仅用于标识本连接器所适配的服务。
<!-- /legal:disclaimer --> <!-- END:skill-intro -->

When to use this

适用场景

<!-- BEGIN:skill-use-cases -->
  • Turn text into audio: narration, a spoken reply, a podcast-style dialogue, or a sound effect described in words.
  • Transform existing audio: transcribe it, isolate the speech from background noise, or re-voice it in a different voice.
  • Manage voices: find one in the account or the community library, add it, design a new one from a description, or free up voice slots.
  • Check the account before big generations: remaining character credits, tier gates, and voice-slot usage via
    getUserSubscription
    .
<!-- END:skill-use-cases -->
<!-- BEGIN:skill-use-cases -->
  • 将文本转换为音频:旁白、语音回复、播客风格对话,或根据文字描述生成音效。
  • 处理现有音频:转录音频、分离语音与背景噪音,或用其他语音重新配音。
  • 管理语音:在账户或社区库中查找语音、添加语音、根据描述设计新语音,或释放语音插槽。
  • 大规模生成前检查账户信息:通过
    getUserSubscription
    查看剩余字符额度、层级限制和语音插槽使用情况。
<!-- END:skill-use-cases -->

Setup

安装配置

This is an agentskills.io skill.
If the connector has not been installed as a skill yet, install it first with
npx skills add zapier/connectors --skill elevenlabs
(or your harness's own skill-install mechanism), then continue here. Installing the skill copies these files, not dependencies. Before running the CLI, a local MCP server, or
zapier-sdk
auth commands, run
npm install --omit=dev
here once. Importing the published package as a dependency in your own project instead? That
npm install
already resolves everything — see
references/use-as-sdk.md
.
The connector runs on Node.js 22.18+. Pick the reference that matches how you're running it, and load it before doing anything else:
You have...Load
An MCP-aware client — tools may already be loaded (e.g.
mcp__elevenlabs__<tool>
), or you can register a local server yourself (or guide the user to)
references/use-as-mcp.md
Terminal / subprocess access (you can run
node
)
references/use-as-cli.md
Only your own code, importing this package as a dependency
references/use-as-sdk.md
No tool access, no terminal, no ability to import this package — you write your own code that calls the Elevenlabs API directly (e.g. a code-execution sandbox)
references/use-as-recipe.md
这是一款agentskills.io技能工具。
如果尚未将该连接器作为技能安装,请先使用
npx skills add zapier/connectors --skill elevenlabs
(或你的工具链自带的技能安装机制)进行安装,然后继续后续操作。安装技能只会复制这些文件,不会安装依赖项。运行CLI、本地MCP服务器或
zapier-sdk
认证命令前,请先在此处执行一次
npm install --omit=dev
。如果是在你自己的项目中导入已发布的包作为依赖?此时
npm install
已经解决了所有依赖问题——详见
references/use-as-sdk.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

Scripts

脚本说明

<!-- BEGIN:skill-connections-note? -->
All scripts share the single
elevenlabs
connection. Audio-producing scripts accept
return_base64
(default false: audio is written to a temp file and returned as
audio_path
).
<!-- END:skill-connections-note --> <!-- BEGIN:skill-scripts-table -->
ScriptScript nameConnectionsDescription
scripts/textToSpeech.ts
textToSpeech
elevenlabsConvert text to spoken audio in a chosen voice (resolve
voice_id
via
listVoices
).
scripts/createSoundEffect.ts
createSoundEffect
elevenlabsGenerate a sound effect (not speech) from a text description.
scripts/textToDialogue.ts
textToDialogue
elevenlabsGenerate a multi-speaker conversation from a list of
{ text, voice_id }
lines.
scripts/speechToSpeech.ts
speechToSpeech
elevenlabsRe-voice existing speech in a different voice; source is an HTTPS URL or local path.
scripts/isolateAudio.ts
isolateAudio
elevenlabsRemove background noise/music from a recording; source is an HTTPS URL or local path.
scripts/speechToText.ts
speechToText
elevenlabsTranscribe audio/video from an HTTPS URL, with timestamps and speaker labels.
scripts/designVoice.ts
designVoice
elevenlabsDesign a new synthetic voice from a text description; returns candidate previews.
scripts/createVoiceFromDesign.ts
createVoiceFromDesign
elevenlabsSave a designed voice (by
generated_voice_id
from
designVoice
) to the account.
scripts/listVoices.ts
listVoices
elevenlabsList the account's voices — the
voice_id
resolver.
scripts/getVoice.ts
getVoice
elevenlabsGet one voice's full metadata by id.
scripts/searchVoiceLibrary.ts
searchVoiceLibrary
elevenlabsSearch the community voice library by name, language, gender, age, accent.
scripts/addSharedVoice.ts
addSharedVoice
elevenlabsAdd a community library voice to the account (uses a voice slot).
scripts/deleteVoice.ts
deleteVoice
elevenlabsRemove a voice from the account; frees a voice slot. Irreversible for designed/cloned voices.
scripts/listModels.ts
listModels
elevenlabsList models with capabilities and per-request character limits.
scripts/listHistory.ts
listHistory
elevenlabsList previously generated audio items; filter by voice, model, date, or text.
scripts/getHistoryItem.ts
getHistoryItem
elevenlabsGet one generation's metadata (voice, text, cost) by
history_item_id
.
scripts/downloadHistoryAudio.ts
downloadHistoryAudio
elevenlabsRe-fetch the audio of a previous generation — free, no new credits.
scripts/deleteHistoryItem.ts
deleteHistoryItem
elevenlabsPermanently delete one generated item from history. Irreversible.
scripts/getUserSubscription.ts
getUserSubscription
elevenlabsCheck tier, character credits used/limit, reset time, and voice-slot usage.
<!-- END:skill-scripts-table --> <!-- BEGIN:disambiguation-and-refusals? -->
<!-- BEGIN:skill-connections-note? -->
所有脚本共享同一个
elevenlabs
连接。生成音频的脚本支持传入
return_base64
参数(默认值为false:音频会写入临时文件并以
audio_path
形式返回)。
<!-- END:skill-connections-note --> <!-- BEGIN:skill-scripts-table -->
脚本文件脚本名称连接配置描述
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查看账户层级、已使用/剩余字符额度、重置时间和语音插槽使用情况。
<!-- END:skill-scripts-table --> <!-- BEGIN:disambiguation-and-refusals? -->

Disambiguation & refusals

歧义处理与拒绝规则

Name-matched voices. Voices are looked up by human-friendly names (
listVoices
search,
searchVoiceLibrary
), and names collide — several account or library voices can share "George" or "Rachel". Before generating with, deleting, or adding a voice matched by name: count exact (case-insensitive) name matches. Exactly one → act on it without asking. Two or more → stop, list the candidates with a distinguishing field (category, description, or accent), and ask which one. Never silently pick. The same rule applies to history items matched by their source text via
listHistory
search before
deleteHistoryItem
.
Unsupported operations. This connector does not clone voices from sample recordings (instant or professional voice cloning) and does not generate music. If asked, say the operation isn't supported here and stop — don't substitute
designVoice
(which invents a voice from a description, not from someone's recording) or
createSoundEffect
(which makes sound effects, not music) and report success for an action you didn't perform.
<!-- END:disambiguation-and-refusals -->
名称匹配的语音:语音通过易读的名称进行查找(
listVoices
搜索、
searchVoiceLibrary
),但名称可能重复——多个账户或库中的语音可能共用“George”或“Rachel”这类名称。在使用名称匹配的语音进行生成、删除或添加操作前:统计完全匹配(不区分大小写)的名称数量。若仅有一个→直接操作无需询问。若有两个或更多→停止操作,列出候选语音并附上区分字段(类别、描述或口音),询问用户选择哪一个。绝不能静默选择。此规则同样适用于通过
listHistory
搜索源文本匹配的历史项目,在执行
deleteHistoryItem
前也需遵循。
不支持的操作:此连接器不支持通过样本录音克隆语音(即时或专业语音克隆),也不支持生成音乐。若用户请求此类操作,请告知该操作不被支持并停止——切勿用
designVoice
(根据描述生成语音,而非基于他人录音)或
createSoundEffect
(生成音效,而非音乐)替代,并误报操作成功。
<!-- END:disambiguation-and-refusals -->

Auth

认证方式

Every shape passes auth as one connection selector, not the secret — a
[<resolver>:]<value>
string. Every connector accepts
zapier:<connection-id>
(Zapier-managed auth — routes through Zapier's auth, retries, and governance layer); some also accept one or more direct-token resolvers (naming and count vary per connector) — check this connector's own resolvers rather than assuming. The
<resolver>:
prefix is optional; a bare value goes to the first resolver that claims it — a UUID-shaped bare value always claims
zapier:
. Each script declares the connections it needs and the resolvers each accepts. The exact syntax for passing a connection (and how to see this connector's resolver list) differs by shape — see the reference you loaded above.
Checking what's already configured first? Don't dump environment values to do it —
env
or
env | grep <name>
prints the value along with the name, leaking a live credential into the transcript if one is set. Check names only (
env | cut -d= -f1 | grep -i <name>
) or test a known name directly (
[ -n "$VAR_NAME" ]
).
<!-- BEGIN:skill-auth-notes? operational behavior that differs by WHICH resolver is used — a safety gate only one path enforces, scopes/permissions that differ between resolvers, a billing/plan difference tied to the auth path, or a feature only available (or unavailable) on one resolver. Not for describing how to obtain or pass a credential — that's references/use-without-zapier.md's job. Leave this region empty (unfilled) if every resolver behaves identically. --> <!-- END:skill-auth-notes -->
No connection yet? Pick one — and follow the reference's own flow to obtain it; never just ask the user for a connection id or token as if they already have one memorized:
Load
Pass the credential directly
references/use-without-zapier.md
Route it through a Zapier connection
references/use-with-zapier.md
所有操作通过一个连接选择器传递认证信息,而非密钥——格式为
[<resolver>:]<value>
的字符串。每个连接器都接受
zapier:<connection-id>
(由Zapier管理的认证——通过Zapier的认证、重试和治理层路由);部分连接器还支持一种或多种直接令牌解析器(名称和数量因连接器而异)——请查看此连接器自身的解析器列表,不要假设通用规则。
<resolver>:
前缀是可选的;无前缀的值会被第一个匹配的解析器处理——UUID格式的无前缀值默认使用
zapier:
解析器。每个脚本都会声明所需的连接及支持的解析器。传递连接的具体语法(以及查看此连接器解析器列表的方式)因运行环境而异——请查看你之前加载的参考文档。
想先检查已配置的内容?不要直接打印环境变量——
env
env | grep <name>
会同时打印变量名和值,若设置了有效凭证,会导致凭证泄露。仅检查变量名(
env | cut -d= -f1 | grep -i <name>
)或直接测试已知变量(
[ -n "$VAR_NAME" ]
)。
<!-- BEGIN:skill-auth-notes? operational behavior that differs by WHICH resolver is used — a safety gate only one path enforces, scopes/permissions that differ between resolvers, a billing/plan difference tied to the auth path, or a feature only available (or unavailable) on one resolver. Not for describing how to obtain or pass a credential — that's references/use-without-zapier.md's job. Leave this region empty (unfilled) if every resolver behaves identically. --> <!-- END:skill-auth-notes -->
还没有连接?请选择一种方式——并按照对应参考文档的流程获取连接;切勿直接向用户索要连接ID或令牌,假设他们已经记住这些信息:
加载文档
直接传递凭证
references/use-without-zapier.md
通过Zapier连接路由凭证
references/use-with-zapier.md

Output format

输出格式

Every script returns a
{ data, meta }
envelope:
  • data
    — the script's result (the shape its
    outputSchema
    declares; see the reference you loaded above for how to inspect a script's exact schema in your shape).
  • meta.outputDataValidation
    — what validating
    data
    did:
    • { skipped: false, droppedPaths: null }
      — validated, nothing removed.
    • { skipped: false, droppedPaths: [...], instruction }
      — validated, but those paths were stripped from
      data
      : fields the script returned from the API that the
      outputSchema
      doesn't declare. If you need them, re-run with output validation skipped.
    • { skipped: true }
      — validation was bypassed;
      data
      is the raw, unchecked script output.
Reading dropped fields /
skipOutputDataValidation
.
To receive the raw, unvalidated result, opt out of output validation (the exact syntax differs by shape — see the reference you loaded above). Input validation is never skipped.
Trimming the result /
filterOutputData
.
To shrink a large result down to the fields you need, pass a jq expression that post-processes
data
(again, exact syntax per shape). The jq runs against
data
only, NOT the
{ data, meta }
envelope, so write it rooted at
data
(run the script's
--help
— or your shape's equivalent — to see its output schema). The transformed value replaces
data
,
meta
is preserved, and the result is NOT re-validated against the output schema.
<!-- BEGIN:skill-references-table -->
每个脚本都会返回
{ data, meta }
格式的结果包:
  • data
    ——脚本的执行结果(符合其
    outputSchema
    定义的格式;请查看你加载的参考文档,了解如何在你的环境中查看脚本的精确输出 Schema)。
  • meta.outputDataValidation
    ——对
    data
    的验证情况:
    • { skipped: false, droppedPaths: null }
      ——已验证,无内容被移除。
    • { skipped: false, droppedPaths: [...], instruction }
      ——已验证,但部分路径从
      data
      中被移除:脚本从API返回的字段未在
      outputSchema
      中声明。若需要这些字段,请跳过输出验证重新运行。
    • { skipped: true }
      ——已跳过验证;
      data
      为原始的、未经过检查的脚本输出。
读取被移除的字段 /
skipOutputDataValidation
:若要接收原始的未验证结果,请选择跳过输出验证(具体语法因环境而异——请查看你加载的参考文档)。输入验证永远不会被跳过。
精简结果 /
filterOutputData
:若要将大结果精简为你需要的字段,请传入一个jq表达式对
data
进行后处理(同样,具体语法因环境而异)。jq仅针对
data
运行,而非
{ data, meta }
结果包,因此表达式需以
data
为根(运行脚本的
--help
命令——或你的环境中的等效命令——查看其输出 Schema)。转换后的值会替换
data
meta
会被保留,且结果不会重新与输出 Schema 验证。
<!-- BEGIN:skill-references-table -->

References

参考文档

Load the matching reference file before working in that area:
ReferenceCoversLoad it when
ElevenLabs API gotchasAuthentication, errors, model and voice resolution, generation limits, transcription, pagination, and historyChoosing IDs or models, preparing audio inputs, paginating results, or recovering from API errors
<!-- END:skill-references-table -->
在对应场景下工作前,请加载匹配的参考文档:
参考文档涵盖内容加载时机
ElevenLabs API注意事项认证、错误处理、模型与语音解析、生成限制、转录、分页和历史记录选择ID或模型、准备音频输入、分页处理结果或从API错误中恢复时
<!-- END:skill-references-table -->