オーディオジングルスキル は何をしますか?
3つのサブモードがあります。アクティブプロジェクトの audioKind がどのモードを実行するかを決定します。
audioKind | ルーティング先モデル | 計画の焦点 |
|---|---|---|
music | Suno V5(デフォルト)、Udio、Lyria 2 | ジャンル + テンポ + 楽器編成 |
speech | MiniMax TTS(デフォルト)、Fish、ElevenLabs V3 | スクリプト + 声 + ペース |
sfx | ElevenLabs SFX(デフォルト)、AudioCraft | テクスチャ + インパクト + 持続時間 |
リソースマップ
audio-jingle/
├── SKILL.md
└── example.html
ワークフロー
ステップ0 — プロジェクトメタデータを読み取る
audioKind、audioModel、audioDuration(秒)、および(音声の場合)voice。既知の値で分岐し、そのまま使用します。メタデータがないからといって質問を促す指示にはなりません。可能な場合は安全なデフォルトを推測し、欠落した答えが要求された出力を実質的に変更したり、生成を妨げる場合にのみ、明確化フォームを出力します。
重要: voice はプロバイダ固有です。minimax-tts の場合、--voice は有効な MiniMax voice_id(例:male-qn-qingse)でなければならず、自然言語による説明ではいけません。散文的な声の簡単な説明(「温かい女性ナレーター」、「中立な中国語」)しかない場合は、その説明を計画に保持しますが、--voice を省略してデーモンのデフォルトの音声IDを適用するか、ユーザーに特定のIDを選択するよう依頼します。
ステップ1 — 計画
ミュージック
- ジャンル + 参考アーティスト(1~2)
- テンポ(BPM)+ キー
- 楽器編成(最大3~5つの楽器)
- ボーカル:あり / なし / ハミング / コーラス
- ムードの流れ(イントロ → サビ → アウトロ)
スピーチ
- スクリプト(最終版、下書きではない — TTSはそのまま実行されます)
- 声のターゲット + ペース
MiniMaxの場合、これは
--voiceに散文ではなく実際のvoice_idを意味します - 固有名詞/頭字語の発音ヒント
SFX
- テクスチャ(インパクト / ウィッシュ / アンビエンス / フォーリー)
- 持続時間 + エンベロープ(鋭いアタック vs. 穏やかなスウェル)
- レイヤリングノート(単一ヒット vs. スタック)
ディスパッチする前に、計画を2~3文で述べてください。
ステップ2 — プロンプトを作成する
アップストリームモデルが好む形式を使用します。audioDuration をAPIパラメータに直接バインドし、「30秒にする」という文言を散文で決して入れないでください。
ステップ3 — メディア契約を介してディスパッチする
統一ディスパッチャーを使用します — プロバイダAPIを手動で呼び出さないでください:
"$OD_NODE_BIN" "$OD_BIN" media generate \
--project "$OD_PROJECT_ID" \
--surface audio \
--audio-kind "<music|speech|sfx>" \
--model "<audioModel from metadata>" \
--duration <audioDuration seconds> \
[--voice "<provider voice id (speech only)>"] \
--output "<short-slug>-<duration>s.mp3" \
--prompt "<assembled prompt from Step 2 — for speech, the literal script>"
コマンドは1行のJSONを出力します:{"file": {"name": "...", ...}}。バイトはプロジェクトに保存され、FileViewerが自動的にオーディオトランスポートコントロールをレンダリングします。
ステップ4 — 引き継ぎ
次の内容で応答します:計画の概要、ディスパッチャーによって返されたファイル名、ユーザーがバリエーションを希望する場合に試すべきことについての一文(例:「テンポを92 BPMから108 BPMに変更する」といった、「変えて」ではありません)。
厳格なルール
- TTSはスクリプトを文字通り実行します。ディスパッチする前に校正してください — カンマ1つでもリズムが変わります。
- MiniMax TTSは
--voice内の自由形式の声の散文を拒否します。実際のMiniMaxvoice_id(例:male-qn-qingse)を使用するか、フラグを省略してデーモンのデフォルト音声を適用してください。 - ミュージック:30秒未満 = 単一セクション;30~90秒 = イントロ + ボディ;90秒以上 = フルアーク。3幕構成の曲を15秒に詰め込もうとしないでください。
- SFX:「かっこよくして」という段落よりも、適切に説明された1つのレイヤーを優先してください — ジェネレーターは具体的なテクスチャの単語に報酬を与えます。
- 毎ターンファイルを保存します。オーディオビューアはファイルが保存されるとすぐにトランスポートコントロールを表示します。