elevenlabs について
ElevenLabsスキルは、ElevenLabs TTS APIでテキストや文書を音声に変換し、単独ナレーションと2人ホストのポッドキャストに対応します。文書の読み上げや対話形式の音声を作成するユーザー向けです。
主な機能
- 01テキストの音声変換
- 02PDFやDOCXからテキストを抽出
- 03音声の一貫性を保った分割処理
- 042人ホストのポッドキャスト生成
- 05利用可能な音声の一覧表示
活用シーン
- 01文書からナレーション音声を作成
- 02文書の内容を2人のポッドキャストに編成
- 03音声を試聴して選択
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ sanjay3290/ ai-skills --skill elevenlabsインストール後、Claude Code で/elevenlabsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
config.example.jsonrequirements.txtscripts/elevenlabs.pyextract.py詳細
ElevenLabs - テキスト読み上げ・ポッドキャストスキル
概要
このスキルは、ElevenLabs TTS API を使用して、テキストやドキュメントを高品質な音声に変換します。単一の音声によるナレーションと、2 人のホストによる会話形式のポッドキャスト生成という 2 つのモードに対応しています。
このスキルを使うタイミング
ユーザーが次のような表現をした場合に有効化します。
- 「ポッドキャストを作成」「ポッドキャストを生成」「ドキュメントからポッドキャストを作成」
- 「ドキュメントをナレーション」「このファイルをナレーション」「読み上げ」
- 「テキスト読み上げ」「TTS」「音声に変換」
- 「ドキュメントから音声を作成」「音声版を作成」
セットアップ
設定ファイル:skills/elevenlabs/config.json
{
"api_key": "your-elevenlabs-api-key",
"default_voice": "JBFqnCBsd6RMkjVDRZzb",
"default_model": "eleven_multilingual_v2",
"podcast_voice1": "JBFqnCBsd6RMkjVDRZzb",
"podcast_voice2": "EXAVITQu4vr4xnSDxMaL"
}
api_key のみ必須です。または、ELEVENLABS_API_KEY 環境変数を設定してください。
依存関係:pip install PyPDF2 python-docx(PDF/DOCX ファイルの場合のみ必要です)。
複数チャンクのナレーションとポッドキャストには ffmpeg が必要です。
コマンド
音声の一覧表示
python skills/elevenlabs/scripts/elevenlabs.py voices
python skills/elevenlabs/scripts/elevenlabs.py voices --json
ユーザーが音声 ID を見つけるために使用します。
単一音声での TTS
# From text
python skills/elevenlabs/scripts/elevenlabs.py tts --text "Hello world" --output ~/Downloads/hello.mp3
# From document
python skills/elevenlabs/scripts/elevenlabs.py tts --file /path/to/doc.pdf --output ~/Downloads/narration.mp3
# With specific voice
python skills/elevenlabs/scripts/elevenlabs.py tts --file doc.md --voice VOICE_ID --output out.mp3
スクリプトは、テキストの抽出、文の区切りでのチャンク分割(約 4000 文字)、音声の一貫性を保った各チャンクの TTS、ffmpeg による結合を自動で処理します。
ポッドキャストの生成
ポッドキャストモードでは、会話のセグメントを含む JSON スクリプトファイルが必要です。
[
{"speaker": "host1", "text": "Welcome to our podcast! Today we're diving into..."},
{"speaker": "host2", "text": "That's right! I found the section on..."},
{"speaker": "host1", "text": "Let's break that down..."}
]
python skills/elevenlabs/scripts/elevenlabs.py podcast --script /tmp/script.json --voice1 ID1 --voice2 ID2 --output ~/Downloads/podcast.mp3
ポッドキャストのワークフロー(Claude 向け)
ユーザーからドキュメントをもとにポッドキャストを作成するよう求められた場合:
-
ドキュメントのテキストを抽出します:
python skills/elevenlabs/scripts/extract.py /path/to/document.pdf -
抽出したテキストをもとに、2 人のホストによる会話スクリプトを生成します。次のガイドラインに従ってください。
- 2 人のホストが自然で、聞き手を引き込むように話し合う内容にします
- 通常、ホスト 1 が進行や話題の紹介を担当し、ホスト 2 が分析や反応を加えます
- 聞き手を歓迎し、話題を伝える短い導入から始めます
- まとめや締めの言葉で終えます
- 1 回の発話は 3000 文字未満にします
- 短い相づちと長めの説明を織り交ぜ、発話の長さに変化をつけます
- 「それはいい指摘ですね」「私が興味深いと思ったのは……」など、会話調の表現を使います
- 元のドキュメントにある具体的な詳細に言及します
- ドキュメントをそのまま読み上げるのではなく、議論して解釈します
-
スクリプトを JSON 配列として一時ファイルに書き込みます:
# Write to /tmp/podcast_script.json [ {"speaker": "host1", "text": "Welcome to today's episode..."}, {"speaker": "host2", "text": "Thanks for having me..."}, ... ] -
ポッドキャストを生成します:
python skills/elevenlabs/scripts/elevenlabs.py podcast --script /tmp/podcast_script.json --output ~/Downloads/podcast.mp3 -
一時スクリプトファイルを削除します。
ヒント
- まず
voicesを実行し、ユーザーが好みの音声を選べるようにします - ポッドキャストでは、特徴の異なる音声の組み合わせ(例:低く落ち着いた声と明るい声)を提案します
- ユーザーから別の指定がない限り、出力先は
~/Downloads/にします - 大きなドキュメントの場合は、ElevenLabs のプランでの文字数の使用量についてユーザーに伝えます