mcpField
E
elevenlabs-tts

elevenlabs-tts

github.com/akillness创意与媒体5357 次安装今天更新
代码仓库

关于 elevenlabs-tts

elevenlabs-tts 是用于生成 ElevenLabs 语音的可复用技能,支持输入文本或脚本文件。它通过本地语音配置和环境变量读取凭据,并提供语音查询及单次请求设置覆盖。

主要功能

  1. 01从文本或文件生成语音
  2. 02从本地配置解析语音
  3. 03列出匹配的 ElevenLabs 语音
  4. 04覆盖模型和输出设置
  5. 05通过 dry-run 预览请求

适用场景

  1. 01根据脚本文件制作旁白
  2. 02将输入文本生成配音
  3. 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 忽略规则的配置中。

本地配置

按以下优先顺序使用其中一个配置来源:

  1. --config /path/to/profiles.json
  2. ELEVENLABS_TTS_CONFIG=/path/to/profiles.json
  3. local/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、所有者、别名和备注等字段仅用于本地路由或上下文。脚本会忽略未知的元数据字段。

工作流

  1. 从 --profile、ELEVENLABS_TTS_PROFILE 或 default_profile 中选择配置。
  2. 优先使用辅助脚本: python3 <skill-root>/scripts/generate_voice.py --text-file script.txt --profile default --output output.mp3
  3. 如果配置中包含 voice_id,则使用它。如果包含 voice_id_env,则读取对应的环境变量。否则通过 voice_name 在 ElevenLabs 中搜索。
  4. 除非用户针对本次生成指定覆盖值,否则使用配置中的 model_id、output_format 和 voice_settings。
  5. 将生成的音频放到用户指定的位置。如果用户未指定目标位置,则使用配置中的 output_dir,再否则使用 outputs/voiceovers/。
  6. 报告输出路径和任何重要警告。不要打印机密信息。

辅助脚本

捆绑的脚本支持:

  • 使用 --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