关于 elevenlabs-tts
用于通过 ElevenLabs 生成语音的可复用技能。它使用本地配置档案和单次请求设置,并通过辅助脚本处理语音选择、输入、输出及试运行。
主要功能
- 01本地语音配置档案
- 02文本、文件或标准输入
- 03单次请求生成设置
- 04搜索和列出语音
- 05试运行请求预览
适用场景
- 01将脚本文件生成音频
- 02选择本地语音配置档案
- 03合成前预览请求
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mengto/ skills --skill elevenlabs-tts安装后在 Claude Code 中输入/elevenlabs-tts确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
demo/expected-output.mdindex.htmlinput.mdPROMPT.mdscripts/generate_voice.py详细介绍
ElevenLabs TTS
使用此技能生成 ElevenLabs 文本转语音。请确保此技能可复用且不包含个人信息:
- 不要在技能中存储 API 密钥、声音名称、声音 ID、电子邮件、账户名称、客户名称或个人默认设置。
- 从进程环境或最近的
.env文件中读取ELEVENLABS_API_KEY。 - 从此技能以外的本地 JSON 配置中读取账户专属的声音配置。
- 使用请求级设置生成音频。除非用户明确要求,否则不要修改已保存的 ElevenLabs 账户或声音设置。
本地配置
优先按以下顺序使用配置来源:
--config /path/to/profiles.jsonELEVENLABS_TTS_CONFIG=/path/to/profiles.jsonlocal/elevenlabs/profiles.json
项目本地配置文件也可以使用,但应加入 gitignore,例如 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、owners、aliases 和 notes 等字段仅用于本地路由或上下文信息。脚本会忽略未知的元数据字段。
工作流
- 从
--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 发送。
评论
支持 Markdown