mcpField
P
podcast-generation

podcast-generation

github.com/bytedanceクリエイティブ・メディア84.6k2.4k 回インストール今日更新
リポジトリ

podcast-generation について

英語または中国語のテキストを、2人のホストによるポッドキャストに変換するスキルです。対話スクリプトの作成から音声合成、文字起こしの出力まで行います。

主な機能

  1. 01テキストからポッドキャスト脚本を作成
  2. 022人のホストによる対話を生成
  3. 03TTSで音声を合成
  4. 04ミックス済みMP3と文字起こしを出力
  5. 05英語と中国語に対応

活用シーン

  1. 01記事を音声向けに編成
  2. 02ドキュメントをポッドキャスト化
  3. 03レポートから対話形式の番組を作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/bytedance/deer-flow --skill podcast-generation

インストール後、Claude Code で/podcast-generationを入力して読み込まれたか確認します。

同梱ファイルscripts/generate.pytemplates/tech-explainer.md

詳細

ポッドキャスト生成スキル

概要

このスキルでは、テキストコンテンツから高品質なポッドキャスト音声を生成します。ワークフローには、構成済みの JSON スクリプト(会話形式の台本)の作成と、テキスト読み上げによる音声生成の実行が含まれます。

主な機能

  • 記事、レポート、ドキュメントなど、あらゆるテキストコンテンツをポッドキャストの台本に変換します
  • 2 人のホスト(男性と女性)による自然な会話を生成します
  • テキスト読み上げを使用して音声を合成します
  • 音声チャンクをミックスして、最終的なポッドキャストの MP3 ファイルを作成します
  • 英語と中国語の両方のコンテンツに対応します

ワークフロー

ステップ 1:要件を確認する

ユーザーからポッドキャストの生成を依頼されたら、以下を確認します。

  • 元のコンテンツ:ポッドキャストに変換するテキスト、記事、レポート
  • 言語:コンテンツに応じて英語または中国語
  • 出力先:生成したポッドキャストの保存先
  • /mnt/user-data 内のフォルダーを確認する必要はありません
ステップ 2:構成済みのスクリプト JSON を作成する

/mnt/user-data/workspace/ に、次の命名規則に従って構成済みの JSON スクリプトファイルを生成します:{descriptive-name}-script.json

JSON の構造:

{
  "locale": "en",
  "lines": [
    {"speaker": "male", "paragraph": "dialogue text"},
    {"speaker": "female", "paragraph": "dialogue text"}
  ]
}
ステップ 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 ファイルの絶対パス(任意ですが、推奨)

重要

  • スクリプトは 1 回の完全な呼び出しで実行してください。ワークフローを個別のステップに分割しないでください。
  • スクリプトはすべての TTS API 呼び出しと音声生成を内部で処理します。
  • Python ファイルは読み込まず、パラメーターを指定して呼び出してください。
  • ユーザーが読みやすい文字起こしを生成するため、必ず --transcript-file を指定してください。
  • TTS プロバイダーとその並列実行数は環境変数から自動的に選択されます。自分で選択したり調整したりしないでください。

スクリプト JSON の形式

スクリプト JSON ファイルは、次の構造に従う必要があります。

{
  "title": "The History of Artificial Intelligence",
  "locale": "en",
  "lines": [
    {"speaker": "male", "paragraph": "Hello Deer! Welcome back to another episode."},
    {"speaker": "female", "paragraph": "Hey everyone! Today we have an exciting topic to discuss."},
    {"speaker": "male", "paragraph": "That's right! We're going to talk about..."}
  ]
}

フィールド:

  • title:ポッドキャストのエピソードタイトル(任意。文字起こしの見出しとして使用)
  • locale:言語コード。英語は「en」、中国語は「zh」
  • lines:会話のセリフの配列
    • speaker:「male」または「female」
    • paragraph:この話者のセリフ

スクリプト作成ガイドライン

スクリプト JSON を作成するときは、次のガイドラインに従ってください。

