mcpField
E
elevenlabs-tts

elevenlabs-tts

github.com/mengto创意与媒体7.1k1.4k 次安装3 天前更新
代码仓库

关于 elevenlabs-tts

用于通过 ElevenLabs 生成语音的可复用技能。它使用本地配置档案和单次请求设置,并通过辅助脚本处理语音选择、输入、输出及试运行。

主要功能

  1. 01本地语音配置档案
  2. 02文本、文件或标准输入
  3. 03单次请求生成设置
  4. 04搜索和列出语音
  5. 05试运行请求预览

适用场景

  1. 01将脚本文件生成音频
  2. 02选择本地语音配置档案
  3. 03合成前预览请求

安装

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

$npx skills add https://github.com/mengto/skills --skill elevenlabs-tts

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

包含的文件

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

demo/
expected-output.md
index.html
input.md
PROMPT.md
scripts/
generate_voice.py

详细介绍

ElevenLabs TTS

使用此技能生成 ElevenLabs 文本转语音。请确保此技能可复用且不包含个人信息:

  • 不要在技能中存储 API 密钥、声音名称、声音 ID、电子邮件、账户名称、客户名称或个人默认设置。
  • 从进程环境或最近的 .env 文件中读取 ELEVENLABS_API_KEY。
  • 从此技能以外的本地 JSON 配置中读取账户专属的声音配置。
  • 使用请求级设置生成音频。除非用户明确要求,否则不要修改已保存的 ElevenLabs 账户或声音设置。

本地配置

优先按以下顺序使用配置来源:

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

工作流

  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