audio-ducking について
音声のある間は音楽の音量を下げ、無音部分では戻すSoniloの音声処理スキルです。音声または動画を声の入力にでき、動画の場合はミックス音声を再多重化したMP4を出力します。
主な機能
- 01音声に合わせた音楽音量の自動調整
- 02ローカルファイルまたはHTTPS入力
- 03音声・動画を声の入力に指定
- 04WAVまたは再多重化MP4を出力
活用シーン
- 01インタビュー動画に既存のBGMを追加
- 02ナレーションとBGMの聞き分けを調整
MCP 対応
SoniloのMCPツール `audio_ducking` は、音声と音楽のファイルまたはURLを受け取り、ミックス結果を返します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ sonilo-ai/ skills --skill audio-duckingインストール後、Claude Code で/audio-duckingを入力して読み込まれたか確認します。
詳細
Sonilo オーディオダッキング
音声トラックの下で音楽の音量を自動調整します。Sonilo は、音声が話している箇所では音楽の音量を下げ、無音の間は元に戻して、ミックスした結果を返します。音声入力には動画も指定できます。その場合、動画の音声トラックが音声として使われ、ダッキングしたミックスが新しい動画に多重化されます。
セットアップ: setup-api-key スキルを参照してください。
⚠️ 料金: 料金が発生する可能性のある API 呼び出しを行います。明示的に依頼された場合にのみ呼び出してください。
トランスポート:MCP または CLI
セッション開始時にどちらかを選び、最後までその方法を使ってください。1 つのジョブ内で両方を混在させないでください。また、選択した方法を伝える必要はありません。
- このセッションで Sonilo MCP ツール(
audio_duckingなど)が利用できる場合 — それらを使ってください。これが推奨される方法です。シェルが不要で、非常に長い生成でも唯一利用できる方法です。入力に問題があるのではなく認証に失敗した場合、このセッションではこのトランスポートを利用できません。再試行せず、2 に進んでください。 - 利用できる Sonilo MCP ツールはないが、
sonilo accountが終了コード 0 を返す場合 — 以下の CLI コマンドを使ってください。API、アカウント、認証情報ファイルは同じです。確認にはsonilo whoamiではなくsonilo accountを使ってください。サインアウト中でも whoami は終了コード 0 を返すため、2 つの状態を区別できません。 - どちらも該当しない場合 — 停止して、setup-api-key スキルを実行してください。回避策として
curlでapi.sonilo.comを呼び出さないでください。どちらのトランスポートも、単独のリクエストでは処理できないアップロード、ポーリング、再試行に対応しています。
クイックスタート
MCP ツールの呼び出し(推奨)
audio_ducking(
voice_path="~/Desktop/interview.mp4",
music_path="~/Desktop/background-track.wav"
)
Python(pip install "sonilo>=0.13")
from sonilo import Sonilo
client = Sonilo() # reads SONILO_API_KEY
result = client.audio_ducking.generate(
voice="interview.mp4", # audio or video; also voice_url=
music="background-track.wav", # audio only; also music_url=
)
result.save("ducked.mp4" if result.output_type == "video" else "ducked.wav")
JavaScript / TypeScript(npm install sonilo@>=0.14)
import { SoniloClient, download } from "sonilo";
import { writeFile } from "node:fs/promises";
const client = new SoniloClient(); // reads SONILO_API_KEY
const result = await client.audioDucking.generate({
voice: "./interview.mp4", // audio or video; also voiceUrl
musicUrl: "https://example.com/background-track.wav", // audio only; also music
});
await writeFile(
result.output_type === "video" ? "ducked.mp4" : "ducked.wav",
await download(result.output_url!),
);
CLI(npm install -g sonilo-cli または pip install sonilo-cli)
sonilo audio-ducking --voice interview.mp4 --music-url https://example.com/background-track.wav
内部では常に非同期で処理されます。CLI が送信とポーリングを代行します。--voice/--voice-url のいずれか 1 つと、--music/--music-url のいずれか 1 つを指定してください。出力ファイル名は、返されるファイルに応じてデフォルトで決まります(output.wav、音声入力が動画の場合は output.mp4)。--output で上書きできます。ローカルの --music ファイルには音声拡張子が必要です。MCP ツールと同じ理由で、CLI は動画を指定すると最初に拒否します。
cURL(MCP ホストを介さない REST API の直接呼び出し)
curl -X POST "https://api.sonilo.com/v1/audio-ducking" \
-H "Authorization: Bearer $SONILO_API_KEY" \
-F "[email protected]" \
-F "[email protected]"
# -> {"task_id": "..."} poll GET /v1/tasks/{task_id}
ローカルファイルにはマルチパートフィールド voice_file/music_file を使います。リモートソースには代わりにフォームフィールド voice_url/music_url を使います(2 つの入力は自由に組み合わせられます)。
ツール
| ツール | 説明 |
|---|---|
audio_ducking(voice_path? | voice_url?, music_path? | music_url?, output_directory?) | voice の下で music をミックスし、音声が話している箇所では自動的に音量を下げます。 |
パラメーター
| パラメーター | 型 | 備考 |
|---|---|---|
voice_path | string | 絶対パス、または SONILO_MCP_BASE_PATH からの相対パスです。音声または動画:.wav/.mp3/.m4a/.aac/.ogg/.flac または .mp4/.mov/.avi/.wmv/.webm/.mkv。 |
voice_url | string | 音声または動画の HTTPS URL です。voice_path/voice_url のいずれか 1 つを指定してください。 |
music_path | string | 絶対パス、またはベースパスからの相対パスです。音声のみ — ここで動画を指定しても特別な処理は行われず、正しく扱われません。 |
music_url | string | 音声の HTTPS URL です。music_path/music_url のいずれか 1 つを指定してください。 |
output_directory | string | デフォルトは SONILO_MCP_BASE_PATH です。 |
各入力は 360 秒(6 分) まで、かつアカウントのアップロードサイズ上限(通常 300 MB)までです。
ワークフローのヒント
- このツールは、すでに存在する2つのトラックを使用します。音楽や効果音自体を生成するものではありません。先に音楽のベッドを生成する必要がある場合は、text-to-music または video-to-music スキル(
text_to_music/video_to_music)を使用し、生成結果をmusic_pathとしてここに渡してください。 - 音声入力には動画も使用できます。 ユーザーからトークヘッド動画やインタビュー動画と別の音楽ファイルを受け取った場合は、動画をそのまま
voice_pathとして渡してください。Sonilo が音声トラックを抽出し、その下に音楽をダッキングしてから、ダッキング済みのミックスを新しい動画に自動で再多重化します。 - 同じ動画用の音楽自体も生成する場合は、video-to-sound または
video_to_music(ducking=true)を優先してください。 これらのツールは生成時に内部でダッキングするため、別途ダッキングを呼び出す必要はありません。音楽トラックが固定または外部のもので、ミックスだけが必要な場合は、audio_duckingを使用してください。
タイムアウトした呼び出しの再開
このツールはバックエンドで非同期タスクを送信します。呼び出しがタイムアウトした場合、エラーには task_id が含まれます。ジョブは実行を続けています(料金はすでに発生しています)。後で get_sfx_task(task_id) を呼び出してください(ホスト型サーバーでは get_generation_task(task_id))。task-recovery を参照してください。
出力ファイル
ファイルは1つです。音声入力の場合は .wav、動画入力の場合はダッキング済みのミックスを再多重化した .mp4 です。音声入力のファイル名が使われます(例:interview.mp4 → interview-ducked.mp4)。元の名前を使えない場合は、ducked-<first 8 chars of the task id> になります。
エラー処理
よくあるエラー:401 無効なキー、402 残高不足/トライアル終了、413 ファイルサイズが大きすぎる、422 パラメーターが無効、429 レート制限。account スキルを参照してください。