Podcast Generation Skill(ポッドキャスト生成スキル)
概要
このスキルは、テキストコンテンツから高品質なポッドキャスト音声を生成します。ワークフローは、構造化されたJSONスクリプト(会話形式の対話)の作成と、テキスト音声合成による音声生成の実行を含みます。
中核機能
- 任意のテキストコンテンツ(記事、レポート、ドキュメント)をポッドキャストスクリプトに変換
- 自然な2人のホストによる会話形式の対話(男性と女性)を生成
- テキスト音声合成を使用して音声を合成
- 音声チャンクを最終的なポッドキャストMP3ファイルにミックス
- 英語と中国語の両方をサポート
ワークフロー
ステップ 1: 要件の理解
ユーザーがポッドキャスト生成をリクエストした場合、以下を特定します:
- ソースコンテンツ: ポッドキャストに変換するテキスト/記事/レポート
- 言語: 英語または中国語(コンテンツに基づく)
- 出力場所: 生成されたポッドキャストの保存先
/mnt/user-data以下のフォルダを確認する必要はありません
ステップ 2: 構造化スクリプトJSONの作成
/mnt/user-data/workspace/ に、命名パターン {説明的な名前}-script.json で構造化JSONスクリプトファイルを生成します。
JSON構造:
{
"locale": "en",
"lines": [
{"speaker": "male", "paragraph": "対話テキスト"},
{"speaker": "female", "paragraph": "対話テキスト"}
]
}
ステップ 3: 生成の実行
Pythonスクリプトを呼び出します:
python /mnt/skills/public/podcast-generation/scripts/generate.py \
--script-file /mnt/user-data/workspace/script-file.json \
--output-file /mnt/user-data/outputs/generated-podcast.mp3 \
--transcript-file /mnt/user-data/outputs/generated-podcast-transcript.md
パラメータ:
--script-file: JSONスクリプトファイルの絶対パス(必須)--output-file: 出力MP3ファイルの絶対パス(必須)--transcript-file: 出力トランスクリプトMarkdownファイルの絶対パス(オプションですが推奨)
[!IMPORTANT]
- スクリプトは1回の完全な呼び出しで実行してください。ワークフローを個別のステップに分割しないでください。
- スクリプトはすべてのTTS API呼び出しと音声生成を内部で処理します。
- Pythonファイルは読まず、パラメータを指定して呼び出すだけにしてください。
- ユーザーが読めるトランスクリプトを生成するために、常に
--transcript-fileを含めてください。- TTSプロバイダーとその同時実行数は環境変数から自動的に選択されます。ユーザーが選択したり調整したりすることはありません。
スクリプトJSON形式
スクリプトJSONファイルは次の構造に従う必要があります:
{
"title": "人工知能の歴史",
"locale": "en",
"lines": [
{"speaker": "male", "paragraph": "Hello Deer!また別のエピソードへようこそ。"},
{"speaker": "female", "paragraph": "皆さんこんにちは!今日はとてもエキサイティングなトピックについて話します。"},
{"speaker": "male", "paragraph": "その通り!今日は...について話します。"}
]
}
フィールド:
title: ポッドキャストエピソードのタイトル(オプション、トランスクリプトの見出しとして使用)locale: 言語コード - "en" は英語、"zh" は中国語lines: 対話行の配列speaker: "male" または "female"paragraph: この話者の対話テキスト
スクリプト作成ガイドライン
スクリプトJSONを作成する際は、次のガイドラインに従ってください:
形式要件
- ホストは男性と女性の2人だけ、自然に交代すること
- 目標再生時間: 約10分の対話(約40〜60行)
- 男性ホストが「Hello Deer」を含む挨拶で始めること
トーンとスタイル
- 自然で会話的な対話 - まるで2人の友人が話しているかのように
- カジュアルな表現と会話のつなぎ言葉を使用
- 過度にフォーマルな言い回しや学術的なトーンを避ける
- リアクション、フォローアップ質問、自然な相槌を含める
コンテンツガイドライン
- ホスト間の頻繁なやり取り
- 文は短く、話されたときに理解しやすいように
- 出力ではプレーンテキストのみ - マークダウン書式は使用しない
- 技術的概念をわかりやすい言葉に変換する
- 数式、コード、複雑な表記は使用しない
- コンテンツを音声のみのリスナーにとって魅力的でアクセスしやすいものにする
- 日付、著者名、文書構造などのメタ情報は含めない
ポッドキャスト生成の例
ユーザーリクエスト:「人工知能の歴史についてのポッドキャストを生成してください」
ステップ 1: スクリプトファイル /mnt/user-data/workspace/ai-history-script.json を作成:
{
"title": "人工知能の歴史",
"locale": "en",
"lines": [
{"speaker": "male", "paragraph": "Hello Deer!また別の魅力的なエピソードへようこそ。今日は、文字通り私たちの未来を形作っているもの、人工知能の歴史に飛び込みます。"},
{"speaker": "female", "paragraph": "ああ、このトピック大好きです!AIってとても現代的に感じますが、実は70年以上前からのルーツがあるんですよね。"},
{"speaker": "male", "paragraph": "その通り!すべては1950年代に始まりました。人工知能という用語は、1956年にダートマス大学で開催された有名な会議でジョン・マッカーシーによって作られたんです。"},
{"speaker": "female", "paragraph": "えっ、つまり当時から考えることができる機械について考えていたってこと?すごい!"},
{"speaker": "male", "paragraph": "そうでしょう?初期の先駆者たちはとても楽観的でした。一世代のうちに人間レベルのAIが実現すると思っていたんです。"},
{"speaker": "female", "paragraph": "でも、そうはならなかったんですよね?"},
{"speaker": "male", "paragraph": "ええ、全くそうではありませんでした。1970年代には第一次AIの冬と呼ばれる時代が訪れました..."}
]
}
ステップ 2: 生成を実行:
python /mnt/skills/public/podcast-generation/scripts/generate.py \
--script-file /mnt/user-data/workspace/ai-history-script.json \
--output-file /mnt/user-data/outputs/ai-history-podcast.mp3 \
--transcript-file /mnt/user-data/outputs/ai-history-transcript.md
これにより以下が生成されます:
ai-history-podcast.mp3: ポッドキャスト音声ファイルai-history-transcript.md: ポッドキャストの読みやすいMarkdownトランスクリプト
特定のテンプレート
ユーザーのリクエストに一致する場合にのみ、次のテンプレートファイルを読んでください。
- Tech Explainer - 技術ドキュメントやチュートリアルの変換用
出力形式
生成されたポッドキャストは「Hello Deer」形式に従います:
- 2人のホスト:男性1人、女性1人
- 自然な会話形式の対話
- 「Hello Deer」の挨拶で始まる
- 目標時間: 約10分
- 魅力的な流れのための話者の交代
出力の処理
生成後:
- ポッドキャストとトランスクリプトは
/mnt/user-data/outputs/に保存されます present_filesツールを使用して、ポッドキャストMP3とトランスクリプトMDの両方をユーザーと共有します- 生成結果の簡単な説明(トピック、時間、ホスト)を提供します
- 調整が必要な場合は再生成を提案します
要件
以下の環境変数が設定されている必要があります:
- Volcengineの場合:
VOLCENGINE_TTS_APPIDとVOLCENGINE_TTS_ACCESS_TOKEN - MiniMaxの場合:
MINIMAX_API_KEY VOLCENGINE_TTS_CLUSTER: Volcengine TTSクラスタ(オプション、デフォルトは "volcano_tts")
注意事項
- パイプライン全体を常に1回で実行してください - 個々のステップをテストしたり、タイムアウトを心配する必要はありません
- スクリプトJSONはコンテンツの言語(en または zh)に一致させる必要があります
- スクリプトでは技術コンテンツを音声アクセシビリティのために簡略化する必要があります
- 複雑な表記(数式、コード)はスクリプト内で平易な言葉に変換する必要があります
- 長いコンテンツはより長いポッドキャストになる可能性があります
プロバイダー(Volcengine / MiniMax)
環境変数によって自動選択されます:
VOLCENGINE_TTS_APPID+VOLCENGINE_TTS_ACCESS_TOKENが設定 → Volcengine TTS(デフォルト)MINIMAX_API_KEYのみ設定 → MiniMax TTS(/v1/t2a_v2)PODCAST_GENERATION_PROVIDER=volcengine|minimaxで強制指定可能
MiniMaxの上書き設定: MINIMAX_API_HOST(デフォルト https://api.minimaxi.com)、
MINIMAX_TTS_MODEL(デフォルト speech-2.6-hd)、MINIMAX_TTS_VOICE_MALE
(デフォルト male-qn-qingse)、MINIMAX_TTS_VOICE_FEMALE(デフォルト female-tianmei)。
同時実行数は各プロバイダーが内部的に管理します。MiniMaxはレート制限エラーを減らすためにシングルスレッドで実行され、Volcengineは4つのワーカーを使用します。呼び出し側が操作できる同時実行数調整つまみはなく、一時的なレート制限は自動リトライとバックオフによって処理されます。