講義ノート → ナレーション付き講義動画
あなたが書くファイルは一つだけ:スライド、図、ナレーションをすべて含む Beamer lecture.tex ファイルです。 バンドルされたスクリプトが残りのすべて(インストール、LaTeX → PNGページ → テキスト読み上げ → ffmpeg → MP4)を行うので、コストは講義あたり約一つの長めの回答です。後で編集するときは、変更された行だけが再合成されます。
クイックスタート:パイプライン全体
すべてのステップは一つのコマンドで行います: python3 <skill-dir>/scripts/lv.py <command>。ここで <skill-dir> はこのファイルが含まれるフォルダの絶対パスです(Windows では python3 の代わりに py -3 を使用)。以下では、lv はそのコマンド全体の省略形です。実際に入力するときは毎回フルで記述してください。シェル変数は通常、あなたのコマンド間で永続化しないためです。
lv setup # 0. 一度だけのインストール;10分のタイムアウトを設定するか、バックグラウンドで実行
lv init PHYS101-L05 # 1. ワークフォルダ(WORK)を出力し、テンプレートをコピー
lv ingest notes.pdf --out WORK # .pdf .png .jpg .heic .md .txt の任意の組み合わせ;複数ファイルでも可
# ノートを読む(§1)、計画する(§2)、WORK/lecture.tex を書く(§3-4)
lv check WORK/lecture.tex # 2. コンパイル + 番号付きコンタクトシート + レイアウト警告、音声なし
lv render WORK/lecture.tex # 3. -> WORK/PHYS101-L05.mp4(または出力パスを指定)
- ステップ0ですべてをインストール(uv、プライベートPython 3.12、動作するLaTeXがない場合のみTinyTeX、ffmpeg、Kokoro音声)し、ユーザーキャッシュに保存します:高速回線で約3分、低速回線で最大10分、管理者権限は不要です。冪等です:すでに完了している場合は数秒で終了し、中断された場合は再実行で再開します。ユーザーには一度だけのインストールであることを伝えてください。
[setup] READYで始まる行で終了します。それ以外の終了はエラーであり、メッセージまたは references/troubleshooting.md に修正方法が記載されています 。lv doctorで何も変更せずにインストール状況を表示します。他のコマンドも、セットアップが不足している場合は自動的に実行します。 - パイプラインを各ステップで確認せずにエンドツーエンドで実行します。実際の障害(開けないノート、管理者パスワードが必要なセットアップ手順、動画を変更するような曖昧なリクエスト)があった場合のみ停止します。
- WORK はデフォルトで
./lecture-videos/<name>(またはユーザー設定のwork_root)です。ユーザーが指定した場所にMP4を置きます。それ以外の場合は WORK のデフォルトで問題ありません。WORK は保持します:.tex、トランスクリプト、音声キャッシュにより、後で編集するコストが低くなります。
1. まず自分でノートを読む
ingest は WORK/source.txt(テキストレイヤー付きページ)、WORK/manifest.tsv(各ページの読み取り方法)、目視確認が必要なページのフルサイズ画像(WORK/pages/)、およびさっと見シート(WORK/glance-*.jpg、6ページずつ)を書き出します。
- すべてのさっと見シートを見る。これらは、テキスト抽出では見逃される余白の注釈、ハイライト部分、図を、シートあたり約1フルページ分のトークンコストでキャッチします。シートにタイプ打ちページへの手書きや注釈が表示されている場合は、
--visual 3,7-9を指定して再実行し、それらのページをフルサイズで取得します。 - 手書きまたはスキャンページ(
[handwritten/scanned]、[image])はフルサイズで読む必要があります:そのような画像をすべて開き、WORK/transcript.mdに内容を順番に書き出します。数式はLaTeXで記述し、各図については軸、ラベル、キーナンバーの一行説明を記述します。判読できないものは、でっち上げずに[illegible]とマークします。手書きノートは多くの場合ユーザー自身の講義ノートであるため、一次ソースとして扱います。画像を表示できない場合は、そのことを伝え、推測する代わりにタイプ版を依頼します。 - 図を含むタイプ打ちページ(
[has figure]):さっと見シートで読み取れない値やラベルがある場合のみ、フルサイズ画像を開きます。 - 以降は
source.txt+transcript.mdのみから計画し、画像を再読み取りしません。 .docx、.pptxまたは.keyのノート:最初にPDFにエクスポートしてから(例:LibreOfficesoffice --headless --convert-to pdf)、PDFをインジェストします。
読み取り中に、ノートの誤りや不整合(数字のタイプミス、ラベルの入れ替えなど)に注意してください。動画では正しい値を使用し、各修正箇所を最終レポートにリストアップします。
1b. 信頼できる情報源からギャップを埋める
ノートはしばしば簡潔です:導出ステップの省略、定義される前に使われる用語、説明のない図。学生を混乱させる可能性があり、かつウェブアクセスが可能な場合は、適切なレベルの明確な説明を求めて簡単に検索します(2〜5の的を絞ったクエリ、文献レビューではありません):大学の講義ノートやOCW、LibreTexts、標準的な教科書、大学院レベルのポイントについてはレビュー記事。ノートの表記法と一致する情報源を優先します。矛盾する場合はノートに従い、違いに言及します。追加は短く、ノートの内容に役立つ範囲にとどめ、まずは学部生向けに、オプションで大学院レベルのコメントを付け、使用した情報源を最終レポートにリストアップします。講義がカバーしていないトピックは追加しません。
2. 書く前に計画する(頭の中で、または数行で)
- 長さ:ユーザーが別の長さを指定しない限り、約10分(9〜11分)を目指します。深さがカバレッジに勝ります:ノートに10分でステップを飛ばさずに説明できる以上の内容がある場合は、核となる部分を徹底的にカバーし、省略した内容をユーザーに伝え、パート2を提案します。ナレーションの予算は、ターゲットの長さに対して 約155語/分、確認問題1つあたり15秒を差し引く(デフォルトの音声は約165語/分;行間のポーズで残りを使用)。10分間の動画 ≈ 1,350語 + 4つの確認問題(実測値:1,481語 + 4確認問題 = 9.9分)。
- 流れ:タイトル → 動機 → ノートの順序で概念 → 計算例 → まとめ。フレームごとに一つのアイデア、フレームごとに1〜5のオーバーレイステップ、合計約40〜70ページ。
- 論理の連鎖:推論の連鎖を番号付きステップとしてリストアップします(何を仮定し、何が続き、なぜか)。すべての導出は、開始原理から結果まで省略されたステップなしで進みます:各代数操作は独自の行を持ち、各仮定はそれが使用される場所で述べられ、各新しい記号はそれが現れる前に定義されます。ノートが「…と示せる」のように飛躍する場合は、ギャップを埋めます(§1b)。学生は「それはどこから来たのか?」と尋ねる必要があってはなりません。
- 視覚資料が講義を伝える:言葉の前に絵を計画します。すべての概念フレームには視覚資料が必要です:図、プロット、または物理モデル(原子、格子、質量収支のタンクとパイプの図、てこ則のためのてこ)。記号が物理的に何を表しているかを示し、単に数式だけを示すのではありません。すべての図はオリジナルのTikZ/pgfplotsとして再描画します(配布資料の画像を貼り付けない)。図をオーバーレイで段階的に構築し、動きがポイントとなる場所では3〜6の短いアニメーションを使用します(冷却経路、掃引タイライン、滑る転位)。パターン:references/visual-cookbook.md。
説明の仕方(これが動画を見る価値を生み出します)
- 良いチューターのように話し、教科書のようには話さない。 日常的な言い回し(「つまり」、「ここがコツ」、「こんな風に考えてみて」)、短い文、そして「何を」の前に「なぜ」を述べます。混乱を予測します(「これは最初は逆に見えますが、なぜそうではないかを説明します」)。
- 重要な方程式はすべて2回説明する:
- 数学的に:どこから来たのか、ステップごとに、各項が何であるか。
- 物理的/直感的に:現実のシステムで何を意味するのか、類推や極限の場合を用いて(「cがちょうどc′にある場合、合金はすべて液体であり、公式は正確にそれを与える」)。両方を画面に表示します:数式の行、次に一行の「物理的に:」という注釈または図。
- 各導出の後、簡単な健全性チェックを声に出して行います:単位、極限の場合、または図からの数値。
- 確認問題:10分あたり3〜5個、テストする概念の直後に配置します(§4)。
3. WORK/lecture.tex を書く
init はすでに assets/template.tex を WORK/lecture.tex にコピーしています。これによりすべての構造が示されています。サンプルフレームを講義の内容に置き換えます。重要なルール:
\usepackage{lecturevideo}はテーマ(アイボリーの紙、濃いインク、一つの赤いアクセント、または設定されている場合はユーザー自身のブランディング)、パレット(accent、ink、mute、blu、grn、gold)、図のスタイル(pd軸、dot、lab、note、tie、atom、atomA、atomB)、およびナレーションコマンドをロードします。講義内でテーマのスタイルを変更しないでください。- ナレーション:
\say<n>{...}、オーバーレイページnごとに一つ、フレームの上部に配置します。\say<2-13>{...}はアニメーションのスパンをナレーションします。\wait<n>{2}はページを無音で保持します。すべてのページに一つ必要です;レンダラーは欠落しているページを報告します。 - 話し言葉は平易な英語:数字や記号は単語で(「forty six percent」「T three」「seven hundred seventy nine degrees」「alpha plus beta」)。
\say内にLaTeXや%、&、#、$は入れません。何を見るか(「ドットを見て」「タイラインに注目」)、次にそれがなぜ重要かを言います。スライドのテキストを一字一句読み上げるのではなく、展開します。 - スライドは実際の説明を伝える。 一時停止、巻き戻し、またはPDFから復習する視聴者が、スライドだけから理解できるようにします。各視覚資料の横に、最大約15語の箇条書きを3〜5個配置します(キーファクト、条件、結果、物理的意味)。導出では、各ステップを独自の行として、短い理由を横に付けて表示し(「Bの質量収支」、「Wで割る」)、ナレーションがそこに到達したときに明らかにし、アクセントカラーで「物理的に:」の行で締めくくります。導出に6行以上必要な場合は、詰め込むのではなく、次のフレームに続けます(最後の行を上部で繰り返します)。
- レイアウト:視覚資料を片側(約55%)、テキストをもう一方の側(
columns)、または視覚資料を上部に、2〜3行を下部に。アカデミックで雑然としていない:フレームごとに一つのアイデア、アクセントカラーは強調のみ、結果と状態マーカー。 #1を取る図マクロはプリアンブルに配置します(フレーム本文内の#はbeamerを壊します)。- 講義に必要な任意のLaTeXパッケージ(
siunitx、chemfig、…)は使用可能です;プライベートTinyTeXが使用されている場合、不足しているパッケージは最初のコンパイル時に自動的にインストールされます。
4. 試験形式の確認問題
\examq[5]{確認問題:てこ則}
{スライドの問題}{話す問題}{スライドの答え}{話す答え}
これにより、1ページの質問ページ(ナレーション付き、次に「5秒あります。」)、5秒の無音カウントダウンページ(縮小するリング付き)、および1ページの答えのナレーションページが生成されます。
この講義に関する実際の試験のように問題を書きましょう:具体的な与えられた数値、一つの明確なタスク、動画を見た人が約30秒で答えられるもの、短い計算過程付きの答え。タイプを混ぜましょう:
- 計算:「Bを35 wt.%含む合金がT₃、c′ = 20、c″ = 85のとき:液相の割合は?」
- 図を読む:「20 wt.% Agの合金が900 °Cにあります。どの相で、おおよその組成は?」
- 予測:「5 wt.% Agの合金が800 °Cから500 °Cにゆっくり冷却されます。何が形成され、どこに?」
- 識別/分類:「液体 → α + β が一つの温度で起こる:これはどの不変系反応?」
- 誤りを見つける:「学生が固相分率にタイラインのc″ − cを使用しました。何が間違っていますか?」
漠然としたプロンプト(「相とは?」)、ノートで教えられていないトリビア、および複数部分からなる質問は避けます。答えは結果だけでなく、推論のステップを示さなければなりません。動画が示したばかりの図や方程式から数値を取ることで、質問、図、答えが一致します。よくある誤解に基づく質問が効果的です(「ピン間隔を半分にするとソース応力は2倍になる:正しいか誤りか?」)。5秒のカウントダウンを維持します(スライドには「もっと時間が必要な場合は一時停止してください」と表示);ユーザーがより長いポーズを要求した場合のみ \examq[8] を使用します。
5. チェックしてからレンダリング
lv check WORK/lecture.tex
コンパイルし、ページ数、ナレーション単語数、推定時間、および layout: 警告(コンテンツが高すぎる、または行が広すぎる、ソース行番号付き)を出力し、番号付きコンタクトシート WORK/lecture_build/sheet-*.png を書き出します。シートを見て、衝突、クリップされたラベル、曲線から外れたマーカー、空のフレームがないか確認します;修正して再実行します(低コスト)。画像を表示できない場合は、すべての layout: 警告を修正し、図をシンプルに保ちます。推定時間が目標の長さから約10%以上外れている場合は、今すぐナレーションを調整します(確認問題は調整しません)。次に:
lv render WORK/lecture.tex ["OUT/講義タイトル.mp4"]
ナレーター:Microsoft Edge ニューラル音声 en-GB-SoniaNeural(無料、インターネット接続が必要)で +10%、720p。オフラインまたはEdgeが失敗した場合は、バンドルされているKokoro音声 bf_emma に自動的にフォールバックします。オプション:--tts edge|kokoro|say、--voice <id or profile>、--rate、--height。ユーザーが音声を指定したり、自分の音声(クローン音声を含む)を希望する場合は、references/voices.md を参照してください。
字幕は無料で付きます。 すべてのレンダリングでは、MP4の横に OUT.srt と OUT.vtt も書き出され、選択可能な字幕トラックが埋め込まれます。これらは \say テキストから構築され、合成音声からタイミングが取られるため、トークンを消費せず、編集後も同期が保たれます。動画を書き起こしたり、手動で字幕を書いたりしないでください。これらはナレーションをそのまま表示します(lexicon.tsv の再スペル前)。--no-subs でオフにできます。
発音の修正は WORK/lexicon.tsv(書き方<TAB>話し方)に記述し、音声にのみ適用されます。編集後の再レンダリングは数秒で完了します。変更されていない行は音声キャッシュから取得されるためです。
6. レポートを返す
動画のパス(およびその .srt/.vtt 字幕)、時間、ページ数と確認問題数、ノートに対する修正箇所、ギャップを埋めるために使用した情報源、どの図が模式的な再描画か、省略した内容(パート2を提案)を提供します。WORK は編集のために保持します。
個人設定
ブランディング(ロゴ、色、機関のbeamerテーマ)、デフォルトの音声、作業フォルダと出力フォルダは、スキルの外部、ユーザーの設定フォルダに存在するため、スキルはポータブルに保たれます:references/customization.md。スキル自身のアセットを一人のユーザーの好みのために編集しないでください。
このように構築されている理由
- 一つのソースファイルによりスライドとナレーションの整合性が保たれます;LaTeXがページ正確なナレーションマップ(
.narr)を自動生成します
…
[翻訳のため省略]