形式の要件
  • ホストは男性と女性の 2 人のみとし、自然に交互に話させます
  • 目標の再生時間は会話で約 10 分(約 40~60 行)です
  • 男性ホストの挨拶から始め、「Hello Deer」を含めます
トーンとスタイル
  • 友人同士の会話のような、自然で親しみやすいやり取りにします
  • カジュアルな表現や会話のつなぎ言葉を使います
  • 堅苦しすぎる表現や学術的なトーンは避けます
  • 相づち、追加の質問、自然な合いの手を含めます
コンテンツに関するガイドライン
  • ホスト同士の頻繁なやり取りを含めます
  • 話し言葉として聞き取りやすいよう、文を短くします
  • 出力はプレーンテキストのみとし、Markdown 形式は使いません
  • 技術的な概念をわかりやすい言葉で説明します
  • 数式、コード、複雑な記法は使いません
  • 音声のみのリスナーにも興味深く、わかりやすい内容にします
  • 日付、著者名、ドキュメントの構成などのメタ情報は含めません

ポッドキャスト生成の例

ユーザーの依頼:「人工知能の歴史についてポッドキャストを生成してください」

ステップ 1:スクリプトファイル /mnt/user-data/workspace/ai-history-script.json を作成します。

{
  "title": "The History of Artificial Intelligence",
  "locale": "en",
  "lines": [
    {"speaker": "male", "paragraph": "Hello Deer! Welcome back to another fascinating episode. Today we're diving into something that's literally shaping our future - the history of artificial intelligence."},
    {"speaker": "female", "paragraph": "Oh, I love this topic! You know, AI feels so modern, but it actually has roots going back over seventy years."},
    {"speaker": "male", "paragraph": "Exactly! It all started back in the 1950s. The term artificial intelligence was actually coined by John McCarthy in 1956 at a famous conference at Dartmouth."},
    {"speaker": "female", "paragraph": "Wait, so they were already thinking about machines that could think back then? That's incredible!"},
    {"speaker": "male", "paragraph": "Right? The early pioneers were so optimistic. They thought we'd have human-level AI within a generation."},
    {"speaker": "female", "paragraph": "But things didn't quite work out that way, did they?"},
    {"speaker": "male", "paragraph": "No, not at all. The 1970s brought what's called the first AI winter..."}
  ]
}

ステップ 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 形式の文字起こし

個別のテンプレート

ユーザーの依頼に合致する場合に限り、次のテンプレートファイルを読み込んでください。

  • 技術解説 - 技術ドキュメントやチュートリアルを変換する場合

出力形式

生成されるポッドキャストは「Hello Deer」形式に従います。

  • ホストは男女各1名です
  • 自然な会話形式です
  • 「Hello Deer」の挨拶で始まります
  • 目標時間:約10分
  • 聞きやすい流れになるよう、話者が交互に話します

出力の取り扱い

生成に失敗すると、コマンドは終了ステータス1で終了し、診断情報を stderr に出力します。コマンドの成功後にのみ MP3 を提示してください。既存の音声ファイルや新たに書き込まれたトランスクリプトがあっても、音声生成が成功したことにはなりません。

生成後:

  • ポッドキャストとトランスクリプトは /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")
  • VOLCENGINE_TTS_VOICE_TYPE_MALE:Volcengine の男性ボイスの種類(省略可能。デフォルトは zh_male_yangguangqingnian_moon_bigtts)
  • VOLCENGINE_TTS_VOICE_TYPE_FEMALE:Volcengine の女性ボイスの種類(省略可能。デフォルトは zh_female_sajiaonvyou_moon_bigtts)

音声タイプの上書き値は前後の空白が削除されます。未設定または空白のみの場合は、記載されているデフォルト値が使用されます。

注意事項

  • パイプライン全体を必ず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つのワーカーを使用します。呼び出し側から並行処理数を指定する設定項目はありません。一時的なレート制限には、バックオフを伴う自動再試行で対処します。

コメント