

ここまでの動画は、実はずっと無音でした。
映像の質が同じでも、音の有無で「学生の課題」と「番組」くらい印象が分かれます。このレッスンでは、効果音・BGM・ナレーションの3層を順に乗せます。
ありがたいことに、3層とも追加の編集ソフトは不要です。効果音とBGMは無料のコマンド(ffmpeg)で合成し、ナレーションはAI音声で生成して、すべてRemotionのコードに「この秒数でこの音を鳴らす」と書くだけです。
音の設計図:3層構造
先に全体像です。完成形の音は3層でできています。
| 層 | 中身 | 音量の目安 |
|---|---|---|
| ナレーション | 字幕と同じ文の読み上げ | 0.95(主役) |
| 効果音 | ポップ・スウッシュ・チャイム | 0.5〜0.7 |
| BGM | 静かなループ | 0.5、ナレーション中は0.2 |

音量は「1.0が最大」の比率です。この比率をそのままAIに渡せば、ミキシングの知識がなくても破綻しません。
第1層:効果音は3種で足りる
解説動画に必要な効果音は、突き詰めると3種類です。
- ポップ音:ピルやカードが登場する瞬間の「ポンッ」
- スウッシュ:シーン切替のワイプに合わせる「シュッ」
- チャイム:タイトルと締めで鳴る柔らかい鐘
フリー音源を探しても良いのですが、ライセンス確認が地味に面倒です。私はffmpegで合成しました。ffmpegは動画・音声を扱う無料の定番ツールで、Macなら brew install ffmpeg で入ります。
たとえばポップ音はこの1行です。
ffmpeg -f lavfi -i "aevalsrc=0.5*sin(2*PI*(620+520*t*9)*t)*exp(-t*26):d=0.18" pop.wav
呪文に見えますが、中身は「周波数が一瞬で上がるサイン波を、急速に減衰させる」という指定です。
音程が上がる=ポップで明るい、急減衰=歯切れがいい。物理の式がそのまま音の性格になっています。
もちろん、この式を書いたのはAIです。私が出した指示はこれだけでした。
解説動画用の効果音をffmpegで合成して。
1. ピルが弾む瞬間のポップ音(明るく短く)
2. ワイプ切替のスウッシュ(風が抜ける感じ)
3. タイトル用の柔らかいチャイム(鐘2音、長めの余韻)
それぞれwavで保存。耳に刺さらない音量で。
音作りまでVibe Codingでできます。気に入らなければ「もっと低い音に」「余韻を短く」と言葉で直せます。
第2層:BGMは「邪魔をしない」が正義
BGMの役割は沈黙を埋めることで、主張することではありません。私はコード4つ(C→G→Am→F)の柔らかいパッドの8秒ループを、これもffmpegで合成して低音量で敷きました。
BGMをffmpegで合成して。
C→G→Am→Fのコード進行、各2秒、柔らかいパッドの音色。
高音を削って(ローパス1800Hz)、8秒ループを動画の長さぶん連結。
冒頭1.5秒でフェードイン。
「高音を削って」が品質の分かれ目です。合成音の安っぽさは主に高音域に出るので、ローパス(高音カット)をかけるだけで耳あたりが激変します。
そしてRemotion側では、音量を時間の関数で書けます。
<Audio src={staticFile("bgm.wav")}
volume={(f) => /* ナレーション中は0.2、それ以外は0.5 */} />
「ナレーションが鳴っている間だけBGMを下げる」処理(ダッキングと呼びます)も、この仕組みで1行です。

