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. 05dry-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、メールアドレス、アカウント名、顧客名、個人的なデフォルト設定をスキルに保存しないでください。
  • ELEVENLABS_API_KEY はプロセス環境または最も近い .env から読み込んでください。
  • アカウント固有の音声プロファイルは、このスキル外にあるローカル JSON 設定から読み込んでください。
  • リクエスト単位の設定で音声を生成してください。ユーザーから明示的な依頼がない限り、保存済みの ElevenLabs アカウント設定や音声設定を変更しないでください。

このスキルを使用する場面

  • ローカル音声プロファイルを使用して、スクリプトファイルまたはインラインテキストから ElevenLabs のテキスト読み上げ音声を生成する場合。
  • ユーザーが ElevenLabs、TTS、ナレーション、ボイスオーバー、音声、または音声生成を依頼した場合。
  • ローカルのプロファイル設定から voice_id、voice_id_env、voice_name を使って音声を特定する場合、または一致する ElevenLabs の音声を一覧表示する場合。
  • バンドルされた scripts/generate_voice.py ヘルパーを、プロファイル、--dry-run、または単発のオーバーライド(--voice-id、--model-id、--output-format、--settings-json)とともに実行する場合。
  • 現行の 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 として送信します。

参考資料

コメント