elevenlabs-tts について
elevenlabs-ttsは、テキストやスクリプトファイルからElevenLabsの音声を生成する再利用可能なスキルです。ローカルの音声プロファイルと環境変数を使い、音声検索やリクエスト単位の設定変更にも対応します。
主な機能
- 01テキストやファイルから音声生成
- 02ローカル設定から音声を解決
- 03一致するElevenLabs音声の一覧
- 04モデルと出力設定の上書き
- 05dry-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、メールアドレス、アカウント名、顧客名、個人的なデフォルト設定をスキルに保存しないでください。
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 管理対象外の設定に保存してください。
ローカルプロファイル
次の設定ソースを上から順に優先してください。
--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 対応