PR
AIで記事作成を効率化したいなら → 高品質SEO記事生成AIツール【Value AI Writer byGMO】
※本記事は2026年9月、AIエージェント基盤「OpenClaw」上で実際に制作した動画の記録です。API料金は変動するため参考値としてお読みください。
こんにちは!Conomacです。
前回の記事『ブログ画像3枚からYouTubeショート動画を全自動で作る方法』では、ブログ画像からBGMとテロップ付きのショート動画を自動生成してYouTubeへ投稿するところまで作りました。ただし、あれは無音のナレーションなし動画です。
今回はその続編として、「AI美少女に喋らせる」ところまで進めました。画像を動かし(画像→動画生成)、日本語音声を合成し、口の動きを音声に合わせる(リップシンク)。さらに途中で音声エンジンをVOICEVOXに差し替えて、読み上げの自然さを比較しています。
今回つくったもの
- 9:16の縦型ショート動画(1080×1920 / 約9秒 / h264+aac)
- 構成:①リップシンクで喋る導入 → ②画像→動画で動く嵐山 → ③静止画ズームの祇園+誘導テロップ
- 音声:日本語の女性ボイス(VOICEVOX 春日部つむぎ)
- 投稿:YouTube Data APIで公開投稿まで自動
使った素材は、ブログ記事(京都・伏見稲荷×嵐山×祇園の旅コーデ3選)で使っているAIイラスト3枚だけです。
処理の流れ(全7ステップ)
| # | 工程 | 使ったもの | ポイント |
|---|---|---|---|
| 1 | 素材画像の準備 | ブログのAIイラスト3枚 | 1024×592のイラスト |
| 2 | 画像→動画(i2v) | fal.ai wan-25-preview/image-to-video | 720p・5秒。プロンプトで「髪が揺れる」等を指定 |
| 3 | 音声合成(TTS) | fal.ai kokoro/japanese → VOICEVOX ENGINE(ローカル) | 最初はクラウド、後にローカルへ移行 |
| 4 | リップシンク | fal.ai sync-lipsync | 最初のカットだけに適用してコスト削減 |
| 5 | BGM生成 | fal.ai ace-step | 著作権フリーのオリジナルBGM |
| 6 | 編集(9:16化・テロップ) | ffmpeg + MoviePy(Python) | テロップはPillowで描画して重ねる |
| 7 | YouTube投稿 | YouTube Data API(resumable upload) | privacyStatus: public・説明欄冒頭にブログURL |
実測コスト:動画1本あたり約160円
「AI動画は高い」という印象がありますが、工程を分けて必要なところだけクラウドを使うと、この規模なら1本160円前後に収まります。実際の単価と使用量は以下のとおりです。
| 項目 | サービス/モデル | 単価 | 今回の使用量 | 実測 |
|---|---|---|---|---|
| 画像→動画 | fal.ai wan-25-preview/image-to-video | $0.10/秒(720p) | 5秒 × 2本 | $1.00 |
| 音声合成(本番) | VOICEVOX ENGINE 0.25.2(ローカル) | 無料 | 3セリフ | $0 |
| リップシンク | fal.ai sync-lipsync | $0.70/分 | 約1.8秒 | 約$0.06 |
| BGM | fal.ai ace-step | $0.0002/秒 | 10秒 | 約$0.002 |
| 参考:音声合成(比較用) | fal.ai kokoro/japanese | $0.02/回 | 3セリフ | $0.06 |
| 合計(本番のみ) | 約$1.08(約160円) | |||
| 合計(試行錯誤込み) | 約$1.26(約180円) |
ポイントは「リップシンクを全編に使わない」こと。今回は喋るのが最初の1.8秒だけなので、その区間だけ適用しています。仮に10秒全部をリップシンクにすると、それだけで数ドル規模になります。
音声を聴き比べ:kokoro vs VOICEVOX
同じ映像・同じセリフで、音声エンジンだけを差し替えた比較動画を用意しました。まずは聞き比べてみてください。
① クラウドTTS(fal.ai kokoro/japanese)版
セットアップ不要で、APIを1回叩くだけで日本語音声が出ます。1回$0.02。ただし「ねぇ、早く早く!」の読みが不自然で、アクセントの調整もできませんでした。
② VOICEVOX(春日部つむぎ)版
ローカルの音声合成エンジン。エンジンのダウンロードは約1.8GB必要ですが、生成は無料・何回でも作り直せるうえ、後述のとおりアクセントを数値レベルで調整できます。
| 比較項目 | fal.ai kokoro/japanese | VOICEVOX ENGINE(ローカル) |
|---|---|---|
| セットアップ | APIキーのみ(即日) | エンジン約1.8GBをダウンロード |
| コスト | $0.02/回 | 無料(何回でも) |
| 声の種類 | 5種類(jf_alpha 等) | 多数のキャラクター+スタイル |
| 読み・アクセント調整 | 不可(文章を工夫するのみ) | 可(ピッチを直接編集できる) |
| 日本語の自然さ | やや不自然な箇所あり | 自然(日本語向けに作られている) |
| 用途の向き | 試作・少量・サーバー実行 | 作り込み・量産 |
結論としては、試作はkokoro、本番はVOICEVOXが現実的でした。VOICEVOXは無料なので、音声を作り直すたびにコストが発生しないのも大きいです。
VOICEVOXの読みを「数値で」直した話
VOICEVOXにしたあとも、2か所だけ読みが気になりました。ここは感覚ではなく数値で確認しながら修正しています。同じ悩みを持つ方の参考になれば幸いです。
① 「早く早く」の2つ目が小さく聞こえる
「ねぇ、早く早く!」と一続きで書くと、VOICEVOXはこれを1つのアクセント句として処理し、後ろの「早く」が弱くなります。実際にモーラ単位で音量(RMS)を計測すると、1つ目と2つ目で約2倍の差がありました。
| 読み上げ方 | 1つ目の「早く」 | 2つ目の「早く」 |
|---|---|---|
| 「ねぇ、早く早く!」(一続き) | 0.065 | 0.030 |
| 「ねぇ、早く! 早く!」(句切り) | 0.0554 | 0.0591 |
対策はシンプルで、「!」で区切って別のアクセント句にするだけ。これで両方にアクセントが付き、音量もほぼ揃います。
② 「見てね」のアクセントが「み」に付く
「ブログを見てね!」が「みてね」と頭にアクセントが付いてしまう問題です。VOICEVOXは、/audio_queryが返すモーラごとのピッチ(音の高さ)の配列をそのまま合成に使うため、この配列を直接書き換えればアクセントを意図どおりに作れます。
| み | て | ね | |
|---|---|---|---|
| 補正前 | 6.01(ピーク) | 6.02 | 5.86(下がる) |
| 補正後 | 5.73 | 5.85 | 6.33(ピーク) |
ピッチを上げると声が細くなって音量が落ちるため、モーラ区間ごとにRMSを測って音量も揃える処理をセットで行っています。この調整はAPI呼び出しを伴わないので、コストはゼロ。何度でも作り直せます。
つまずいたポイント(同じ道を通る人向け)
- AIが提案したモデル名を鵜呑みにしない:生成AIは存在しないモデル名(例:「Wan 3.0 Prime」「MiniMax H3 Max」)を自信満々に挙げてきます。fal.aiでは
https://fal.ai/models/<slug>が200なら実在、404なら存在しません(実際に全部404でした)。 - リップシンクは「動画+音声」が必要:
sync-lipsyncは静止画を直接喋らせることはできず、video_urlとaudio_urlの両方が必須です。つまり先に画像→動画を作る必要がある点に注意。 - YouTubeのOAuthスコープ:
youtube.uploadだけでは動画一覧の取得や削除ができません(403)。「後から非公開にする・消す」運用はできないので、テスト投稿は最初から公開前提で計画しましょう。 - リフレッシュトークンは7日で失効することがある:Google CloudのOAuth同意画面が「テスト」状態だと7日で切れます。本番ステータスに変更しておくと安定します。
まとめ
- 画像3枚から「喋る縦型ショート」を、1本約160円・全工程自動で作れるようになりました。
- 音声はクラウド(kokoro)で始めて、本番は無料のVOICEVOX(ローカル)に移すのがコスパ最強です。
- 読みの不自然さは、アクセント句の分割とピッチ配列の直接編集で無料で詰められます。
- コストを抑えるコツは「高い工程を必要な秒数だけ使う」。今回でいえば、リップシンクを最初の1.8秒だけに絞ったのが効いています。
今後は、複数本の量産や、投稿タイミングの自動化も試していく予定です。質問やリクエストがあれば、Xやコメントで教えてください!
PR・広告
音声の聴き比べをするなら
読み上げ音声の聴き比べや編集には、モニターヘッドホンがあると便利です。
関連記事
🐍 あわせて読みたい: PythonでWordPressのREST APIを操作する|記事の一括更新と、403で止まらないための書き方
🎬 あわせて読みたい: NotebookLMのスライドを旅のしおり記事に自動変換|画像OCR×ファクトチェック二重検証の全手順
ブログ画像3枚からYouTubeショート動画を全自動で作る方法|BGM生成×テロップ×YouTube API連携の全手順
Fal.aiのFLUX+LoRAにWikimedia CommonsのPD写真を参照させる
今回使用したブログ記事(メインサイト): 🍁 古都で美少女が大変身!京都・伏見稲荷×嵐山×祇園の旅コーデ3選