第3層:ナレーションはElevenLabsで
仕上げはナレーションです。私は ElevenLabs を使っています。
ElevenLabs: https://elevenlabs.io
テキストを送ると音声が返ってくるサービスで、日本語の自然さは現時点で頭ひとつ抜けています。無料枠(月1万文字)でも、この長さの動画なら20本分は読めます。
手順を、つまずきポイントごと書きます。
手順1:登録してAPIキーを発行する
サイト左下のアカウントメニューから「API Keys」へ進み、キーを作成します。
ここで注意がひとつ。最近のキーは機能ごとに権限を絞れるようになっています。読み上げ(Text to Speech)の権限は必ずオンにしてください。私は権限不足のキーで「401エラー」を出して10分悩みました。
手順2:キーを .env ファイルに保存する
ELEVENLABS_API_KEY=(発行されたキー)
コードに直書きしない。チャットにも貼らない。入門編で学んだ鉄則です。.env はGitの管理外に置きます(「.envをgitignoreに入れて」とAIに頼めば確実です)。
手順3:字幕の文をそのまま台本にして、シーンごとに音声を生成する
.envのElevenLabsキーを使って、各シーンの字幕文を
シーンごとのmp3にして。モデルはeleven_multilingual_v2、
話速は1.05倍。ファイル名はシーン名と揃えて。
台本は字幕と同じ文にするのがコツです。耳と目に同じ情報が来ると、視聴の負荷が下がります。
逆に字幕と違うことを喋らせると、視聴者は両方読もうとして両方落とします。
尺合わせ:いちばん地味で、いちばん大事
実体験から、最重要の注意を。
生成した音声がシーンの尺より長いと、尻切れになります。私は1シーンだけ0.6秒はみ出し、文を1割短くして録り直しました。
防ぎ方は機械的です。生成後に各ファイルの秒数を一覧して、シーン尺と突き合わせます。
生成した音声ファイルの長さを一覧にして、
各シーンの尺(秒)と比べて。はみ出すものがあれば
台本を短くして録り直して。
目安として、5秒のシーンに入る日本語は25字前後です(話速1.05倍のとき)。レッスン3の「字幕は28字以内」という規律は、実はこの尺合わせの伏線でした。
自分の声を育てる:ボイスクローン
ここから先は、私自身も進行中の話です。
ElevenLabsにはボイスクローン(自分の声をAIに学習させる機能)があります。自分の声で読み上げ音声を作れるようになるもので、私はいま、診療の合間に録音を重ねて自分の声を育てている最中です。
ElevenLabs Voice Cloning: https://elevenlabs.io/voice-cloning
種類は2つあります。
- Instant Voice Clone:数分の録音でそれらしい声ができる。手軽だが似方はそこそこ
- Professional Voice Clone:30分以上の録音から高精度の声を作る。本人と区別がつきにくいレベル
紹介動画のナレーションが「本人の声」になると、SNSでの信頼感がまったく変わります。視聴者はあなたの顔と声を知っているからです。
おすすめの順路は、既製の声で運用を始めて、並行して自分の声を録りためて、育ったら差し替える。コード動画なら、声の差し替えは音声ファイルの置き換えだけで済みます。
ひとつだけ、はっきり書いておきます。ボイスクローンは自分の声だけに使ってください。他人の声の複製は、本人の明確な同意がない限り絶対にしてはいけません。医療者は声も信用の一部です。扱いは慎重に。

今日のまとめ
3行で振り返ります。
- 音は3層(ナレーション0.95/効果音0.5〜0.7/BGM0.5、ナレーション中0.2)。比率を渡せば破綻しない
- 効果音もBGMもffmpegで自作できる。ローパスで高音を削ると安っぽさが消える
- ナレーションはElevenLabs。台本は字幕と同文・5秒25字・生成後に尺確認。声はいずれ自分のボイスクローンへ
次は最終レッスン。1本作った型を「量産体制」に変えます。2本目が20分になった種明かしです。
演習(30分)
レッスン4までの動画に音を乗せます。
- AIに効果音3種とBGMをffmpegで合成してもらう
- ElevenLabsに登録し、APIキーを
.envに保存する(無料枠で十分です) - 字幕文を台本に、シーンごとのナレーションを生成して尺を確認する
- 3層の音量比(0.95/0.6/0.5→0.2)で動画に乗せ、レンダリングして聴き比べる
完成したら、無音版と並べて再生してみてください。音の有無でどれだけ印象が変わるか、体感するのがこの演習の目的です。
参考・出典
- ElevenLabs: https://elevenlabs.io
- ElevenLabs Voice Cloning: https://elevenlabs.io/voice-cloning
- ffmpeg: https://ffmpeg.org
