メディアと音声のコマンド
Nodaro CLI の voice、media、audio、edit の各コマンドで、トラックの声を差し替え、字幕を焼き込み、スライドショーとオーバーレイを作成し、オーディオを処理し、編集を計画します。
Nodaro CLI のメディアと音声のコマンドは、オーディオ、動画、画像を直接扱います。voice グループはトラックの声を差し替え、ボイスをデザインします。media はメディアのインポート、トリミング、字幕付け、合成を行います。audio は音を処理し、文字起こしします。edit は、ポッドキャストや長い動画の編集を計画し、適用します。各コマンドは、エディターの対応するノードと同じエンジンで動作します。
ジョブを開始するコマンドはすべて、結果を待つ --watch、ポーリングの間隔を設定する --poll-interval <ms>、そして --json を受け付けます。出力と終了コードを参照してください。
ボイス
nodaro voice list [--clones] [--json]
nodaro voice changer --voice <id> --audio <url>|--video <url> [--model <id>] [--stability <0..1>] [--similarity <0..1>] [--style <0..1>] [--use-speaker-boost] [--seed <n>] [--remove-background-noise] [--watch] [--poll-interval <ms>] [--json]
nodaro voice recast --audio <url>|--video <url> --voices <v1,v2,...>|--voices-json <json> [--model <id>] [--output video|stems] [--analysis-json <json>|--analysis-file <path>] [--no-preserve-background] [--separation-quality fast|best] [--music-volume-mode match|normalize|manual] [--music-volume <0-200>] [--remove-background-noise] [--voice-fx <preset>] [--voice-fx-mix <0-100>] [--voice-fx-delay <20-2000>] [--voice-fx-decay <0-1>] [--watch] [--poll-interval <ms>] [--json]
nodaro voice analyze --audio <url>|--video <url> [--separation-quality fast|best] [--suggest-title] [--watch] [--poll-interval <ms>] [--json]
nodaro voice export --source <videoUrl> --tracks-json <json>|--tracks-file <path> [--voice-fx <preset>] [--voice-fx-mix <0-100>] [--voice-fx-delay <20-2000>] [--voice-fx-decay <0-1>] [--watch] [--poll-interval <ms>] [--json]
nodaro voice design --text <line> --description <desc> [--model <id>] [--loudness <-1..1>] [--guidance-scale <0-100>] [--seed <n>] [--quality <n>] [--enhance] [--user-prompt <text>] [--watch] [--poll-interval <ms>] [--json]
nodaro voice remix --text <text> --description <desc> [--user-prompt <text>] [--watch] [--poll-interval <ms>] [--json]
nodaro voice dub --audio <url> --target-language <code> [--source-language <code>] [--num-speakers <1-20>] [--disable-voice-cloning] [--drop-background-audio] [--watch] [--poll-interval <ms>] [--json]
nodaro voice clones list [--json]
nodaro voice clones delete <id> [--json]| コマンド | 内容 |
|---|---|
voice list | 標準ボイスを一覧表示します。--clones を付けると、自分のクローンを表示します。その名前または ID を --voice と --voices で使います。 |
voice changer | ボイスチェンジャー(Voice Changer)ノードのように、1 つのオーディオトラックまたは 1 つの発話動画の声を、単一のボイスに差し替えます。voice change も同じコマンドです。 |
voice recast | ボイスチェンジャー Pro(Voice Changer Pro)ノードのように、録音のすべての話者の声を一度に差し替えます。voice pro も同じコマンドです。 |
voice analyze | 声を差し替えずに話者を検出し、--watch を付けると一覧を表示します。Nodaro Cloud 専用です。 |
voice export | ミックスしたトラックのセットから、最終的な動画をレンダリングします。Nodaro Cloud 専用です。 |
voice design | ボイスデザイン(Voice Design)ノードのように、テキストの説明から新しい合成ボイスをデザインします。 |
voice remix | ボイスリミックス(Voice Remix)ノードのように、クローンを作らず、説明したボイスでテキストを読み上げます。 |
voice dub | 吹き替え(Dubbing)ノードのように、録音を別の言語に吹き替え、各話者の声を保ちます。 |
voice clones | クローン機能が廃止される前に作られたボイスクローンを、一覧表示および削除します。 |
複数の話者の声を差し替える
voice recast は、Nodaro Cloud で動作します。セルフホスティング環境では、Nodaro Cloud への接続を通じて動作します。
--voicesは、Nodaro が検出した順に、ボイスを話者へ割り当てます。keepという語は、その話者の元の声を保ちます。--voices Rachel,keep,Ariaのように書きます。--voices-jsonは、代わりに SDK の生の配列を受け取ります。ボイス ID、ボイスごとの設定オブジェクト、または元の声を保つ話者にはnullを指定します。--output stemsは、完成した動画の代わりに、対話的なミックス用に、話者ごとの 1 本のドライなトラックを返します。ミックスはvoice exportでレンダリングします。--analysis-fileは、保存済みのvoice analyzeの結果を再利用するので、話者が再び検出されることはありません。
対話形式で声を差し替えるフロー
1 ステップの voice recast は、1 回の呼び出しで完成した動画をレンダリングします。3 ステップのフローでは、レンダリングの前に、まず話者を確認し、結果をミックスできます。
# 1. Detect the speakers. Save the job's output_data for step 2.
nodaro voice analyze --video https://example.com/panel.mp4 --watch --json > analyze.json
jq .output_data analyze.json > analysis.json
# 2. Recast to dry stems, reusing the analysis (no second detection)
nodaro voice recast --video https://example.com/panel.mp4 --voices Rachel,keep,Aria \
--analysis-file analysis.json --output stems --watch
# 3. Set the level and mute of each track, then render
nodaro voice export --source https://example.com/panel.mp4 --tracks-file mix.json \
--voice-fx hall --voice-fx-mix 25 --watch手順 3 では、mix.json の各トラックは、手順 2 のステムから取得した url、0〜200 の gain、muted フラグ、省略可能な kind を持つオブジェクトです。エクスポートは、動画ストリームをそのままコピーします。再エンコードされることはありません。
メディア
nodaro media download <url> [--max-height <px>] [--section <a-b>] [--watch] [--json]
nodaro media metadata <url> [--json]
nodaro media trim-video --video <url> --start <sec> --end <sec>|--keep-first <sec>|--keep-last <sec> [--watch] [--poll-interval <ms>] [--json]
nodaro media trim-audio --video <url>|--audio <url> [--start <sec>] [--end <sec>] [--format mp3|wav|aac] [--watch] [--poll-interval <ms>] [--json]
nodaro media add-captions <videoUrl> [options, see below]
nodaro media still-to-video --image <url> --audio <url> [--motion none|zoom-in|zoom-out|pan-left|pan-right|ken-burns] [--intensity <1-10>] [--resolution 720p|1080p|4K] [--aspect-ratio <W:H>] [--fps 24|30] [--fit cover|contain] [--pad-color <hex>] [--watch] [--poll-interval <ms>] [--json]
nodaro media slideshow --images <url...> [--audio <url>] [--durations "10,auto,auto"] [--per-image <sec>] [--transition <id>] [--transition-duration <sec>] [--motion none|zoom-in|zoom-out|ken-burns|alternate] [--intensity <1-10>] [--resolution 720p|1080p|4K] [--aspect-ratio <W:H>] [--fps 24|30] [--fit cover|contain] [--pad-color <hex>] [--watch] [--json]
nodaro media collage <imageUrls...> [--sizes <0-3,...>] [--numbered] [--label <text>...] [--badge-position top-left|top-right] [--layout smart|grid] [--resolution 2K|4K] [--aspect-ratio <W:H>] [--gap <px>] [--background-color <hex>] [--watch] [--poll-interval <ms>] [--json]
nodaro media overlay <imageUrl> [layerUrls...] [--layers-file <path>] [--anchor <anchor>] [--x <%>] [--y <%>] [--width <%>] [--opacity <0-1>] [--platform <id>...] [--qr-text <text>] [--mask-mode none|layers|around|outside] [--mask-spread <px>] [--canvas <WxH>] [--base-fit contain|cover] [--background-color <hex>] [--output-format png|jpg|webp] [--watch] [--poll-interval <ms>] [--json]
nodaro media overlay-placement <imageUrl> [--intent <text>] [--aspect <ratio>] [--safe-area <x,y,w,h>] [--json]
nodaro media video-overlay <videoUrl> [layerUrls...] [--at <start[-end]>...] [--preset card|corner-badge|full-frame] [--corner top-left|top-right|bottom-left|bottom-right] [--layers-file <path>] [--aspect 16:9|9:16|1:1|4:5] [--base-fit cover|contain] [--background-color <hex>] [--watch] [--poll-interval <ms>] [--json]
nodaro media save <url> [--filename <name>] [--type image|video|audio] [--watch] [--poll-interval <ms>] [--json]| コマンド | 内容 |
|---|---|
media download | YouTube、TikTok、Instagram、X、Facebook から、動画を自分のストレージにインポートします。--section は、秒単位で 1 つの時間範囲を取得します。--watch はリアルタイムの進行状況をストリーミングし、後でポーリングするジョブはありません。 |
media metadata | メディアの URL の長さ、サイズ、タイトルを、ダウンロードせずに読み取ります。 |
media trim-video | 開始時刻と終了時刻で動画をカットするか、最初または最後の秒数だけを残します。 |
media trim-audio | 動画またはオーディオファイルの音声をカットし、MP3、WAV、AAC のいずれかで保存します。 |
media add-captions | 動画に字幕を焼き込みます。字幕を参照してください。 |
media still-to-video | 1 枚の静止画と 1 つのオーディオファイルを、0 クレジットで MP4 にします。動画の長さはオーディオと同じなので、長さのオプションはありません。--motion は、静止画にアニメーションを付けます。 |
media slideshow | 2〜100 枚の画像から、0 クレジットで MP4 のスライドショーを作ります。オーディオを添えることもできます。 |
media collage | 2〜30 枚の画像を、1 枚の大きな画像に合成します。 |
media overlay | AI を使わず、最大 12 個のレイヤーを、ピクセル単位で正確にベース画像の上に配置します。 |
media overlay-placement | 1 つのレイヤーをどこに置くべきかを、ビジョンモデルに尋ねます。 |
media video-overlay | AI を使わず、20 クレジットで、1〜20 個のタイミング付き画像レイヤーを動画の上に配置します。 |
media save | メディアの URL を、画像、動画、オーディオファイルのいずれかとして、自分のストレージに保存します。 |
スライドショー
オーディオがある場合、スライドショーの長さはそのオーディオが決めます。--durations で固定した長さは比例して調整され、CLI がその旨を知らせます。オーディオがない場合、スライドショーは無音になり、長さは画像の枚数に --per-image を掛けたものになります。
コラージュ
--sizesは、画像の順番どおりに、各画像へ相対的なサイズのヒントを与えます。0は自動、1は大(幅がおよそ 2 倍)、2は中、3は小(幅がおよそ半分)です。サイズのヒントは、スマートレイアウトでのみ機能します。--numberedは、ストーリーボード用に、各画像の隅に 1 から始まる連番を付けます。--badge-positionは、その隅の位置を設定します。デフォルトのtop-leftまたはtop-rightです。ラベルの位置もここで決まります。--labelは、番号の後にキャプションを追加します。画像ごとに、順番に 1 回ずつ繰り返します。空の""は、その画像をスキップします。
画像オーバーレイ
- ベース画像の後に続く画像 URL は、画像レイヤーになります。
--anchor、--x、--y、--width、--opacityを共有し、透かしに向いています。 --layers-fileは、代わりにレイヤーの完全な JSON 配列を受け取ります。レイヤーごとのオプション、テキスト、QR コード、図形の種類です。- 配置は、ベース画像に対するパーセントで指定するので、1 つのコマンドで 1K のプレビューと 4K のレンダリングの両方に対応します。
- 繰り返し指定できる
--platformは、そのプラットフォームのサイズでも合成画像をレンダリングします。ベースのレンダリングは 10 クレジットで、プラットフォームごとに 2 クレジット追加されます。ジョブの出力には、追加のレンダリングがvariantsとして一覧表示されます。 overlay-placementは、同じパーセント単位で、アンカー、x、y、width、そして 1 行の理由を答えます。ポーリングするジョブなしで即座に答え、画像からテキストへの呼び出し 1 回分の料金がかかります。
動画オーバーレイ
--atは、画像 URL ごとに、順番どおりに 1 つ指定します。3は 3 秒目から最後まで、1.2-2.6は 1.2 秒から 2.6 秒までを意味します。--presetと--cornerは、URL として指定したすべての画像レイヤーに適用されます。--layers-fileは、代わりにレイヤーの完全な配列を受け取ります。レイヤーごとのボックス、不透明度、アニメーション、重なり順です。--base-fitと--background-colorには、--aspectが必要です。- ベース動画の音声は、変更されずに保たれます。
レイヤーのオプションについては、動画オーバーレイ(Video Overlay)ノードを参照してください。
字幕
nodaro media add-captions <videoUrl> [--text <text>] [--captions-file <file.json>] [--style subtitle|word-highlight|karaoke|tiktok-words|word-pop|bouncy] [--look outline|clean] [--position bottom|top|center] [--position-y <pct>] [--font-size <px>] [--font-family <name>] [--font-weight <100-900>] [--color <c>] [--background-color <c>] [--stroke-color <c>] [--stroke-width <px>] [--highlight-color <c>] [--uppercase|--no-uppercase] [--max-words-per-line <1-20>] [--animate|--no-animate] [--no-auto-transcribe] [--transcribe-provider elevenlabs-stt|incredibly-fast-whisper|whisper] [--segments-file <file.json>] [--watch] [--poll-interval <ms>] [--json]media add-captions には、字幕を追加(Add Captions)ノードと同じく、2 種類のスタイルがあります。
| スタイル | 表示内容 |
|---|---|
subtitle | 単語のアニメーションのない、静的な字幕です。 |
word-highlight、karaoke、tiktok-words、word-pop、bouncy | 単語ごとにアニメーションする、キネティック字幕です。word-highlight、karaoke、bouncy は、1 行ずつ保持して表示します。 |
字幕のテキスト
subtitleでは、--textは動画全体を通して 1 つの静的なブロックとして焼き込まれます。文字起こしに置き換えられることはありません。発話に字幕を付けるには、--textを省略します。- キネティックスタイルでは、
--textは、文字起こしが何も返さなかったとき、または--no-auto-transcribeを渡したときのフォールバックにすぎません。 --captions-fileは、単語のタイミング付きエントリーの JSON 配列[{ text, startMs, endMs }]で、キネティックスタイルでは単語ごとに 1 エントリーです。nodaro audio transcribeの結果のwordsは、そのままの形で使えます。このファイルは--no-auto-transcribeと組み合わせます。--segments-fileは、時間範囲ごとに、独自のスタイル、ルック、位置を与えます。範囲が重なってはいけません。
スタイリング
- スタイリングのオプションは、
subtitleにもスタイルを適用します。--look、--font-family、--font-weight、--stroke-color、--stroke-width、--uppercase、--position-y、--max-words-per-lineです。スタイルを適用したsubtitleは、キネティックスタイルと同じ料金になります。何も適用しないsubtitleは、低いほうの料金のままです。 --highlight-colorと--animateは、キネティックスタイルでのみ機能します。subtitleでは拒否されます。--animateは、デフォルトでオンです。--no-animateは、各単語の動きを止めますが、グルーピングとハイライトの色は保ちます。--lookを指定しない場合、キネティックスタイルはoutlineで、subtitleはcleanでレンダリングされます。--max-words-per-lineは、1 つの字幕行、またはtiktok-wordsの 1 ページに表示する単語数を、1〜20 の範囲で制限します。フレーム幅、文の終わり、0.5 秒以上の間も、行の区切りになります。1〜2 語にすると、テンポの速いインパクトのある字幕になります。未設定のままにすると、幅いっぱいに表示します。--textを指定したsubtitleでは、行の区切りだけを設定し、word-popには影響しません。- キネティックスタイル、またはスタイルを適用したレンダリングは、ソースのフレームレートを、15〜60 fps の整数として保ちます。可変フレームレートまたは非常に長いソースは、30 fps でレンダリングされます。
文字起こしエンジン
--transcribe-provider は、発話を文字起こしするエンジンを選びます。キネティックスタイルには単語のタイミングが必要で、デフォルトの incredibly-fast-whisper、または elevenlabs-stt を使います。subtitle はフレーズのタイミングだけで足りるので、whisper もそこで使えます。
オーディオ
nodaro audio separate --audio <url> [--mode vocal_instrumental|stems] [--quality auto|fast|best] [--watch] [--poll-interval <ms>] [--json]
nodaro audio isolate --audio <url> [--watch] [--poll-interval <ms>] [--json]
nodaro audio fx --audio <url> [--preset <preset>] [--mix <0-100>] [--delay <20-2000>] [--decay <0-1>] [--eq-low <db>] [--eq-high <db>] [--watch] [--poll-interval <ms>] [--json]
nodaro audio mix --audio <url> --audio <url> ... [--volumes <csv>] [--watch] [--poll-interval <ms>] [--json]
nodaro audio adjust-volume --audio <url>|--video <url> [--volume <0-200>] [--normalize] [--fade-in <sec>] [--fade-out <sec>] [--watch] [--poll-interval <ms>] [--json]
nodaro audio combine --segment <url[@a-b]> --segment ... [--watch] [--poll-interval <ms>] [--json]
nodaro audio transcribe --audio <url> [--provider elevenlabs-stt|incredibly-fast-whisper|whisper] [--language <code>] [--diarize] [--tag-audio-events] [--word-timestamps] [--watch] [--poll-interval <ms>] [--json]| コマンド | 内容 | ノード |
|---|---|---|
audio separate | ボーカルをインストゥルメンタルから分離するか、ステムに分離します。 | 音源分離(Audio Separation) |
audio isolate | 声を残し、それ以外を取り除きます。 | 音声抽出(Voice Extractor) |
audio fx | ミックス、ディレイ、ディケイ、イコライザーの設定で、エフェクトのプリセットを適用します。 | オーディオ FX(Audio FX) |
audio mix | トラックごとに音量を設定して、複数のトラックをミックスします。 | オーディオをミックス(Mix Audio) |
audio adjust-volume | 音量を変更し、ノーマライズし、フェードインまたはフェードアウトします。 | 音量調整(Adjust Volume) |
audio combine | セグメントを順番につなげます。url@a-b は、ファイルの 1 つの時間範囲を指定します。 | オーディオを結合(Combine Audio) |
audio transcribe | 発話をテキストにします。 | 文字起こし(Transcribe) |
これらは、ボイスチェンジャー Pro が組み合わせて使っている構成要素で、単独でも使えます。
文字起こしエンジン
| エンジン | 単語のタイミング | ほかにできること |
|---|---|---|
elevenlabs-stt | 常に返します | --diarize(誰がいつ話しているか)と --tag-audio-events |
incredibly-fast-whisper | --word-timestamps を付けると返します | |
whisper | 返しません。フレーズ単位のセグメントのみです。--word-timestamps は、クレジットが使われる前に拒否されます |
--provider を省略すると、whisper エンジンが実行されます。単語のタイミングが必要なときは、必ずエンジンを指定してください。
完了したジョブの output_data には、text、words(単語ごとに 1 エントリー、ミリ秒単位)、json(正規化された文字起こし、こちらもミリ秒単位)が含まれます。トップレベルの segments リスト(秒単位)は、whisper と incredibly-fast-whisper にのみ存在します。elevenlabs-stt は返さないので、words を読み取ってください。キネティックスタイルでレンダリングするには、words を media add-captions --captions-file に渡します。
編集
edit のコマンドは、ポッドキャストや長い動画のための、編集用の構成要素です。
nodaro edit silence-detect <audioUrl> [--threshold-db=-35] [--min-silence-ms <ms>] [--pad-ms <ms>] [--watch] [--poll-interval <ms>] [--json]
nodaro edit audio-sync (--source <[id=]url> ... | --sources-file <file.json>) [--reference <id>] [--watch] [--poll-interval <ms>] [--json]
nodaro edit apply-edl --edl <file.json> [--transcript <file.json>] [--source <url> ...] [--output video|audio] [--quality proxy|final] [--crossfade-ms <ms>] [--watch] [--poll-interval <ms>] [--json]
nodaro edit plan --mode tighten|clips|chapters --plan-tier economy|standard|premium --transcript <file.json> (--source <url[@audio|@video]> ... | --sources-file <file.json>) [--silence <file.json>] [--instructions <text>] [--style-guide <text>] [--count <n>] [--target-duration-sec <n>] [--target-aspect 16:9|9:16|1:1|4:5] [--platform <name>] [--watch] [--poll-interval <ms>] [--json]| コマンド | 内容 | ノード |
|---|---|---|
edit silence-detect | 録音の中の無音の部分を見つけます。 | 無音検出(Silence Detect) |
edit audio-sync | 同じ出来事を収録した 2〜6 本の録音(オーディオまたは動画)の位置をそろえます。 | 音声同期(Audio Sync) |
edit plan | 文字起こしから編集を計画します。テンポを詰める、クリップを切り出す、チャプターを付けるのいずれかです。 | 編集プラン(Edit Plan) |
edit apply-edl | 編集決定リスト(EDL)を、動画またはオーディオファイルとしてレンダリングします。 | EDL 適用(Apply EDL) |
edit audio-sync は、id=url の形で ID を指定しない限り、録音に source-1、source-2 のように名前を付けます。その output_data.json には、3 つのフィールドがあります。
reference:ほかの録音がそろえられる基準となる録音です。--referenceで選びます。offsets:録音ごとに 1 エントリーで、sourceId、offsetMs、confidence、driftMsPerHourを持ちます。notes:位置合わせについての備考です。
録音内のある時刻は、referenceMs = sourceMs + offsetMs で基準の時刻に変換されます。
よくある質問
関連ページ
コマンド
例
ボイスチェンジャー Pro
字幕を追加
文字起こし
最終更新