关于 elevenlabs-tts
elevenlabs-tts 是用于生成 ElevenLabs 语音的可复用技能,支持输入文本或脚本文件。它通过本地语音配置和环境变量读取凭据,并提供语音查询及单次请求设置覆盖。
主要功能
- 01从文本或文件生成语音
- 02从本地配置解析语音
- 03列出匹配的 ElevenLabs 语音
- 04覆盖模型和输出设置
- 05通过 dry-run 预览请求
适用场景
- 01根据脚本文件制作旁白
- 02将输入文本生成配音
- 03生成音频前检查语音
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ akillness/ jeo-skills --skill elevenlabs-tts安装后在 Claude Code 中输入/elevenlabs-tts确认已加载。
附带文件SKILL.toonscripts/generate_voice.py
详细介绍
ElevenLabs TTS
将此技能用于 ElevenLabs 文本转语音生成。保持技能可复用且不包含个人信息:
- 不要在技能中存储 API 密钥、语音名称、语音 ID、电子邮件、账户名称、客户名称或个人默认设置。
- 从进程环境或最近的
.env中读取ELEVENLABS_API_KEY。 - 从此技能之外的本地 JSON 配置中读取账户专属的语音配置。
- 使用请求级设置生成音频。除非用户明确要求,否则不要修改已保存的 ElevenLabs 账户或语音设置。
何时使用此技能
- 使用本地语音配置,根据脚本文件或内联文本生成 ElevenLabs 文本转语音音频。
- 用户提到 ElevenLabs、TTS、旁白、配音、语音音频或语音生成。
- 需要从本地配置中通过
voice_id、voice_id_env或voice_name确定语音,或列出匹配的 ElevenLabs 语音。 - 需要使用配置、
--dry-run或一次性覆盖参数(--voice-id、--model-id、--output-format、--settings-json)运行捆绑的scripts/generate_voice.py辅助脚本。 - 需要直接调用当前的 ElevenLabs 语音搜索或语音生成端点。
- 不适用于在技能中存储 API 密钥、语音名称、语音 ID、电子邮件或个人默认设置,也不适用于修改已保存的 ElevenLabs 账户或语音设置——这些内容应保留在此技能之外的本地、已加入 Git 忽略规则的配置中。
本地配置
按以下优先顺序使用其中一个配置来源:
--config /path/to/profiles.jsonELEVENLABS_TTS_CONFIG=/path/to/profiles.jsonlocal/elevenlabs/profiles.json
项目本地的配置文件也可以使用,前提是它们已加入 Git 忽略规则,例如 config/local/elevenlabs-tts.json。
辅助脚本要求使用以下结构:
{
"default_profile": "default",
"profiles": {
"default": {
"voice_name": "Voice name from the local account",
"voice_id": "optional-direct-voice-id",
"voice_id_env": "OPTIONAL_ENV_VAR_WITH_VOICE_ID",
"model_id": "eleven_multilingual_v2",
"output_format": "mp3_44100_128",
"voice_settings": {
"stability": 0.5,
"similarity_boost": 1.0,
"style": 0.0,
"speed": 1.0,
"use_speaker_boost": true
},
"output_dir": "outputs/voiceovers",
"emails": []
}
}
}
emails、所有者、别名和备注等字段仅用于本地路由或上下文。脚本会忽略未知的元数据字段。
工作流
- 从
--profile、ELEVENLABS_TTS_PROFILE或default_profile中选择配置。 - 优先使用辅助脚本:
python3 <skill-root>/scripts/generate_voice.py --text-file script.txt --profile default --output output.mp3 - 如果配置中包含
voice_id,则使用它。如果包含voice_id_env,则读取对应的环境变量。否则通过voice_name在 ElevenLabs 中搜索。 - 除非用户针对本次生成指定覆盖值,否则使用配置中的
model_id、output_format和voice_settings。 - 将生成的音频放到用户指定的位置。如果用户未指定目标位置,则使用配置中的
output_dir,再否则使用outputs/voiceovers/。 - 报告输出路径和任何重要警告。不要打印机密信息。
辅助脚本
捆绑的脚本支持:
- 使用
--text "..."指定内联文本 - 使用
--text-file path.txt指定脚本文件 - 如果未提供
--text或--text-file,则从标准输入读取 - 使用
--profile name选择本地配置 - 使用
--config path.json选择本地配置文件 - 使用
--voice-id、--voice-name、--model-id、--output-format和--settings-json指定一次性覆盖值 - 使用
--output path.mp3选择输出文件 - 使用
--dry-run打印解析后的请求负载,而不调用文本转语音端点 - 使用
--list-voices列出匹配的 ElevenLabs 语音,而不生成音频
API 说明
使用当前的 ElevenLabs 端点:
- 语音搜索:
GET https://api.elevenlabs.io/v2/voices - 语音生成:
POST https://api.elevenlabs.io/v1/text-to-speech/:voice_id?output_format=...
将 API 密钥作为 xi-api-key 发送。
参考资料
- 上游技能源代码:https://github.com/MengTo/Skills/tree/main/agent-skills/codex/elevenlabs-tts
scripts/generate_voice.py— 用于通过 ElevenLabs API 生成音频的辅助脚本
评论
支持 Markdown